###### tags: `Linux Labs` # Отчёт по практической работе №2 ## Часть №1 - Основы мониторинга OS Linux ### Команда №1 - df Введём команду df с некоторыми опциями: ![](https://i.imgur.com/Gp156x5.png) `df -all` - отобразить все файловые системы; `df -BM` - изменить размер одного блока перед выводом данных. В данном случае все данные в мегабайтах. ![](https://i.imgur.com/3tVrOrL.png) `df -h` - выводить размеры в читаемом виде, в мегабайтах или гигабайтах; `df -H` - выводить все размеры в гигабайтах; `df -i` - выводить информацию об inode; `df -k` - выводить размеры в килобайтах. ![](https://i.imgur.com/8XQaXSm.png) `df --output` - использовать специальный формат вывода. В данном случае параметров не было задано, поэтому в результате вывода будут видны все поля; `df -P` - использовать формат вывода POSIX; `df --total` - выводить всю инорфмацию про использованное и доступное место. ![](https://i.imgur.com/ocqSYga.png) `df --type tmpfs` - вывести всю информацию про файловую систему tmpfs. ![](https://i.imgur.com/ORPM5U0.png) `fd -x tmpfs` - вывести информацию обо всех, кроме файловой системы tmpfs. ### Команда №2 - du Без какой-либо опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах. В моём случае в папке пользователя root была установлена утилита badkarma, что и отобразила утилита: ![](https://i.imgur.com/kpsMsE9.png) Вот ещё несколько примеров использования этой команды: ![](https://i.imgur.com/cHL6zrL.png) ![](https://i.imgur.com/Ckz2gca.png) ![](https://i.imgur.com/xfKVqhw.png) ![](https://i.imgur.com/K4cZ07M.png) ![](https://i.imgur.com/c3IDIma.png) Также du можно использовать вместе с другими командами: ![](https://i.imgur.com/S0sBFli.png) ### Команда №3 - free Ниже предоставлены примеры вывода команды с различными опциями: ![](https://i.imgur.com/zLrsgvB.png) ![](https://i.imgur.com/raxYTMD.png) ![](https://i.imgur.com/zfDpvuc.png) Обновление информации каждые 5 секунд: ![](https://i.imgur.com/cxDxvCh.png) Обновление каждую секунду и вывод 3 раза: ![](https://i.imgur.com/pyFlOwI.png) ### Команда №4 - iostat Пример использования команды без опций и с ними: ![](https://i.imgur.com/3beYNtz.png) Для просмотра ланных в удобном формате: ![](https://i.imgur.com/Tqkjyrb.png) Для просмотра информации об отдельном устройстве: ![](https://i.imgur.com/CQFWhjC.png) Для просмотра инофрмации об каждом разлеле устройства: ![](https://i.imgur.com/TUJKboc.png) Для обновления информации через определённый интервал (в данном случае 1 секунда): ![](https://i.imgur.com/CgJUeA1.png) Для отсутствия суммирования с момента запуска системы: ![](https://i.imgur.com/gtmYoXi.png) Профилирование нагрузки на файловую систему: ![](https://i.imgur.com/NUHg4zE.png) ### Команда №5 - mpstat Запуск без опций: ![](https://i.imgur.com/VZV8bKg.png) Для вывода всей информации, которую только может вывести команда: ![](https://i.imgur.com/m7FUg1L.png) Демонстрация ещё нескольких опций: ![](https://i.imgur.com/8v2J5gN.png) ### Команда №6 - vmstat Вывод команды vmstat с различными опциями и без них ![](https://i.imgur.com/8k0eUrW.png) Вывод информации на экран спустя определённый промежуток времени: ![](https://i.imgur.com/IefNt5l.png) ### Команда №7 - w Вывод команды w с различными опциями и без них: ![](https://i.imgur.com/U4Akpud.png) Вывод версии на экран: ![](https://i.imgur.com/ooN2EZY.png) ### Команда №8 - htop Установим программу: ![](https://i.imgur.com/zkhPrSF.png) Просмотр действующих процессов: ![](https://i.imgur.com/cfhTYGn.png) Также можно использовать команду `sudo htop -d 1` для ежесекундного обновления информации в окне. Ещё можно использовать `sudo htop -t` для вывода процессов в виде дерева: ![](https://i.imgur.com/buL257U.png) ## Часть №2 - Установка и настройка сервера SSH в Linux Установим ssh командой `sudo apt-get install ssh`. В данном случае sudo было не обязательным т.к. я находился в режиме суперпользователя: ![](https://i.imgur.com/uhqawP6.png) Запустим ssh сервер: ![](https://i.imgur.com/DMAQr1F.png) Подключимся к нему по ssh: ![](https://i.imgur.com/PaHFp46.png) Сгенерируем ключ: ![](https://i.imgur.com/sTCUxa3.png) Скопируем открытый ключ на сервер: ![](https://i.imgur.com/cxCBT8e.png) Теперь с помощью команды `ssh` мы можем подключится по защищённому каналу на сервер и работать там. Авторизация будет проводиться по фразе, использованной при создании ключа: ![](https://i.imgur.com/AnoLZaK.png) Также есть возможность подключение по ssh через putty: Введём ip адрес хоста: ![](https://i.imgur.com/TUS6vO1.png) И выполним подключение: ![](https://i.imgur.com/Erlcnir.png) Также можно изменить порт на любой незарезервированный на интервале 0 - 1024: ![](https://i.imgur.com/j2NcvGg.png) Стандартный порт для подключения по ssh - 22. После настройки он выдаёт ошибку. При подключении через 357 порт всё нормально. Это означает, что замена порта прошла успешно: ![](https://i.imgur.com/Vl2it6K.png) # UPD ## Файл конфигурации с настройкой запрета авторизации через root. ![](https://i.imgur.com/pu3PKb7.png) ## Скриншот авторизации с помощью ключа: ![](https://i.imgur.com/ZP3vLhb.png) ## Часть №3 - Установка и настройка SSH-authorized_keys Ранее мы уже создавали ключи для предыдущего задания. Сделаем это ещё раз, используя ту же команду, но на этот раз нам придётся подтвердить перезапись: ![](https://i.imgur.com/KuUFTf4.png) Выгрузим на сервер открытый ключ: ![](https://i.imgur.com/b4JncCH.png) Авторизируемся по ssh: ![](https://i.imgur.com/PEiReNl.png) Сработало. Если ранее пароль был pt_start, то теперь я использовал supkali. ## Часть №4 - Сбор информации о Linux и WGET ### Задание №1 - базовый сбор информации Соберём информацию о дистрибутиве: ![](https://i.imgur.com/FJBdska.png) Узнаем информацию о ядре: ![](https://i.imgur.com/K0nyhaa.png) Имя активного пользователя: ![](https://i.imgur.com/Gxh6Yz3.png) Сколько работает система: ![](https://i.imgur.com/TDVBfbT.png) Права на директорию /home ![](https://i.imgur.com/LJZmqgW.png) Ограничим права другим пользователям: ![](https://i.imgur.com/P9yxibR.png) Узнаем с какаими ПК происходит обмен данными: ![](https://i.imgur.com/84buITa.png) Показывает, какие сервисы и с какими портами запущены: ![](https://i.imgur.com/X4cozij.png) Узнаем, что может пользователь: ![](https://i.imgur.com/SxzTiVH.png) ### Задание №2 - Суидные файлы Просмотрим систему на различные закладки: ![](https://i.imgur.com/g8OFBDz.png) Скачаем приложения для проведения автоматического сбора информации о системе: ![](https://i.imgur.com/4977oi0.png) Проведём разархивацию: ![](https://i.imgur.com/Q9cUJjt.png) Сверим контрольные суммы: ![](https://i.imgur.com/wLdVuZp.png) ![](https://i.imgur.com/sVl2H7r.png) Проверим наличие утилиты в каталоге: ![](https://i.imgur.com/eEvZPPC.png) Запустим утилиту: ![](https://i.imgur.com/kE2C998.png) Получим репорт об ошибках: ![](https://i.imgur.com/XszALrq.png) Также есть возможность просмотреть функции программы: ![](https://i.imgur.com/r4DzXc7.png) Также имеется стандартный репорт утилиты: ![](https://i.imgur.com/HCv5VRz.png) ### Задание №3 - Проверка целостности пакетов Для просмотра пакетов в системе: ![](https://i.imgur.com/xfPzHwi.png) Просмотр установленных утилит: ![](https://i.imgur.com/W3rqijL.png) Рассмотрим утилиту /bin/dir: ![](https://i.imgur.com/ecpFauQ.png) Сделаем её бэкап: ![](https://i.imgur.com/YZF405Y.png) И заменим её. Теперь при запуске dir мы можем увидеть, что ничего не будет происходить, кроме как если посмотреть логическую ложь, то будет ошибка: ![](https://i.imgur.com/F2SW8IA.png) Теперь нам надо быстро проверить этот пакет. Установим утилиту debsums: ![](https://i.imgur.com/5u6rrz3.png) Запустим проверку: ![](https://i.imgur.com/QypqISr.png) Если нам нудно рассмотреть какой-либо инцидент при проникновении в систему: ![](https://i.imgur.com/evlWLp0.png) Если необходимо сделать по одному конкретному пользователю: ![](https://i.imgur.com/ILLukCh.png) Проведём сортировку: ![](https://i.imgur.com/RNyk7Q9.png) Здесь не видны наши действия т.к. мы находились в режиме суперпользователя. При запуске от имени обычного пользователя всё в норме: ![](https://i.imgur.com/1AMoXW1.png) ## Часть №5 - Переменные окружения в Linux .bashrc, .bash_profile и .bash_login ### Задание №1 - Просмотр списка системных переменных окружения Чтобы проверить наличие необходимой утилиты в системе и сразу же установить ее при надобности: ![](https://i.imgur.com/NLY2PCB.png) Теперь воспользуемся `printenv`, чтобы вывести список переменных окружения: ![](https://i.imgur.com/B5orSV5.png) ### Задание №2. Запуск команд с указанием нового значения переменной окружения На время изменим опцию параметра HOME: ![](https://i.imgur.com/eGFaahF.png) Добавим локальный параметр TESTKALI и проверим его: ![](https://i.imgur.com/LvjDbgs.png) Теперь удалим его и проверим результат операции: ![](https://i.imgur.com/kXxgvQ0.png) Пользовательскую конфигурацию можно редактировать: ![](https://i.imgur.com/MY2OJ0w.png) ![](https://i.imgur.com/1GzgahR.png) Обновиться она после ввода следующеу команды: ![](https://i.imgur.com/wbj5QCJ.png) Наша сохранённая команда все также рабоатет: ![](https://i.imgur.com/anKSOlI.png) ### Задание №3 - Создание и удаление системных переменных окружения Откроем файл /etc/profile: ![](https://i.imgur.com/YXa0djI.png) Перезапустим службу и введём нашу новую системную переменную: ![](https://i.imgur.com/aYNriLZ.png)