# Linux. Практическая работа № 2 ## 2.1 Основы мониторинга ### 2.1.1 Утилита df Команда df удобный инструмент опредeления использования дискового пространства. Запустим его с различными параметрами. ```bash= df --output=source,itotal,iused,iavail,ipcent,size,used,avail,pcent,file,target df --total ``` Результат ![](https://i.imgur.com/BpsKRXu.png) --- ```bash= df -a ``` Результат ![](https://i.imgur.com/ADI8bwy.png) --- ```bash= df -BM ``` Результат ![](https://i.imgur.com/V2w19zB.png) --- ```bash= df -H ``` Результат ![](https://i.imgur.com/KQ6PDod.png) --- ```bash= df -i ``` Результат ![](https://i.imgur.com/Jx93DDz.png) --- ```bash= df -k ``` Результат ![](https://i.imgur.com/WdbM1BP.png) --- ```bash= df -P ``` Результат ![](https://i.imgur.com/SaRMz2K.png) --- ```bash= df ``` Результат ![](https://i.imgur.com/9WQfzZI.png) --- ```bash= df -h ``` Результат ![](https://i.imgur.com/eXT8pU1.png) --- ```bash= sudo df -a ``` Результат ![](https://i.imgur.com/TvvYod5.png) --- ```bash= df -x tmpfs ``` Результат ![](https://i.imgur.com/t3GuaBb.png) --- ```bash= df -x devtmpfs -x tmpfs ``` Результат ![](https://i.imgur.com/i5eDYUO.png) --- ```bash= df -t ext4 ``` Результат ![](https://i.imgur.com/Qt9Hpzo.png) --- ```bash= df -h /dev/sdb2 ``` Результат ![](https://i.imgur.com/BArDomj.png) --- ```bash= df -hi /dev/sdb2 ``` Результат ![](https://i.imgur.com/3JGNW1C.png) --- ```bash= df -h /home ``` Результат ![](https://i.imgur.com/fenbqy8.png) --- ### 2.1.2 Утилита du ```bash= du /home ``` Результат ![](https://i.imgur.com/ejeGWHq.png) --- ```bash= sudo du /etc /usr /var/log ``` Результат ![](https://i.imgur.com/fa3RewF.png) --- ```bash= du -a /home ``` Результат ![](https://i.imgur.com/KA5ipOd.png) --- ```bash= sudo du -h /var ``` Результат ![](https://i.imgur.com/YvJ0P0U.png) --- ```bash= sudo du -sh /var ``` Результат ![](https://i.imgur.com/XfkETNo.png) --- ```bash= sudo du -csh /var/log /var/lib ``` Результат ![](https://i.imgur.com/Oj0lI9X.png) --- ```bash= sudo du -h --max-depth=1 /var/lib ``` Результат ![](https://i.imgur.com/CaltkK9.png) --- ```bash= sudo du -sh --apparent-size /var/lib ``` Результат ![](https://i.imgur.com/TTlYJ0q.png) --- ```bash= du -csh ~/Vi* ``` Результат ![](https://i.imgur.com/3cS3rFn.png) --- ```bash= sudo du -h /var/ | sort -rh | head -5 ``` Результат ![](https://i.imgur.com/Re2Zb9h.png) --- ### 2.1.3 Утилита free ```bash= free ``` Результат ![](https://i.imgur.com/oTTSH6j.png) --- ```bash= free -w ``` Результат ![](https://i.imgur.com/h4We9Tr.png) --- ```bash= free -h ``` Результат ![](https://i.imgur.com/ozxwtIK.png) --- ```bash= free --mega ``` Результат ![](https://i.imgur.com/rHmXdD9.png) --- ```bash= free -h -t ``` Результат ![](https://i.imgur.com/mL3DvDE.png) --- ```bash= free -s 5 ``` Результат ![](https://i.imgur.com/X6nW6Hp.png) --- ```bash= free -s 5 -c 10 ``` Результат ![](https://i.imgur.com/sFVciJC.png) --- ```bash= free -h --si -s 5 -c 4 ``` Результат ![](https://i.imgur.com/evjf7Ed.png) --- ```bash= watch free -h ``` Результат ![](https://i.imgur.com/GvqM7p4.png) ![](https://i.imgur.com/zdbGMHT.png) --- ### 2.1.4 Утилита iostat yum install sysstat ![](https://i.imgur.com/cSu4od1.png) ```bash= iostat ``` Результат ![](https://i.imgur.com/lMc2w2A.png) --- ```bash= sudo iostat ``` Результат ![](https://i.imgur.com/l30wruT.png) --- ```bash= sudo iostat -h ``` Результат ![](https://i.imgur.com/QebpeFm.png) --- ```bash= sudo iostat -c ``` Результат ![](https://i.imgur.com/rcSSJNC.png) --- ```bash= sudo iostat -d ``` Результат ![](https://i.imgur.com/5q752IL.png) --- ```bash= sudo iostat -h ``` Результат ![](https://i.imgur.com/9zvqJpb.png) --- ```bash= sudo iostat -k ``` Результат ![](https://i.imgur.com/cUrGF9q.png) --- ```bash= sudo iostat -m ``` Результат ![](https://i.imgur.com/SjfXxaw.png) --- ```bash= sudo iostat -o JSON ``` Результат ![](https://i.imgur.com/Q5JOgEf.png) --- ```bash= sudo iostat -p ``` Результат ![](https://i.imgur.com/mTL5mth.png) --- ```bash= sudo iostat -x ``` Результат ![](https://i.imgur.com/SRp8AYE.png) --- ```bash= sudo iostat -y ``` Результат ![](https://i.imgur.com/eAD00w5.png) --- ```bash= sudo iostat -z ``` Результат ![](https://i.imgur.com/rcwglXz.png) --- ```bash= sudo iostat /dev/sdb2 ``` Результат ![](https://i.imgur.com/0vNr5y5.png) --- ```bash= sudo iostat -p /dev/sdb2 ``` Результат ![](https://i.imgur.com/af6PWIy.png) --- ```bash= sudo iostat -p /dev/sdb2 1 ``` Результат ![](https://i.imgur.com/fS902Wf.png) --- ```bash= sudo iostat -y -p /dev/sdb2 ``` Результат ![](https://i.imgur.com/XMSXLoF.png) --- ```bash= sudo iostat -y -p /dev/sda1 1 ``` Результат ![](https://i.imgur.com/JqrpI53.png) --- ```bash= df -hl ``` Результат ![](https://i.imgur.com/cP2IuNs.png) --- ```bash= sudo iostat -xk -t 10 | awk '// {print strftime("%Y-%m-%d %H:%M:%S"),$0}' >> iostat.log & ``` Результат ![](https://i.imgur.com/3p6bPl2.png) --- ```bash= sudo iostat -xk -t 10 | awk '// {print srtftime("%Y-%m-%d %H:%M:%S"),$0}' ``` Результат ![](https://i.imgur.com/H3IjG5I.png) --- ```bash= cat iostat.log ``` Результат ![](https://i.imgur.com/cYRHUw5.png) --- ### 2.1.5 Утилита mpstat ```bash= mpstat -A ``` Результат ![](https://i.imgur.com/CDwrDD5.png) --- ```bash= mpstat -P ALL ``` Результат ![](https://i.imgur.com/AWOYhI0.png) --- ```bash= mpstat -P 0 ``` Результат ![](https://i.imgur.com/kuZUHDL.png) --- ```bash= mpstat -V ``` Результат ![](https://i.imgur.com/i4gwN69.png) --- ```bash= mpstat --help ``` Результат ![](https://i.imgur.com/2uNoHhX.png) --- ### 2.1.6 Утилита vmstat ```bash= vmstat ``` Результат ![](https://i.imgur.com/qXPoRDI.png) --- ```bash= sudo vmstat 3 ``` Результат ![](https://i.imgur.com/qW5sdib.png) --- ```bash= vmstat -a ``` Результат ![](https://i.imgur.com/0Wc69c6.png) --- ```bash= vmstat -f ``` Результат ![](https://i.imgur.com/Jk46Qar.png) --- ```bash= vmstat -d ``` Результат ![](https://i.imgur.com/lSyY1Ps.png) --- ```bash= vmstat -D ``` Результат ![](https://i.imgur.com/owNmXsj.png) --- ```bash= vmstat --help ``` Результат ![](https://i.imgur.com/g7mGIeb.png) --- ### 2.1.7 Утилита w ```bash= w ``` Результат ![](https://i.imgur.com/Teq8nHo.png) --- ```bash= w -h ``` Результат ![](https://i.imgur.com/74RWp8n.png) --- ```bash= w -u ``` Результат ![](https://i.imgur.com/p8diIIw.png) --- ```bash= w -s ``` Результат ![](https://i.imgur.com/hFnFJKp.png) --- ```bash= w -f ``` Результат ![](https://i.imgur.com/C53x839.png) --- ```bash= w -i ``` Результат ![](https://i.imgur.com/TZsrbEW.png) --- ```bash= w -o ``` Результат ![](https://i.imgur.com/xKTBSRg.png) --- ```bash= w -V ``` Результат ![](https://i.imgur.com/EvYtuBz.png) --- ### 2.1.8 Утилита htop yum install htop ![](https://i.imgur.com/aFiMy90.png) ```bash= htop ``` Результат ![](https://i.imgur.com/AEnyul5.png) ![](https://i.imgur.com/ZIs5LhA.png) --- ```bash= sudo htop ``` Результат ![](https://i.imgur.com/CO2cs4M.png) ![](https://i.imgur.com/jTuCQq3.png) ```bash= sudo htop -d 1 ``` Результат ![](https://i.imgur.com/cKSzI2p.png) ![](https://i.imgur.com/oU8es48.png) ```bash= sudo htop -d 50 ``` Результат ![](https://i.imgur.com/H5Pj639.png) ![](https://i.imgur.com/0EgYJAR.png) ```bash= sudo htop -t ``` Результат ![](https://i.imgur.com/Qd1gHv3.png) ![](https://i.imgur.com/MZl21C9.png) ## 2.2 Установка и настройка сервера SSH в Linux ### 2.2.1 Установка SSH Установим клиент и сервер ```bash= yum install openssh-server openssh-client ``` Результат ![](https://i.imgur.com/PfEf1UJ.png) Проверим запуск демона ```bash= service sshd status ``` Результат ![](https://i.imgur.com/nniFItG.png) ### 2.2.2 Настройка SSH Посмотрим конфиг сервера ```bash= cat /etc/ssh/sshd_config ``` Результат ![](https://i.imgur.com/3Sd92XT.png) Зададим порты и адреса прослушки, настроим использование ключей, отключим использование паролей, доступ для root и установим алиасы. ```bash= # включим только IPv4 AddressFamily inet # будем прослушивать только на петле ListenAddress 127.127.127.127:1271 # включим ассиметричную аутентификацию PubkeyAuthentication yes # ключи в профиле пользователя AuthorizedKeysFile %h/.ssh/authorized_keys # отключим аутентификацию по паролю PasswordAuthentication no # дополнительно запретим пустые пароли PermitEmptyPasswords no # отключим доступ руту PermitRootLogin no ``` ![](https://i.imgur.com/0kTcCpM.png) ![](https://i.imgur.com/0S9fHYv.png) Стартуем сервис ```bash= sudo service sshd start ``` Однако есть проблемы ![](https://i.imgur.com/cF7NnRW.png) ![](https://i.imgur.com/MFsPfXm.png) Проверим умолчания для ssh на selinux ```bash= sudo semanage port -l | grep ssh ``` ![](https://i.imgur.com/s5atI8P.png) Добавим дополнительно еще и наш порт 1271 ```bash= sudo semanage port -a -t ssh_port_t -p tcp 1271 ``` ![](https://i.imgur.com/5GKxiz7.png) Проверим, что порт 1271 добавлен ![](https://i.imgur.com/xjeKBsN.png) Стартуем sshd ```bash= sudo service sshd start ``` sshd стартовал ![](https://i.imgur.com/bZWhH4y.png) Для применения настроек выполняется следующая команда ```bash= sudo service sshd restart ``` Результат ![](https://i.imgur.com/qXoBerl.png) ### 2.2.3 Настройка и использование клиента SSH Подключение к серверу. В зависимости от настроек сервера будет запрош либо пароль, либо ключ. ```bash= ssh user@192.168.1.75:1271 ``` Результат подключения по паролю ![](https://i.imgur.com/VH24zUm.png) --- Но мы будем подключаться по-другому. Создадим алиас, в профиле пользователя ```bash= nano ~/.ssh/config ``` ![](https://i.imgur.com/iiY3oo0.png) ![](https://i.imgur.com/DUnDFX9.png) Подключимся командой ```bash= ssh localsshserver ``` Результат ![](https://i.imgur.com/8iswWCx.png) Нас не пускает, так как нет ключей ![](https://i.imgur.com/koFXcoU.png) Сгенегируем ### 2.2.4 Генерация ключей используя ssh-keygen Запуск утилиты ```bash= ssh-keygen ``` Результат ![](https://i.imgur.com/QWj0QBl.png) Расположение ключей оставим по-умолчанию ![](https://i.imgur.com/FWQCF1R.png) Введем парольную фразу ![](https://i.imgur.com/Pnm8EmF.png) Ключи готовы ![](https://i.imgur.com/eV5tZ6q.png) Скопируем открытый ключ на сервер ```bash= ssh-copy-id -i ~/.ssh/id_rsa.pub localsshserver ``` Результат ![](https://i.imgur.com/be7d6HE.png) Еще один вариат как скопировать открытый ключ на сервер ```bash= cat ~/.ssh/id_rsa.pub | ssh localsshserver "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" ``` Результат ![](https://i.imgur.com/KygGgC9.png) ## 2.3 Установка и настройка SSH-authorized_keys Отключение аутентификации с помощью пароля ```bash= sudo nano /etc/ssh/sshd_config ``` ```bash PasswordAuthentication no ``` Результат ![](https://i.imgur.com/AaxO7tI.png) Перезагрузим сервер ```bash= sysemctl restart sshd ``` Результат ![](https://i.imgur.com/9vJpdQx.png) Аутентификация на сервере с помощью ключей ```bash= ssh localsshserver ``` Результат ![](https://i.imgur.com/Ba3Ub4n.png) ## 2.4 Сбор информации о Linux и WGET Выполнять будем на Kali Linux ### 2.4.1 Сбор информации ```bash= cat /etc/os-release ``` Результат ![](https://i.imgur.com/eWexqW0.png) --- ```bash= uname -a ``` Результат ![](https://i.imgur.com/sRAZx3m.png) --- ```bash= whoami ``` Результат ![](https://i.imgur.com/GLzi61O.png) --- ```bash= uptime ``` Результат ![](https://i.imgur.com/IjMjLFf.png) --- ```bash= ls -la /home ``` Результат ![](https://i.imgur.com/QaFoUU6.png) --- ```bash= sudo chmod o-rx /home/kali ``` Результат ![](https://i.imgur.com/DL74tkU.png) --- ```bash= ip neigh ``` Результат ![](https://i.imgur.com/W8wshSr.png) --- ```bash= sudo ss -tlnp ``` Результат ![](https://i.imgur.com/dYU0YUn.png) ```bash= sudo -l ``` Результат ![](https://i.imgur.com/nPVVOTO.png) --- ### 2.4.2 SUID ```bash= sudo find / -user root -perm -4000 -exec ls -ldb {} \; 2> /dev/null ``` Результат ![](https://i.imgur.com/UVTj2zb.png) --- ```bash= sudo apt install wget ``` Результат ![](https://i.imgur.com/oECWxcG.png) --- ```bash= wget https://downloads.cisofy.com/lynis/lynis-3.0.8.tar.gz ``` Результат ![](https://i.imgur.com/V3NrFfM.png) --- ```bash= tar xfv lynis-3.0.8.tar.gz ``` Результат ![](https://i.imgur.com/1YSS0Fr.png) --- Проверим контрольную сумму Посмотрим ее на сайте ![](https://i.imgur.com/PBwPycT.png) Контрольная сумма ```bash= 98373a4cc9d0471ab9bebb249e442fcf94b6bf6d4e9c6fc0b22bca1506646c63 ``` --- Установим hashalot ```bash= sudo apt install hashalot ``` Результат ![](https://i.imgur.com/7IeJ1Wg.png) --- Проверим хэш ```bash= sha256sum lynis-3.0.8.tar.gz ``` Результат ![](https://i.imgur.com/LOUYs0w.png) Хэши совпадают --- ```bash= cd lynus ls sudo ./lynus audit system ``` Результат ![](https://i.imgur.com/XJ5Y09C.png) ![](https://i.imgur.com/EbsxaK8.png) --- ```bash= sudo ./lynis show options ``` Результат ![](https://i.imgur.com/aV6qULb.png) --- ```bash= sudo nano /val/log/lynis-report.dat ``` Результат ![](https://i.imgur.com/VXZiJRZ.png) --- ### 2.4.3 Проверка целостности пакетов ```bash= dpkg -l ``` Результат ![](https://i.imgur.com/EpFjbTp.png) --- ```bash= dpkg -L coreutils ``` Результат ![](https://i.imgur.com/I2y7VQa.png) --- ```bash= /bin/dir --help ``` Результат ![](https://i.imgur.com/Cb5aA8m.png) --- ```bash= sudo mv /bin/dir /bin/dir.back ``` Результат ![](https://i.imgur.com/OSWahOa.png) --- ```bash= sudo cp /bin/false /bin/dir ``` Результат ![](https://i.imgur.com/qoRkcmX.png) --- ```bash= dir echo $? ``` Результат ![](https://i.imgur.com/9XW9o2i.png) --- ```bash= apt install debsums ``` Результат ![](https://i.imgur.com/8LsWnJt.png) --- ```bash= debsums ``` Результат ![](https://i.imgur.com/pQIbQuz.png) --- ```bash= debsums -ac coreutils ``` Результат ![](https://i.imgur.com/8cOyX1g.png) --- ```bash= debsums -cs coreutils ``` Результат ![](https://i.imgur.com/r6zo7ZI.png) --- ```bash= dpkg --verify coreutils ``` Результат ![](https://i.imgur.com/ikSb6sP.png) --- ```bash= sudo find / -printf "%T@;%Tc;%p\\n" ``` Результат ![](https://i.imgur.com/Db0zIc1.png) --- ```bash= sudo find /home/kali/ -printf "%T@;%Tc;%p\\n" > timeline.csv ``` Результат ![](https://i.imgur.com/Us5Jvzx.png) --- ```bash= sudo find /home/kali/ -printf "%T@ %Tc %p\\n" > timeline.csv ``` Результат ![](https://i.imgur.com/QShbKSn.png) --- ```bash= head timeline_spaces.csv ``` Результат ![](https://i.imgur.com/ne8kwQ0.png) ```bash= sort -rn timeline_spaces.csv | less ``` Результат ![](https://i.imgur.com/xFf5GyV.png) ![](https://i.imgur.com/cm7wkQ9.png) --- ## 2.5 Переменные окружения в Linux ### 2.5.0 Краткое описание - /etc/profile - /etc/environment - /etc/bash.bashc - .bashrc - .bash_profile Установим coreutils apt install coreutils ![](https://i.imgur.com/qpk4m8F.png) ```bash= printenv ``` Результат ![](https://i.imgur.com/8hqO6SR.png) --- ### 2.5.1 Запуск команды с указанием нового значения переменной окружения ```bash= env HOME=/home/kali ``` Результат ![](https://i.imgur.com/9qRszVs.png) --- ### 2.5.2 Установка и удаление локальных переменных окружения ```bash= TESTKALI=/home/kali echo $TESTKALI ``` Результат ![](https://i.imgur.com/SbXjLni.png) --- ```bash= echo $TESTKALI unset TESTKALI echo $TESTKALI ``` Результат ![](https://i.imgur.com/SonAa3o.png) --- ### 2.5.3 Добавление и удаление пользовательских переменных Добавим TESTKALI export TESTKALI="/home/kali" ```bash= sudo nano .bashrc ``` Результат ![](https://i.imgur.com/8GsYLqU.png) ![](https://i.imgur.com/zy9f3GN.png) --- ```bash= echo $TESTKALI source .bashrc echo $TESTKALI ``` Результат ![](https://i.imgur.com/KP61HVG.png) --- ### 2.5.4 Создание и удаление системных переменных окружения Внесем TESTKALI2=/home/kali12345 ```bash= sudo nano /etc/profile ``` Результат ![](https://i.imgur.com/FzjWRyG.png) ![](https://i.imgur.com/LaMlS8O.png) ```bash= echo $TESTKALI2 source /etc/profile echo $TESTKALI2 ``` Результат ![](https://i.imgur.com/WfI32ss.png) --- На этом данная работа завершена