# Занятие 2. Администрирование Linux
## Григорян_ТА
## Практическая работа №2.1
## Задание:
1) Изучить работу утилит df, du, free, iostat, mpstat, vmstat, w, htop.
## Ход работы:
### 1. Команда df в linux
Чтобы посмотреть доступное пространство на всех примонтированных разделах и информацию о них достаточно набрать:

Попросим утилиту выводить данные в более читаемом формате:

Если задать опцию -a, мы можем получить информацию обо всех файловых системах известных ядру, которые были смонтированы:

Выведем только информацию про реальные файловые системы на жестком диске можно использовать опцию -x чтобы отфильтровать все tmpfs:

Также можно отфильтровать две файловые системы:

Или же указать файловую систему, которую нужно отображать:

Также можно указать интересующий вас раздел, как вы видели в синтаксисе команды:

С помощью опции -i можно посмотреть информацию про состояние inode в вашей файловой системе:

Вывести объем доступного пространства в каталоге:

### 2. Команда df в linux
Опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах.

Также можно передать команде du несколько файлов и каталогов в качестве аргументов:

Параметр -a указывает du сообщать об использовании дискового пространства каждым файлом в каталоге:

Чтобы получить общий размер */var/lib* и всех его подкаталогов, мы должны выполнить следующую команду:

Узнали только общий размер указанного каталога:

Узнали общую сумму каталогов:

Получили отчет о каталогах первого уровня:

Узнали очевидный размер файла:

Получили размер всех каталогов, начинающихся с «Do» в домашнем каталоге:

Вывели 5 самых больших каталогов внутри каталога:

### 3. Команда free в Linux
Отобразили информацию о памяти и подкачке в килобайтах:

Буферы и кеш отобразили в двух отдельных столбцах:

Просмотрели информацию в удобочитаемом формате:

Отобразили результат в гигабайтах:

Отобразили строку, показывающую итоги столбца:

Вывели информацию о памяти каждые пять секунд:

Отобразили результат определенное количество раз:

### 3.1 Команда free в Linux с примерами
Пример, отформатированный для командной строки и ее вывода:

Постоянное отслеживание использования памяти:

### 4. iostat
Установка iostat:

Запуск IOSTAT:

Просмотр данных в удобном формате:

Просмотр данных по нужному устройству:

Просмотр статистики по каждому разделу устройства:

Автоматически обновляет данные каждую секунду:

Чтобы утилита не суммировала все данные с момента запуска операционной системы:

### 4.1 Профилирование нагрузки на файловую систему с помощью iostat
Сохранили df -hl:

Получение лог файла:

Ввод лога:

### 5. mpstat
5.1 Отображение всей информации:

5.2 Показать статистику CPU индивидуального процессора (или) ядра:

5.3 Для отображения статистически о конкретном CPU или ядре:

5.4 Показать версию утилиты:

5.5 Дополнительные опции

### 6. vmstat
Вызовим команду vmstat:

Просмотрим активная/неактивная память:

Просмотрим количество вилок с момента загрузки:

Просмотрим статистику диска:

Просмотрим общую статистику диска:

Дополнительные опции:

Определили через какое время выводить информацию:

### 7. Утилита/команда " w "
Краткая сводка о работающих в системе в данный момент пользователях (залогиненных пользователях), а также о том, какие процессы у них запущены:

Не выводя заголовок у таблицы:

Игнорировали имена пользователей при определении времени текущего процесса и времени CPU:

Использовали сокращенный формат вывода. Без колонок JCPU и PCPU:

Включили или выключили вывод поля from, которое соответствует имени удаленного хоста:

Вывели в поле from IP-адрес вместо имени хоста:

Вывели информацию в старом формате. Время, которое меньше 1 минуты:

Вывели версию утилиты w:

### 8. Утилита htop
Установили htop:

Запустили htop с привилегиями суперпользователя:

Вывели программу с обновлением окна каждую 1 секунды (sudo htop -d 1):

Вывели процессы в виде дерева:

## Практическая работа №2.2. Установка и настройка сервера SSH в Linux
## Задание:
1) Научиться настраивать SSH-сервер, клиент.
## Ход работы:
### 1. Установка пакетов SSH
Установили SSH:

По завершению установки, автоматически будет запущен SSH-сервер в режиме демона. Это можно проверить командой:

### 2. Настройка SSH
Настройки демона можно посмотреть командой:

