# Занятие 2. Администрирование Linux ## Григорян_ТА ## Практическая работа №2.1 ## Задание: 1) Изучить работу утилит df, du, free, iostat, mpstat, vmstat, w, htop. ## Ход работы: ### 1. Команда df в linux Чтобы посмотреть доступное пространство на всех примонтированных разделах и информацию о них достаточно набрать: ![](https://i.imgur.com/zCGLD1J.png) Попросим утилиту выводить данные в более читаемом формате: ![](https://i.imgur.com/8asrKe4.png) Если задать опцию -a, мы можем получить информацию обо всех файловых системах известных ядру, которые были смонтированы: ![](https://i.imgur.com/SKGsRdC.png) Выведем только информацию про реальные файловые системы на жестком диске можно использовать опцию -x чтобы отфильтровать все tmpfs: ![](https://i.imgur.com/Egoo0IE.png) Также можно отфильтровать две файловые системы: ![](https://i.imgur.com/HhzLenI.png) Или же указать файловую систему, которую нужно отображать: ![](https://i.imgur.com/dpduy1m.png) Также можно указать интересующий вас раздел, как вы видели в синтаксисе команды: ![](https://i.imgur.com/T6JNKEh.png) С помощью опции -i можно посмотреть информацию про состояние inode в вашей файловой системе: ![](https://i.imgur.com/tLjmhpN.png) Вывести объем доступного пространства в каталоге: ![](https://i.imgur.com/biQFnRg.png) ### 2. Команда df в linux Опции du отображает использование диска для данного файла или каталога и каждого из его подкаталогов в байтах. ![](https://i.imgur.com/PEmFfaS.png) Также можно передать команде du несколько файлов и каталогов в качестве аргументов: ![](https://i.imgur.com/kTICXOR.png) Параметр -a указывает du сообщать об использовании дискового пространства каждым файлом в каталоге: ![](https://i.imgur.com/8Kb2XAd.png) Чтобы получить общий размер */var/lib* и всех его подкаталогов, мы должны выполнить следующую команду: ![](https://i.imgur.com/jiJGas2.png) Узнали только общий размер указанного каталога: ![](https://i.imgur.com/RwieOBh.png) Узнали общую сумму каталогов: ![](https://i.imgur.com/FEFbN18.png) Получили отчет о каталогах первого уровня: ![](https://i.imgur.com/YBq2glP.png) Узнали очевидный размер файла: ![](https://i.imgur.com/mg0yocU.png) Получили размер всех каталогов, начинающихся с «Do» в домашнем каталоге: ![](https://i.imgur.com/jHIH7hJ.png) Вывели 5 самых больших каталогов внутри каталога: ![](https://i.imgur.com/PCuxjbw.png) ### 3. Команда free в Linux Отобразили информацию о памяти и подкачке в килобайтах: ![](https://i.imgur.com/LrthnDw.png) Буферы и кеш отобразили в двух отдельных столбцах: ![](https://i.imgur.com/EQLfuEZ.png) Просмотрели информацию в удобочитаемом формате: ![](https://i.imgur.com/j5gA91K.png) Отобразили результат в гигабайтах: ![](https://i.imgur.com/lyIosXM.png) Отобразили строку, показывающую итоги столбца: ![](https://i.imgur.com/uZdUDpz.png) Вывели информацию о памяти каждые пять секунд: ![](https://i.imgur.com/7aFkUEf.png) Отобразили результат определенное количество раз: ![](https://i.imgur.com/ZjhYnOi.png) ### 3.1 Команда free в Linux с примерами Пример, отформатированный для командной строки и ее вывода: ![](https://i.imgur.com/XZzvLVN.png) Постоянное отслеживание использования памяти: ![](https://i.imgur.com/p9lzpUD.png) ### 4. iostat Установка iostat: ![](https://i.imgur.com/asLlYHF.png) Запуск IOSTAT: ![](https://i.imgur.com/uF26k8p.png) Просмотр данных в удобном формате: ![](https://i.imgur.com/y64m1r9.png) Просмотр данных по нужному устройству: ![](https://i.imgur.com/oLMdetp.png) Просмотр статистики по каждому разделу устройства: ![](https://i.imgur.com/iVs0ZZF.png) Автоматически обновляет данные каждую секунду: ![](https://i.imgur.com/byr3LCO.png) Чтобы утилита не суммировала все данные с момента запуска операционной системы: ![](https://i.imgur.com/KhBb5YW.png) ### 4.1 Профилирование нагрузки на файловую систему с помощью iostat Сохранили df -hl: ![](https://i.imgur.com/flovQRn.png) Получение лог файла: ![](https://i.imgur.com/p8HXApS.png) Ввод лога: ![](https://i.imgur.com/lydxPxq.png) ### 5. mpstat 5.1 Отображение всей информации: ![](https://i.imgur.com/oeR8Oco.png) 5.2 Показать статистику CPU индивидуального процессора (или) ядра: ![](https://i.imgur.com/iJPWqsp.png) 5.3 Для отображения статистически о конкретном CPU или ядре: ![](https://i.imgur.com/QcTXCRZ.png) 5.4 Показать версию утилиты: ![](https://i.imgur.com/Huxfhpy.png) 5.5 Дополнительные опции ![](https://i.imgur.com/yu2CcZU.png) ### 6. vmstat Вызовим команду vmstat: ![](https://i.imgur.com/mpDxP4d.png) Просмотрим активная/неактивная память: ![](https://i.imgur.com/i8PiyQl.png) Просмотрим количество вилок с момента загрузки: ![](https://i.imgur.com/ZtLuBfy.png) Просмотрим статистику диска: ![](https://i.imgur.com/SvxIiwc.png) Просмотрим общую статистику диска: ![](https://i.imgur.com/OC8Ap88.png) Дополнительные опции: ![](https://i.imgur.com/HfOL0as.png) Определили через какое время выводить информацию: ![](https://i.imgur.com/Gq6Jc6U.png) ### 7. Утилита/команда " w " Краткая сводка о работающих в системе в данный момент пользователях (залогиненных пользователях), а также о том, какие процессы у них запущены: ![](https://i.imgur.com/miVImK8.png) Не выводя заголовок у таблицы: ![](https://i.imgur.com/acABmRT.png) Игнорировали имена пользователей при определении времени текущего процесса и времени CPU: ![](https://i.imgur.com/DOHmUx5.png) Использовали сокращенный формат вывода. Без колонок JCPU и PCPU: ![](https://i.imgur.com/oDDBWrf.png) Включили или выключили вывод поля from, которое соответствует имени удаленного хоста: ![](https://i.imgur.com/dO6AAqd.png) Вывели в поле from IP-адрес вместо имени хоста: ![](https://i.imgur.com/XFBJLA1.png) Вывели информацию в старом формате. Время, которое меньше 1 минуты: ![](https://i.imgur.com/nZ1q8iv.png) Вывели версию утилиты w: ![](https://i.imgur.com/xnKDuvt.png) ### 8. Утилита htop Установили htop: ![](https://i.imgur.com/jwAqSFx.png) Запустили htop с привилегиями суперпользователя: ![](https://i.imgur.com/5yRPyth.png) Вывели программу с обновлением окна каждую 1 секунды (sudo htop -d 1): ![](https://i.imgur.com/B86FVgU.png) Вывели процессы в виде дерева: ![](https://i.imgur.com/Gptyqvb.png) ## Практическая работа №2.2. Установка и настройка сервера SSH в Linux ## Задание: 1) Научиться настраивать SSH-сервер, клиент. ## Ход работы: ### 1. Установка пакетов SSH Установили SSH: ![](https://i.imgur.com/Qh37ykT.png) По завершению установки, автоматически будет запущен SSH-сервер в режиме демона. Это можно проверить командой: ![](https://i.imgur.com/X1XFs9E.png) ### 2. Настройка SSH Настройки демона можно посмотреть командой: ![](https://i.imgur.com/RtHl0P1.png) Изменили параметры. Поменяли порт, айпи адреса, и версию IP: ![](https://i.imgur.com/B4OxZBV.png) Включили параметр, позволяющий проводить авторизацию и шифрование трафика с помощью специальных SSH-ключей: ![](https://i.imgur.com/he05N6b.png) Отключили авторизацию по пустому паролю: ![](https://i.imgur.com/EuiKePs.png) Отключили root доступ: ![](https://i.imgur.com/qtuXmg0.png) ### 3. Настройка и использование клиента SSH Для подключения к серверу используется команда: ![](https://i.imgur.com/tG0MAF9.png) ### 4. Для генерации ключей используется утилита ssh-keygen: Сгенерировали ключи и выбрали расположение ключей по умолчанию: ![](https://i.imgur.com/lmPQYH9.png) Скопировали открытый ключ на сервер и передали его клиенту 172.10.20.4: ![](https://i.imgur.com/B8t65ss.png) Подключились к серверу без ввода пароля: ![](https://i.imgur.com/8kSPLCQ.png) ## Практическая работа №2.3. Установка и настройка SSH-authorized_keys ## Задание: - научиться настраивать SSH-authorized_keys. - научиться работать с ключами SSH. ## Ход работы: ## (!!!здесь у меня поменялись айпишники, эту часть я делал дома, а до этого на работе, поэтому не удивляйтесь!!!) Сгенерировали на локальном компьютере пару ключей SSH, введя следующую команду: ![](https://i.imgur.com/wMZqhCT.png) Скопировали открытый ключ на сервер: ![](https://i.imgur.com/yFfYdUF.png) Подключилсиь на сервер без пароля учетной записи: ![](https://i.imgur.com/VkgVPeR.png) Отключили вход по паролю: ![](https://i.imgur.com/vcR2rND.png) Скопировали открытый ключ: ![](https://i.imgur.com/Cpl8ctn.png) ## Практическая работа №2.4. Сбор информации о Linux и WGET ## Задание: 1) Научиться базовому сбору информации о Linux системах. ## Ход работы: ### 1. Базовый сбор информации Выведем информацию о дистрибутиве и его версии: ![](https://i.imgur.com/ghltSG8.png) Выведем информацию по ядру linux: ![](https://i.imgur.com/i10NElF.png) Отобразили имя текущего вошедшего в систему пользователя: ![](https://i.imgur.com/8Z2aq6j.png) Выведем информацию о том, когда и сколько система работала: ![](https://i.imgur.com/HGzNFJ6.png) Посмотрим права директории /home: ![](https://i.imgur.com/vuaTeFG.png) Чтобы ограничить права другим пользователям делаем следующее: ![](https://i.imgur.com/vLNKxoi.png) Просмотрим с какими компьютерами происходит обмен данными: ![](https://i.imgur.com/8rNaAut.png) Просмотрим какие сервисы и с какими портами запущены: ![](https://i.imgur.com/D6B04CQ.png) Просмотрим что есть в этой машинке и что пользователь может: ![](https://i.imgur.com/o4QvTyy.png) ### 2. Суидные файлы Базовый сбор информации: ![](https://i.imgur.com/DfeqoG1.png) Скачали с помощью wget утилиту lynis: ![](https://i.imgur.com/QhWOHBc.png) Разаархивируем скачанный архив: ![](https://i.imgur.com/CuXRWU0.png) Проверим контрольную сумму с сайта и то, что мы скачали: ![](https://i.imgur.com/yM0sR2N.png) ![](https://i.imgur.com/9CvHFi3.png) Перейдем в директорию lynis: ![](https://i.imgur.com/MuqVfup.png) Запускаем утилиту lynis: ![](https://i.imgur.com/AouwBO7.png) Наш report-отчёт: ![](https://i.imgur.com/5qxo1cI.png) Выполнили команду show options: ![](https://i.imgur.com/W3z4WpT.png) Перенаправление файлов осуществляется через стандартный report утилиты: ![](https://i.imgur.com/JqZHGHK.png) ### 3. Проверка целостностей пакетов Просмотрели пакеты в системе: ![](https://i.imgur.com/9qgKXyb.png) Просмотрели установленные утилиты: ![](https://i.imgur.com/UqY8EOo.png) Рассмотрим утилиту /bin/dir: ![](https://i.imgur.com/5o5R2RF.png) Сымитируем подмену или правку кода программы, для этого сделаем сделаем backup: ![](https://i.imgur.com/x2MmXGe.png) Сделаем копию: ![](https://i.imgur.com/p2VWPnI.png) Запускаем dir и можем увидеть, что ничего не будет происходить, кроме как если посмотреть логическую ложь, то будет ошибка: ![](https://i.imgur.com/hLqLytV.png) Чтобы нам быстро проверить этот пакет мы можем выполнить команду debsums, установим утилиту: ![](https://i.imgur.com/5BUliTn.png) Запуск проверки: ![](https://i.imgur.com/4Rvb6wl.png) Проверка другой утилитой: ![](https://i.imgur.com/Q34nlPh.png) Если кто-то смог проникнуть в систему и что-то деал в ней нам поможет команда find. Например, если нам надо рассмотреть какой либо инцидент: ![](https://i.imgur.com/Kzo2BNa.png) Можно указать через пробел, но тогда будет сложно работать с выводом данных: ![](https://i.imgur.com/dsYUSjZ.png) Поиск по одному конкретному пользователю: ![](https://i.imgur.com/UmxLpXp.png) Сделали сортировку: ![](https://i.imgur.com/tRMth98.png) Отсортировали данный файл с помощью команды *sort -rn timeline.csv | less*, где флаг -r указывает на последнее изменение и оно будет первым: ![](https://i.imgur.com/YY9299a.png) Мы можем видеть, что менялось и в какое время, что позволит увидеть все изменения. ## Практическая работа №2.5. Переменные окружения в Linux .bashrc, .bash_profile и .bash_login ## Задание: 1) Научиться работать с переменным окружением в linux. ## Ход работы: ### 1. Просмотр списка системных переменных окружения Проверим наличие утилиты Coreutils у нас в системе: ![](https://i.imgur.com/Ij5vtxt.png) Раскроем список всех переменных окружения: ![](https://i.imgur.com/DSSzqXr.png) ![](https://i.imgur.com/RIB3ecL.png) ### 2. Запуск команд с указанием нового значения переменной окружения Прописали название переменной, и ее значение, например, путь к папке /home/kali: ![](https://i.imgur.com/cEncbcb.png) ### 2.1 Установка и удаление локальных переменных окружения Собственное создание таких опций: ![](https://i.imgur.com/3JQqK3W.png) Проверим действенность произведенных действий: ![](https://i.imgur.com/o3wNUhj.png) Удаляем параметр: ![](https://i.imgur.com/vh2xi9O.png) Проверим удаление: ![](https://i.imgur.com/Z1PiGfh.png) ### 2.2 Добавление и удаление пользовательских переменных Посмотрим классы переменных: ![](https://i.imgur.com/MFyiBm1.png) Откроем файл и добавим запись вконце файла: ![](https://i.imgur.com/zhRQxvs.png) Обновим конфигурацию: ![](https://i.imgur.com/29Io5W3.png) Проверим активность переменной: ![](https://i.imgur.com/t7JFAsm.png) ### 2.3 Создание и удаление системных переменных окружения Откроем конфигурационный элемент /etc/profile и добавим вконце переменную: ![](https://i.imgur.com/XJ49mJE.png) Обновим конфигурацию и проверим активность переменной: ![](https://i.imgur.com/7fYP7jR.png)