# Практическая работа № 2 ###### tags: `pt` `linux` ## 1. Мониторинг ОС Linux при помощи утилит df, du, free, iostat, mpstat, vmstat, w, htop. ### df Выдает отчет о доступном и используемом дисковом пространстве на файловых системах ![](https://i.imgur.com/em2OGcG.png) --- #### df -a ![](https://i.imgur.com/w2G75Wd.png) > включенает в список файловые системы с размером блоков равным 0 (псевдофайловые системы специального назначения и фс типа "ignore" и "auto") --- #### df -B [size] // df --block-size=[size] ![](https://i.imgur.com/9IQGhnR.png) > выдачет информации о размерах фс в указанном размере --- #### df -h // df --human-readable ![](https://i.imgur.com/wtygVrT.png) > форматирует размер фс, приводя их к стандартным размерам в KiB, MiB, GiB... 1 KiB = 1 K = 1024 Bytes 1 KB = 1000 Bytes --- #### df -H // df --si ![](https://i.imgur.com/Lu8s0CN.png) > форматирует размер фс, приводя их к размерам единиц измерения в системе SI, т.е. в килобайтах, мегабайтах... 1 KiB = 1 K = 1024 Bytes 1 KB = 1000 Bytes ![](https://i.imgur.com/LV7zLlG.png) --- #### df -i // df --inode ![](https://i.imgur.com/bQJp2QP.png) > выдает информацию об используемых в фс inode'ов --- #### df -k ![](https://i.imgur.com/M2nIbzX.png) > устанавливает размер блока в 1 Кибибайт (1024 байт) --- #### df -l // df --local ![](https://i.imgur.com/sO1lGPb.png) > выдает информацию только о локальных фс --- #### df -m ![](https://i.imgur.com/xm2Nysz.png) > устанавливает размер блока в 1 Мебибайт (1024 КиБ) --- #### df --sync ![](https://i.imgur.com/YmNSTKf.png) > делать системный вызов sync перед получением данных об используемом дисковом пространстве (на некоторых фс данный метод может предоставить более точные показания с потерей скорости выполнения команды) --- #### df --output=[field] ![](https://i.imgur.com/DyITVQv.png) > указывает формат вывода информации об интересуемых полях --- #### df -P // df --portability ![](https://i.imgur.com/y4RyNAW.png) > использует формат вывода по стандарту POSIX ___ #### df --total ![](https://i.imgur.com/QRpcTep.png) > добавляет строчку total с информацией обо всей ОС --- #### df -T // df --print-type ![](https://i.imgur.com/hxxE1Jj.png) > выдает тип каждой фс --- #### df -t [fs_type] //df --type=[fs_type] ![](https://i.imgur.com/ltdfrxY.png) > выдает информацию о выбранных фс --- #### df -x [fs_type] // df --exclude-type=[ds_type] ![](https://i.imgur.com/9aurNaZ.png) > не выдает информацию о выбранных фс --- #### df --help ![](https://i.imgur.com/T2mblp4.png) > выдает информацию об используемых опциях команды df --- #### df --version ![](https://i.imgur.com/7GZLg5P.png) > выдает информацию о версии программы --- #### Задания из практики ###### df ![](https://i.imgur.com/pI1gsuo.png) ###### df -h ![](https://i.imgur.com/lZh6faV.png) ###### df -a ![](https://i.imgur.com/tm87zhV.png) ###### df -x tmpfs ![](https://i.imgur.com/N5K3h4A.png) ###### df -a -x tmpfs -x bpf ![](https://i.imgur.com/reRXNSD.png) ###### df -t tmpfs ![](https://i.imgur.com/ZC5dt9Z.png) ###### df -h /dev/sda1 ![](https://i.imgur.com/ehV3yb9.png) ###### df -hi /dev/sda1 ![](https://i.imgur.com/q4hKSp0.png) ###### df -h / ![](https://i.imgur.com/LYOYTdh.png) > df не применима к директориям (информация будет выводится о фс, чаастью которой является данная директория) ### du Оценка места на диске, занятого файлами / каталогами --- #### du -a // du --all ![](https://i.imgur.com/ymqLnCW.png) > показывает размеры всех файлов, а не только каталогов --- #### du -b // du --bytes ![](https://i.imgur.com/hVqG03o.png) > показывает размеры в байтах, а не кибибайтах --- #### du --block-size=[size] ![](https://i.imgur.com/lhBfPOt.png) > выдает размеры в блоках заданной длины --- #### du -c // du --total ![](https://i.imgur.com/CqcnAE1.png) > выдает дополнительную информацию о сумме размеров аргументов программы --- #### du --exclude [dir] // du --exclude=[dir] ![](https://i.imgur.com/uEwZFOf.png) > не выдает информацию об указанной директории --- #### du -h // du --human-readable ![](https://i.imgur.com/PNBqD3J.png) > форматирует размер данных, переводя их в Кибибайты, Мебибайты и т.д. --- #### du --si ![](https://i.imgur.com/qfEAtyr.png) > форматирует размер данных, переводя их в систему SI: Килобайты, Мегабайты и т.д. --- #### du --max-depth=[n_recurse] ![](https://i.imgur.com/9M8luqO.png) > выдает информацию о вложенных каталогах (файлах при опции -a) при указанной степени глубины/рекурсии осмотра основной директории --- #### du -S // du --separate-dirs ![](https://i.imgur.com/ZAEki9a.png) > выдает отдельно размеры каждой директории не включая размеры подкаталогов --- #### Задания из практики ###### du ![](https://i.imgur.com/ErwGJzh.png) ###### du Documents ![](https://i.imgur.com/XN4gDVC.png) ###### du Documents Pictures .zshrc ![](https://i.imgur.com/5iyyPEz.png) ###### du -a Pictures ![](https://i.imgur.com/BKSUiov.png) ###### du -h /var ![](https://i.imgur.com/G8dsppO.png) ###### du -sh /var ![](https://i.imgur.com/Vw8e5w3.png) ###### du -csh /var/local /var/log /var/lib ![](https://i.imgur.com/KWMJxhh.png) ###### du -h --max-depth=1 /var ![](https://i.imgur.com/PBKvsUM.png) ###### du -sh --apparent-size /var/lib ![](https://i.imgur.com/79MQxaC.png) ###### du -csh Do* ![](https://i.imgur.com/N70BX1Z.png) ###### du -h /var | sort -rh | head -5 ![](https://i.imgur.com/ROVAnSz.png) --- ### free Предоставление информации об общем объеме физической памяти и памяти подкачки , а также о свободной и используемой памяти ![](https://i.imgur.com/iAH4tAk.png) --- #### free -h // free --human ![](https://i.imgur.com/pWq61aQ.png) > выдает размер памяти в формате KiB, MiB, GiB --- #### free -b // free --bytes ![](https://i.imgur.com/QZC3Yck.png) > выдает размер памяти в байтах --- #### free -k // free --kibi ![](https://i.imgur.com/xMRz3F1.png) > выдает размер памяти в Кибибайтах --- #### free --kilo/mega/giga ![](https://i.imgur.com/YhEnIy1.png) > выдает размер памяти в килобайтах, мегабайтах и гигабайтах --- #### free -k/m/g ![](https://i.imgur.com/EqhpdNW.png) > выдает размер памяти в кибибайтах, мебибайтах и гигибайтах --- #### free --si ![](https://i.imgur.com/LntJflJ.png) > выдает размер памяти, используя систему SI (1 K = 1000 bytes) --- #### free -t // free --total ![](https://i.imgur.com/VwMlPjf.png) > выдает дополнительную строчку информации, суммируя разные разделы памяти --- #### free -s [sec] ![](https://i.imgur.com/ME33ayq.png) > позволяет выводить информацию о памяти раз в заданное количество секунд --- #### free -s [sec] -c [num] ![](https://i.imgur.com/2zKhcih.png) > позволяет выводить информацию о памяти раз в заданное количество секунд определенное количество раз --- #### Задания практики ###### free -s 5 -c 5 ![](https://i.imgur.com/70iD8r0.png) ###### free -h--si -s 5 -c 4 ![](https://i.imgur.com/q4vH1aa.png) ###### watch free- h ![](https://i.imgur.com/LArCb9B.png) ![](https://i.imgur.com/OnPfHQK.png) --- ### iostat Отчет по статистике процессора и статистике ввода/вывода для устройств и разделов. ![](https://i.imgur.com/NXCAaHt.png) --- #### iostat -c ![](https://i.imgur.com/2uAw7ko.png) > отображает информацию об использовании процессора --- #### iostat -d ![](https://i.imgur.com/H5fhp9F.png) > отображает информацию об использовании устройств --- #### iostat -h ![](https://i.imgur.com/58hBLOZ.png) > форматирует размеры данных, переводя их в читаемый вид --- #### iostat -m ![](https://i.imgur.com/izswHhe.png) > форматирует размеры данных, переводя их в мегабайты --- #### iostat -k ![](https://i.imgur.com/YObvVw4.png) > форматирует размеры данных, переводя их в килобайты --- #### iostat -o JSON ![](https://i.imgur.com/l1YYqqs.png) > представляет информацию о процессах и устройствах в формате JSON --- #### iostat -p ![](https://i.imgur.com/pkYse8C.png) > отображает информацию о блочных устройствах и всех их разделов --- #### iostat -x ![](https://i.imgur.com/3ixYRSI.png) > показывает расширенную статистику --- #### iostat -y [num] ![](https://i.imgur.com/2xOxOVY.png) > выводит информацию о процессорах и устройствах раз в num секунд с момента запуска утилиты --- #### iostat -z ![](https://i.imgur.com/i9XzSBm.png) > не выводит информацию о дисках, на которых нет активности --- #### Задания практики ###### iostat -h ![](https://i.imgur.com/wRKkW6A.png) ###### iostat /dev/sda1 ![](https://i.imgur.com/bZ2ei42.png) ###### iostat -p /dev/sda1 ![](https://i.imgur.com/0nIEs8t.png) ###### iostat -p /dev/sda1 1 ![](https://i.imgur.com/TNSsOEz.png) ###### iostat -p -y /dev/sda1 3 ![](https://i.imgur.com/Q9fYEOe.png) ###### iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}' >> iostat.log & ![](https://i.imgur.com/8dVOMby.png) ###### iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}' ![](https://i.imgur.com/AANa4W6.png) --- ### mpstat Отчет по статистике, связанной с процессорами. ![](https://i.imgur.com/XUuxRnF.png) --- #### mpstat -A // mpstat -I ALL -u -P ALL ![](https://i.imgur.com/eN7R2Vq.png) > выводит информацию о всех процессорах, их прерываниях и параметров, указанных в опции -u --- #### mpstat -P ALL ![](https://i.imgur.com/V1281r3.png) > выводит информацию о всех процессорах/ядрах --- #### mpstat -P [num] ![](https://i.imgur.com/EzRwvXK.png) > выводит информацию о процессоре/ядре под определенным номером --- #### mpstat -V ![](https://i.imgur.com/05QZcXK.png) > указывает версию программы --- #### mpstat --help ![](https://i.imgur.com/WqEOq8S.png) > выводит обзорную информацию о возможных опциях команды --- ### vmstat Отчет о статистике виртуальной памяти ![](https://i.imgur.com/0KiuYBu.png) --- #### vmstat -a ![](https://i.imgur.com/CZeJOsX.png) > выводит информацию об активной/неактивной памяти --- #### vmstat -f ![](https://i.imgur.com/Gi96ew5.png) > выводит количество fork-процессов. --- #### vmstat -s ![](https://i.imgur.com/Ffmfhtm.png) > выводит общую статисктику в табличном виде --- #### vmstat -d ![](https://i.imgur.com/4IMCrMs.png) > выводит информацию о памяти на определенных дисках --- #### vmstat -D ![](https://i.imgur.com/55lO07V.png) > выводит статистику по дискам --- #### vmstat -w ![](https://i.imgur.com/WUqh04u.png) > выводит информацию в более удобном широком виде --- #### vmstat [num] [count] ![](https://i.imgur.com/3UCGVzl.png) > выводит обновляемую раз в "num" секунд "count" раз --- ### w Показывает, кто вошел в систему и что они делают (какой процесс запущен) ![](https://i.imgur.com/Z1gdupx.png) --- #### w -h // w --no-header ![](https://i.imgur.com/QErUA9o.png) > выводит информацию без заголовка --- #### w -u // w --no-current ![](https://i.imgur.com/erGdFVZ.png) > игнорирует имена пользователей в последнем процессе и времени этого процесса --- #### w -s // w --short ![](https://i.imgur.com/CcjCOdn.png) > не выводит колонки JCPU и PCPU --- #### w -f // w --from ![](https://i.imgur.com/OR0FlIF.png) > в зависимости от ОС убирает/добавляет колонку "FROM" --- #### w -i // w --ip-addr ![](https://i.imgur.com/YY2cYWn.png) > при возможности выводит ip-адрес вместо имени хоста #### w -o // w --old-style ![](https://i.imgur.com/BHi2cjh.png) > выводит информацию в старом стиле (не выводит значения меньше одной минуты) --- #### w -V // w --version ![](https://i.imgur.com/nM1BRIb.png) > выводит версию программы --- ### htop Интерактивный просмотрщик процессов ![](https://i.imgur.com/4e2IvjH.png) --- #### htop -d [num] ![](https://i.imgur.com/ddOKSqD.png) > обновляет информацию раз в num-десятых секунды --- #### htop -t ![](https://i.imgur.com/2oVggw1.png) ![](https://i.imgur.com/F1NlmZJ.png) > вывод процессы в виде дерева зависимостей --- ## 2. Установка и настройка сервера SSH в Linux ### Установка ![](https://i.imgur.com/PMPN0Vw.png) ### Настройка конфигов: изменен порт, отключена возможность подключения по root-пользователю ![](https://i.imgur.com/9ZaztFq.png) ### Проверка доступности ssh-сервера, используя Xshell ![](https://i.imgur.com/fXP0aYu.png) ![](https://i.imgur.com/EDIL9cE.png) ## 3. Установка и настройка SSH-authorized_keys ### Создание ключей SSH на SSH-сервере ![](https://i.imgur.com/SoS82lW.png) ### Копирование открытого ключа с хоста на ssh-сервер с помощью ssh-copy-id и подключением по паролю ![](https://i.imgur.com/1CYR20j.png) ### Появление открытого ключа хоста на ssh-сервере в файле authorized_keys ![](https://i.imgur.com/8a8Hqwv.png) ### Настройки ssh-сервера ![](https://i.imgur.com/kxTVHUG.png) ### Возможность подключиться с удаленного хоста по ключам с отключенной возможностью подключения по паролю ![](https://i.imgur.com/PUjzT8B.png) ![](https://i.imgur.com/PiEYLaa.png) ### Передача открытого ключа удаленного хоста на ssh-сервер, используя пароль ![](https://i.imgur.com/Z6B9FXW.png) ### Возможность подключиться с удаленного хоста по ключам с отключенной возможностью подключения по паролю ![](https://i.imgur.com/6DiQG8u.png) ![](https://i.imgur.com/JxuFZzC.png) ![](https://i.imgur.com/5l2O8g8.png) ### Доказательство того, что Xshell установлен на основном хосте ![](https://i.imgur.com/xeE3Iwl.jpg) ## 4. Сбор информации о Linux и WGET #### cat /etc/*release ![](https://i.imgur.com/GkFEetV.png) > Информация о дистрибутиве и его версии --- ### uname -a ![](https://i.imgur.com/W19fUOl.png) > версия ядра --- ### whoami ![](https://i.imgur.com/ik7JE3l.png) > просмотр имя пользователя --- ### uptime ![](https://i.imgur.com/7H0jBZA.png) > время работы устройства --- ### ls -la /home ![](https://i.imgur.com/F8o3mDN.png) > просмотр прав на директорию --- ### chmod o-rx /home/kali ![](https://i.imgur.com/ODVa2za.png) > ограничение прав в каталоге --- ### ip neighbor ![](https://i.imgur.com/FIn3aqT.png) > показывает соседей в сети, чьи ip/mac-адреса известны --- ### ss -tunlp ![](https://i.imgur.com/HB4RsJi.png) > просмотр портов и их состояний --- ### sudo -l ![](https://i.imgur.com/ur6TwkF.png) > просмотр возможностей пользователя --- ### find / -user root -perm -4000 -exec lb -ldb {} \; 2> /dev/null ![](https://i.imgur.com/k24H0t3.png) --- ### wget "https://downloads.cisofy.com/lynis/lynis-3.0.6.tar.gz" ![](https://i.imgur.com/b63l108.png) > установка утилиты для мониторинга системы --- ### tar -xvf lynis-3.0.6.tar.gz ![](https://i.imgur.com/sE4gTIZ.png) > распаковка архива --- ### sha256sum lynis-3.0.6.tar.gz ![](https://i.imgur.com/WtdWuzZ.png) > проверка достоверности пакета по хеш-сумме --- ### ./lynis audit system ![](https://i.imgur.com/kJSIX4W.png) > запуск утилиты анализа системы ![](https://i.imgur.com/wGOCzoD.png) > log-файлы ![](https://i.imgur.com/gi4XDFE.png) --- ### dpkg -l ![](https://i.imgur.com/5kpnnGS.png) > просмотр пакетов --- ### dpkg -L coreutils ![](https://i.imgur.com/K0yLNhX.png) > просмотр системных утилит --- ### /bin/dir --help ![](https://i.imgur.com/fMSjkdC.png) > просмотр утилиты dir --- ### mv /bin/dir /bin/dir1 ; cp /bin/false /bin/dir ![](https://i.imgur.com/lfsPRCn.png) > создание бэкапа программы и замена ее на другую программу --- ### dir ; echo $? ![](https://i.imgur.com/5JXou89.png) > просмотр работы утилиты dir --- ### debsums -ac coreutils ; debsums -cs coreutils ; debsums -ac ![](https://i.imgur.com/XkmlVRJ.png) > проверка пакетов на изменение системной утилиты --- ### dpkg --verify coreutils ![](https://i.imgur.com/F9hEnAq.png) > проверка пакетов на изменение системной утилиты --- ### find / -printf "%T@;%Tc;%p\\n" ![](https://i.imgur.com/tLb7emw.png) > вывод и фильтрация данных --- ### find / -printf "%T@;%Tc;%p\\n" > timeline.csv ![](https://i.imgur.com/11AvPAj.png) > перенаправление данных в таблицу --- ### head timeline.csv ![](https://i.imgur.com/VwVTawl.png) > попытка поиска информации о создании файла --- ### sort -nr timeline.csv | less ![](https://i.imgur.com/y94pt99.png) > сортировка по времени = видим создание файла timeline.csv --- ### cat timeline.csv | grep *.csv ![](https://i.imgur.com/nQUFFZz.png) > создание файла timeline.csv --- ## 5. Переменные окружения в Linux .bashrc, .bash_profile и .bash_login ### printenv ![](https://i.imgur.com/FWdLkTT.png) > переменные окружения --- ### env HOME=/home/kali ![](https://i.imgur.com/OUefArz.png) > изменение значения переменной окружения --- ### TESTKALI=/home/kali ![](https://i.imgur.com/W7xnUDT.png) > добавление новой переменной --- ### unset TESTKALI ![](https://i.imgur.com/DWvfQfz.png) > отключение новой переменной --- ### nano ~/.zshrc ![](https://i.imgur.com/XzRnnj6.png) > изменения файла конфигурации переменных окружения --- ### source .zshrc ![](https://i.imgur.com/LZbs7Bz.png) > применение настроек и проверка --- ### nano /etc/profile ![](https://i.imgur.com/ww6Y5Vu.png) > применение настроек и проверка ![](https://i.imgur.com/DAemLJ2.png)