Изменили параметры. Поменяли порт, айпи адреса, и версию IP:

Включили параметр, позволяющий проводить авторизацию и шифрование трафика с помощью специальных SSH-ключей:

Отключили авторизацию по пустому паролю:

Отключили root доступ:

### 3. Настройка и использование клиента SSH
Для подключения к серверу используется команда:

### 4. Для генерации ключей используется утилита ssh-keygen:
Сгенерировали ключи и выбрали расположение ключей по умолчанию:

Скопировали открытый ключ на сервер и передали его клиенту 172.10.20.4:

Подключились к серверу без ввода пароля:

## Практическая работа №2.3. Установка и настройка SSH-authorized_keys
## Задание:
- научиться настраивать SSH-authorized_keys.
- научиться работать с ключами SSH.
## Ход работы:
## (!!!здесь у меня поменялись айпишники, эту часть я делал дома, а до этого на работе, поэтому не удивляйтесь!!!)
Сгенерировали на локальном компьютере пару ключей SSH, введя следующую команду:

Скопировали открытый ключ на сервер:

Подключилсиь на сервер без пароля учетной записи:

Отключили вход по паролю:

Скопировали открытый ключ:

## Практическая работа №2.4. Сбор информации о Linux и WGET
## Задание:
1) Научиться базовому сбору информации о Linux системах.
## Ход работы:
### 1. Базовый сбор информации
Выведем информацию о дистрибутиве и его версии:

Выведем информацию по ядру linux:

Отобразили имя текущего вошедшего в систему пользователя:

Выведем информацию о том, когда и сколько система работала:

Посмотрим права директории /home:

Чтобы ограничить права другим пользователям делаем следующее:

Просмотрим с какими компьютерами происходит обмен данными:

Просмотрим какие сервисы и с какими портами запущены:

Просмотрим что есть в этой машинке и что пользователь может:

### 2. Суидные файлы
Базовый сбор информации:

Скачали с помощью wget утилиту lynis:

Разаархивируем скачанный архив:

Проверим контрольную сумму с сайта и то, что мы скачали:


Перейдем в директорию lynis:

Запускаем утилиту lynis:

Наш report-отчёт:

Выполнили команду show options:

Перенаправление файлов осуществляется через стандартный report утилиты:

### 3. Проверка целостностей пакетов
Просмотрели пакеты в системе:

Просмотрели установленные утилиты:

Рассмотрим утилиту /bin/dir:

Сымитируем подмену или правку кода программы, для этого сделаем сделаем backup:

Сделаем копию:

Запускаем dir и можем увидеть, что ничего не будет происходить, кроме как если посмотреть логическую ложь, то будет ошибка:

Чтобы нам быстро проверить этот пакет мы можем выполнить команду debsums, установим утилиту:

Запуск проверки:

Проверка другой утилитой:

Если кто-то смог проникнуть в систему и что-то деал в ней нам поможет команда find. Например, если нам надо рассмотреть какой либо инцидент:

Можно указать через пробел, но тогда будет сложно работать с выводом данных:

Поиск по одному конкретному пользователю:

Сделали сортировку:

Отсортировали данный файл с помощью команды *sort -rn timeline.csv | less*, где флаг -r указывает на последнее изменение и оно будет первым:

Мы можем видеть, что менялось и в какое время, что позволит увидеть все изменения.
## Практическая работа №2.5. Переменные окружения в Linux .bashrc, .bash_profile и .bash_login
## Задание:
1) Научиться работать с переменным окружением в linux.
## Ход работы:
### 1. Просмотр списка системных переменных окружения
Проверим наличие утилиты Coreutils у нас в системе:

Раскроем список всех переменных окружения:


### 2. Запуск команд с указанием нового значения переменной окружения
Прописали название переменной, и ее значение, например, путь к папке /home/kali:

### 2.1 Установка и удаление локальных переменных окружения
Собственное создание таких опций:

Проверим действенность произведенных действий:

Удаляем параметр:

Проверим удаление:

### 2.2 Добавление и удаление пользовательских переменных
Посмотрим классы переменных:

Откроем файл и добавим запись вконце файла:

Обновим конфигурацию:

Проверим активность переменной:

### 2.3 Создание и удаление системных переменных окружения
Откроем конфигурационный элемент /etc/profile и добавим вконце переменную:

Обновим конфигурацию и проверим активность переменной:
