---
# System prepended metadata

title: №2. Администрирование Linux

---

№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` отображает стандартный набор колонок в более читаемом формате
![](https://i.imgur.com/URNOfid.png)
`df -h ...` можно указать определенный отдел
![](https://i.imgur.com/hPxcr5f.png)
`df -a` информация обо всех файловых системах известных ядру
![](https://i.imgur.com/KqvXnfP.png)
`df -x ...` выводит информацию обо всех, кроме указанных файловых систем
![](https://i.imgur.com/Hysiae7.png)
`df -x ... -x ...` фильтруем несколько файловых систем
![](https://i.imgur.com/KCdxFAu.png)
`df -t ...` выводит информацию только о заданной файловой системе
![](https://i.imgur.com/r3AuAqF.png)
`df -hi ...` информацию про состояние inode
![](https://i.imgur.com/ceMU8gZ.png)

## du
Отображает использование диска для данного файла или каталога :
![](https://i.imgur.com/gWTkkJX.png)
Общий размер каталога и его подкаталогов: 
![](https://i.imgur.com/7m3w6j5.png)
Выводим только общий размер указанного каталога:
![](https://i.imgur.com/BTTptnE.png)
Отобразить использование диска подкаталогами n-уровня:
![](https://i.imgur.com/kQlVAke.png)
Видимый размер файла:
![](https://i.imgur.com/22Wv6OG.png)
Выводим размер всех каталогов:
![](https://i.imgur.com/b5pIHrK.png)
`du` можно комбинировать с другими командами с конвейерами:
![](https://i.imgur.com/55APc7L.png)

## free
![](https://i.imgur.com/MAkUBBj.png)
`free -h` информация в удобочитаемом формате:
![](https://i.imgur.com/0eIM6vM.png)
Отображение использования памяти в других показателях:
![](https://i.imgur.com/luAItnJ.png)
`-t` параметр отображает итоги:
![](https://i.imgur.com/5G55Yw1.png)
`free -s <number>` непрерывная печать с задержкой:
![](https://i.imgur.com/UDBHUPu.png)
`free -s <number> -c <number>` -с определяет количество повторений:
![](https://i.imgur.com/sAaX6oH.png)
Команда free в Linux с примерами:
![](https://i.imgur.com/RFrSn3n.png)

## iostat
Утилита, предназначенная для мониторинга использования дисковых разделов, входящая в набор sysstat 
![](https://i.imgur.com/xn2nGui.png)
Просмотр в удобном формате:
![](https://i.imgur.com/egbYqd8.png)
Посмотр данных по нужному устройству:
![](https://i.imgur.com/2VVffIi.png)
Посмотреть статистику по каждому разделу устройства можно с помощью параметра `-р`:
![](https://i.imgur.com/SxKNuEV.png)
Автоматическое обновление данных с интервалом в 1 секунду:
![](https://i.imgur.com/ENSxKXQ.png)
Суммирование всех данных с момента запуска операционной системы с помощью опции `-y`:
![](https://i.imgur.com/S4hKdB2.png)
Профилирование нагрузки на файловую систему с помощью iostat:
![](https://i.imgur.com/692NPcA.png)
![](https://i.imgur.com/aQeWu5N.png)

![](https://i.imgur.com/LWD4b8O.png)

## mpstat
Отображение всей информации:
![](https://i.imgur.com/1y5Ly2M.png)
Показать статистику CPU индивидуального процессора (или) ядра:
![](https://i.imgur.com/6gu5Sp5.png)
Для отображения статистически о конкретном CPU или ядре, используйте опцию `-P`:
![](https://i.imgur.com/GjyAgA4.png)
`mpstat -V` чтобы показать версию утилиты:
![](https://i.imgur.com/Nap8p70.png)
Дополнительные опции:
![](https://i.imgur.com/MGnN1mu.png)

## vmstat
Утилита `vmstat` предоставляет краткую информацию о различных ресурсах системы и связанных с ними неполадках
![](https://i.imgur.com/oFPW06m.png)
`vmstat -a` (active/inactive memory) - активная/неактивная память:
![](https://i.imgur.com/hN0UVTE.png)
`vmstat -f` (number of forks since boot) - количество вилок с момента загрузки:
![](https://i.imgur.com/FHIWfbg.png)
`vmstat -d` (disk statistics) - статистика диска:
![](https://i.imgur.com/zh3vtJo.png)
`vmstat -D` (summarize disk statistics) - общая статистика диска:
![](https://i.imgur.com/ZYPs0EE.png)
`vmstat --help`
![](https://i.imgur.com/vQFU7Yl.png)

## Утилита/команда " w "
Выводит краткую сводку о работающих в системе в данный момент пользователях (залогиненных пользователях), а также о том, какие процессы у них запущены
![](https://i.imgur.com/vOzbbvg.png)
`-h` не выводит заголовок у таблицы:
![](https://i.imgur.com/EZsNMTp.png)
`-u` игнорирует имена пользователей при определении времени текущего процесса и времени CPU:
![](https://i.imgur.com/mkczuzT.png)
`-s` использует сокращенный формат вывода без колонок JCPU и PCPU:
![](https://i.imgur.com/inlsgxK.png)
`-f` включает или выключает вывод поля from, которое соответствует имени удаленного хоста (remote hostname):
![](https://i.imgur.com/eLjsJai.png)
`-i` выводит в поле from IP-адрес вместо имени хоста (hostname), если это возможно:
![](https://i.imgur.com/bWeYQKz.png)
`-o` выводит информацию в старом формате. Время, которое меньше 1 минуты, не выводится:
![](https://i.imgur.com/VG5We3d.png)
`-V` вывесодит версию утилиты w.
![](https://i.imgur.com/5EqoTJV.png)

## Утилита htop
Утилита, предназначенная для вывода на терминал списка запущенных процессов и информации о них. 
![](https://i.imgur.com/m30SW57.png)
`htop --help` 
![](https://i.imgur.com/4QYOZHZ.png)
`htop -t` выводит дерево процессов
![](https://i.imgur.com/5HE0u7j.png)


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

## 1. Установим пакеты SSH
1.1 Установим ssh
![](https://i.imgur.com/lZyRK5P.png)

1.2 Проверим статус shh
![](https://i.imgur.com/ZXY90BL.png)

## 2. Настроим SSH
2.1 Откроем файл конфигурации
![](https://i.imgur.com/5Nh1aGg.png)

![](https://i.imgur.com/JuP9Ofe.png)

2.2 Создадим Alias
![](https://i.imgur.com/OKPqOkZ.png)

2.3 Сохраним изменения и перезапустим sshd
![](https://i.imgur.com/Mv5jV6e.png)

## 3. Генерация ключей с использованием утилиты ssh-keygen
3.1 Создаем ключ
![](https://i.imgur.com/QFZrH4A.png)


## **Практическая работа №2.3.** Установка и настройка SSH-authorized_keys
- Научиться настраивать SSH-authorized_keys.
- Научиться работать с ключами SSH.

1. Создание ключей SSH
2. Скопируем открытый ключ на ваш сервер
3. Аутентификация на сервере с использованием ключей SSH
4. Отключение аутентификации с помощью пароля на сервере
5. Копирование открытого ключа с помощью SSH


### 1. Копирование ключа
![](https://i.imgur.com/78pWgwV.png)

### 2. Аутентификация на сервере с использованием ключей SSH
![](https://i.imgur.com/OKdTFe7.png)

### 3. Отключение аутентификации с помощью пароля на сервере
![](https://i.imgur.com/SJ0sLVp.png)

### 4. Копирование открытого ключа с помощью SSH
![](https://i.imgur.com/3nBBUjo.png)

Подключаемся к Debian по ключу
![](https://i.imgur.com/SmEhMoC.png)

На Debian также генерируем ключ
![](https://i.imgur.com/Z5KOpX2.png)

Копируем ключ на kali
![](https://i.imgur.com/4uUYIpd.png)

Проверяем подключение по ключу
![](https://i.imgur.com/rUYOJrU.png)

Теперь мы можем подключаться на debian и kali по ключам. Конфигурация ssh на debian
![](https://i.imgur.com/onH7EjS.png)

Подключение к kali по putty
![](https://i.imgur.com/C2YpO3n.png)
![](https://i.imgur.com/7TUwW8D.png)

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

### 1. Базовый сбор информации
1.1 Информация о дистрибутиве
![](https://i.imgur.com/njEiYX8.png)

1.2 По ядру linux можно понять следующее:
`uname -a`
![](https://i.imgur.com/Z1EcLVk.png)
`whoami`
![](https://i.imgur.com/vnCr6aH.png)
`uptime`
![](https://i.imgur.com/sxzoLTO.png)
права директории `/home`
![](https://i.imgur.com/tiudBRX.png)
ограничить права другим пользователям
![](https://i.imgur.com/WIkvWpb.png)
`ip neigh`
![](https://i.imgur.com/cwXivjQ.png)
`sudo ss -tlnp` 
![](https://i.imgur.com/gLac0DQ.png)
`sudo -l` 
![](https://i.imgur.com/6k7U2PY.png)

### 2. Суидные файлы
2.1 `sudo find / -user root -perm -4000 -exec ls -ldb {} \; 2> /dev/null` - пример ручного сбора информации
![](https://i.imgur.com/Qexp8mp.png)
2.2 Скачиваем утилиту
![](https://i.imgur.com/pK4mbxN.png)
2.3 Разархивируем файл
![](https://i.imgur.com/NrEebAR.png)
2.4 Сверим контрольные суммы 
![](https://i.imgur.com/L5WtzNC.png)
2.5 Переходим в директорию утилиты
![](https://i.imgur.com/7SRh1og.png)
2.6 Запускаем `./lynis audit system`
![](https://i.imgur.com/wQIBI1Z.png)
2.7 нажимаем Enter
![](https://i.imgur.com/Ow2BBpC.png)
2.8  Report-отчёт
![](https://i.imgur.com/RVyeVHq.png)
2.9 Выводим содержимое `/var/log/lynis-report.dat`
![](https://i.imgur.com/undbxgN.png)

### 3. Проверка целостностей пакетов
3.1 Просмотрим пакеты в системе с помощью `dpkg -l`
![](https://i.imgur.com/6sRVhFm.png)
3.2 `dpkg -L coreutils` -  просмотр установленных утилит
![](https://i.imgur.com/BGnnhM5.png)
3.3 `/bin/dir --help` пример утилиты /bin/dir, которая схожа с ls
![](https://i.imgur.com/r1ImckY.png)
3.4 `sudo mv /bin/dir /bin/dir.bak` - поменяем `/bin/false` на `/bin/dir`
![](https://i.imgur.com/Y0sHpg9.png)
3.5 `sudo cp /bin/false /bin/dir`
![](https://i.imgur.com/BhrwiqW.png)
3.6 `echo $?` теперь при запуске `dir` ничего не будет происходить, кроме вывода логической ошибки
![](https://i.imgur.com/Cw3aAWL.png)

3.7 **debsums** служит,  в  первую  очередь,  для  нахождения  изменённых  администратором  файлов установленных в системе пакетов или повреждённых файлов из-за некачественного носителя и в какой-то мере используется в качестве инструмента обеспечения безопасности.
![](https://i.imgur.com/8hNzO0D.png)
3.8 `debsums <название программного пакета>` - Отображает пакеты, которые необходимо проверить с помощью `debsums`
![](https://i.imgur.com/59rCunh.png)
3.9 можно также проверить утилитой `dpkg --verify coreutils`
![](https://i.imgur.com/Klu7xzF.png)
3.10 если нам надо рассмотреть какой либо инцидент необходимо выполнить `sudo find / -printf "%T@;%Tc;%p\\n"`
![](https://i.imgur.com/z7JFR83.png)
3.11 если надо сделать по одному конкретному пользователю необходиму следующие:
`sudo find /home/kali/ -printf "%T@;%Tc;%p\\n" > timeline.csv`
![](https://i.imgur.com/sOsCits.png)
3.12 отсортируем данный файл с помощью команды `sort -rn timeline.csv | less`
![](https://i.imgur.com/wV2fkEM.png)

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

### 1. Просмотр списка системных переменных окружения
1.1 Проверим наличие утилиты `coreutils`
![](https://i.imgur.com/WhqWq4r.png)
1.2 Запустим `Coreutils`, чтобы раскрыть список всех переменных окружения.
![](https://i.imgur.com/AAIudno.png)

### 2. Запуск команд с указанием нового значения переменной окружения
2.1 Установка и удаление локальных переменных окружения
Установим и запустим локальную переменную
![](https://i.imgur.com/GvN25ud.png)
Удалим и снова запустим ее
![](https://i.imgur.com/EeOOcqt.png)

2.2 Добавление и удаление пользовательских переменных
Отредактируем `.bashrc `
![](https://i.imgur.com/6hcu0fC.png)
![](https://i.imgur.com/ijR6QVL.png)
Обновим конфигурацию
![](https://i.imgur.com/JkJ7I8m.png)
Проверим активность переменной
![](https://i.imgur.com/fUArx8s.png)

2.3 Создание и удаление системных переменных окружения
Отредактируем `/etc/profile`
![](https://i.imgur.com/SwB5No2.png)
Обновим конфигурацию
![](https://i.imgur.com/iIY0AUn.png)
Запустим переменную
![](https://i.imgur.com/3cnBMDu.png)
