№2. Администрирование Linux
===
## **Практическая работа №2.1.** Основы мониторинга OS Linux с помощью утилит df, du, free, iostat, mpstat, vmstat, w, htop.
- Изучить работу утилит df, du, free, iostat, mpstat, vmstat, w, htop.
## df
`df -h` отображает стандартный набор колонок в более читаемом формате

`df -h ...` можно указать определенный отдел

`df -a` информация обо всех файловых системах известных ядру

`df -x ...` выводит информацию обо всех, кроме указанных файловых систем

`df -x ... -x ...` фильтруем несколько файловых систем

`df -t ...` выводит информацию только о заданной файловой системе

`df -hi ...` информацию про состояние inode

## du
Отображает использование диска для данного файла или каталога :

Общий размер каталога и его подкаталогов:

Выводим только общий размер указанного каталога:

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

Видимый размер файла:

Выводим размер всех каталогов:

`du` можно комбинировать с другими командами с конвейерами:

## free

`free -h` информация в удобочитаемом формате:

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

`-t` параметр отображает итоги:

`free -s <number>` непрерывная печать с задержкой:

`free -s <number> -c <number>` -с определяет количество повторений:

Команда free в Linux с примерами:

## iostat
Утилита, предназначенная для мониторинга использования дисковых разделов, входящая в набор sysstat

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

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

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

Автоматическое обновление данных с интервалом в 1 секунду:

Суммирование всех данных с момента запуска операционной системы с помощью опции `-y`:

Профилирование нагрузки на файловую систему с помощью iostat:



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

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

Для отображения статистически о конкретном CPU или ядре, используйте опцию `-P`:

`mpstat -V` чтобы показать версию утилиты:

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

## vmstat
Утилита `vmstat` предоставляет краткую информацию о различных ресурсах системы и связанных с ними неполадках

`vmstat -a` (active/inactive memory) - активная/неактивная память:

`vmstat -f` (number of forks since boot) - количество вилок с момента загрузки:

`vmstat -d` (disk statistics) - статистика диска:

`vmstat -D` (summarize disk statistics) - общая статистика диска:

`vmstat --help`

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

`-h` не выводит заголовок у таблицы:

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

`-s` использует сокращенный формат вывода без колонок JCPU и PCPU:

`-f` включает или выключает вывод поля from, которое соответствует имени удаленного хоста (remote hostname):

`-i` выводит в поле from IP-адрес вместо имени хоста (hostname), если это возможно:

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

`-V` вывесодит версию утилиты w.

## Утилита htop
Утилита, предназначенная для вывода на терминал списка запущенных процессов и информации о них.

`htop --help`

`htop -t` выводит дерево процессов

## **Практическая работа №2.2.** Установка и настройка сервера SSH в Linux
### **Цель работы:**
- Научиться настраивать SSH-сервер, клиент.
## 1. Установим пакеты SSH
1.1 Установим ssh

1.2 Проверим статус shh

## 2. Настроим SSH
2.1 Откроем файл конфигурации


2.2 Создадим Alias

2.3 Сохраним изменения и перезапустим sshd

## 3. Генерация ключей с использованием утилиты ssh-keygen
3.1 Создаем ключ

## **Практическая работа №2.3.** Установка и настройка SSH-authorized_keys
- Научиться настраивать SSH-authorized_keys.
- Научиться работать с ключами SSH.
1. Создание ключей SSH
2. Скопируем открытый ключ на ваш сервер
3. Аутентификация на сервере с использованием ключей SSH
4. Отключение аутентификации с помощью пароля на сервере
5. Копирование открытого ключа с помощью SSH
### 1. Копирование ключа

### 2. Аутентификация на сервере с использованием ключей SSH

### 3. Отключение аутентификации с помощью пароля на сервере

### 4. Копирование открытого ключа с помощью SSH

Подключаемся к Debian по ключу

На Debian также генерируем ключ

Копируем ключ на kali

Проверяем подключение по ключу

Теперь мы можем подключаться на debian и kali по ключам. Конфигурация ssh на debian

Подключение к kali по putty


## **Практическая работа №2.4.** Сбор информации о Linux и WGET
- Научиться базовому сбору информации о Linux системах.
### 1. Базовый сбор информации
1.1 Информация о дистрибутиве

1.2 По ядру linux можно понять следующее:
`uname -a`

`whoami`

`uptime`

права директории `/home`

ограничить права другим пользователям

`ip neigh`

`sudo ss -tlnp`

`sudo -l`

### 2. Суидные файлы
2.1 `sudo find / -user root -perm -4000 -exec ls -ldb {} \; 2> /dev/null` - пример ручного сбора информации

2.2 Скачиваем утилиту

2.3 Разархивируем файл

2.4 Сверим контрольные суммы

2.5 Переходим в директорию утилиты

2.6 Запускаем `./lynis audit system`

2.7 нажимаем Enter

2.8 Report-отчёт

2.9 Выводим содержимое `/var/log/lynis-report.dat`

### 3. Проверка целостностей пакетов
3.1 Просмотрим пакеты в системе с помощью `dpkg -l`

3.2 `dpkg -L coreutils` - просмотр установленных утилит

3.3 `/bin/dir --help` пример утилиты /bin/dir, которая схожа с ls

3.4 `sudo mv /bin/dir /bin/dir.bak` - поменяем `/bin/false` на `/bin/dir`

3.5 `sudo cp /bin/false /bin/dir`

3.6 `echo $?` теперь при запуске `dir` ничего не будет происходить, кроме вывода логической ошибки

3.7 **debsums** служит, в первую очередь, для нахождения изменённых администратором файлов установленных в системе пакетов или повреждённых файлов из-за некачественного носителя и в какой-то мере используется в качестве инструмента обеспечения безопасности.

3.8 `debsums <название программного пакета>` - Отображает пакеты, которые необходимо проверить с помощью `debsums`

3.9 можно также проверить утилитой `dpkg --verify coreutils`

3.10 если нам надо рассмотреть какой либо инцидент необходимо выполнить `sudo find / -printf "%T@;%Tc;%p\\n"`

3.11 если надо сделать по одному конкретному пользователю необходиму следующие:
`sudo find /home/kali/ -printf "%T@;%Tc;%p\\n" > timeline.csv`

3.12 отсортируем данный файл с помощью команды `sort -rn timeline.csv | less`

## **Практическая работа №2.5.** Переменные окружения в Linux .bashrc, .bash_profile и .bash_login
- Научиться работать с переменным окружением в linux.
### 1. Просмотр списка системных переменных окружения
1.1 Проверим наличие утилиты `coreutils`

1.2 Запустим `Coreutils`, чтобы раскрыть список всех переменных окружения.

### 2. Запуск команд с указанием нового значения переменной окружения
2.1 Установка и удаление локальных переменных окружения
Установим и запустим локальную переменную

Удалим и снова запустим ее

2.2 Добавление и удаление пользовательских переменных
Отредактируем `.bashrc `


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

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

2.3 Создание и удаление системных переменных окружения
Отредактируем `/etc/profile`

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

Запустим переменную
