Администрирование операционных систем UNIX
Программа курса
Модуль 0. Подготовка стенда в классе.
Узнать свой номер стенда
Удалить виртуалки
Удалить профили putty
Отключить не используемые адаптеры
Записать логин пароль и IP (сообщить преподавателю) рабочей станции
Проверить наличие дистрибутивов и образов
Модуль 1 (4). Выбор дистрибутива, установка и анализ системы
Теория
Выбор дистрибутива
Оборудование
Системное ПО
Прикладное ПО
Лабораторные работы
1.1 Загрузка актуального дистрибутива
Задание: выяснить какие бывают, способы загрузки и варианты установки дистрибутивов
1.2 Установка системы
Задание:
установить систему, не менять значения по умолчанию в процессе инсталляции
добавить пользователя student/password
в linux установить sshd
Задание для преподавателя:
установить CentOS
установить Ubuntu18 (netplan)
Задание на дом:
1.3 Анализ оборудования системы
Задание: найти информацию о процессоре, памяти, дисках и сетевых платах
1.4 Анализ ядра, модулей и дистрибутива
Задания:
выяснить версию ядра
выяснить, какие модули ядра загружены (например, для оборудования)
выяснить дистрибутив (для linux)
1.5 Анализ процессов в системе
Задание: выяснить, запущен ли сервис sshd
1.6 Управление загрузчиком системы
Задание для преподавателя:
восстановить забытый пароль (альтернативно можно показать исправление fstab в модуле про ФС, или, загрузка в однпользовательском режиме для переноса /var на другой диск)
Вопросы
Что общего и в чем разница между Linux и UNIX?
Что такое Source-based, Binary based, Rolling release, LTS дистрибутивы?
Назовите этапы загрузки системы
Какие команды позволят определить аппаратные ресурсы системы?
Какие команды помогут определить версию ядра и дистрибутив системы?
Для чего нужны модули ядра?
Для чего служат переменные ядра?
Модуль 2 (5). Настройка и тестирование сети
Теория
Лабораторные работы
2.0 Настроить маршрут с рабочей станции в сеть стендов
C:\>route -p add 172.16.1.0 mask 255.255.255.0 10.N.M.252
*/ примечание, если не в комплексе Радио
2.1 Команды для настройки сети
Задание:
выяснить состояние сетевых интерфейсов в системе, назначить им ip/mask/gate
выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl
2.2 Команды для диагностики сети
Задание: используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh
2.3 Файлы конфигурации сети
Задание: отредактировать файлы конфигурации сети используя любой тестовый редактор, перезагрузить систему проверить работу сети после перезагрузки системы.
2.4 Дополнительные утилиты для тестирования сети
Задание: посмотреть какой порт “слушает” сервис ssh
Задание: посмотреть содержимое трафика ssh командой tcpdump
Задание: проверить работу клиента DNS
Вопросы
Какие команды используются для управления/диагностики сетевых параметров системы?
Какие команды используются для тестирования настроек
DNS?
Какие команды используются для анализа открытых сетевых портов системы?
Что общего между файлами /etc/resolv.conf и /etc/hosts?
Какие варианты управления файлом /etc/resolv.conf могут быть?
Модуль 3 (6). Система безопасности UNIX
Теория
Лабораторные работы
3.1 Управление пользователями в системе
Задание:
выяснить, какие учетные записи присутствуют в системе
какие из них можно использовать для подключения по ssh
создать пользователя userX, указав его ФИО, shell и пароль
3.2 Управление правами пользователей в системе
Задание: познакомиться с утилитами umask, chmod, chown
Задание: назначить userX администратором системы, а затем, лишить его этих полномочий.
Задание: отключить текущую сессию бывшего администратора (можно в теме управления сервисами)
Вопросы
В каком виде хранится пароль пользователя в системной базе данных ?
Для чего предназначены команды umask, chmod, chown?
Что определяет маска 640 или
-rw-r-----
для файла?
Что обозначает бит “x” для файла и каталога
Что обозначает значение атрибута EUID=0 для процесса?
Что обозначает бит “s” для файла, содержащего программу?
Для чего предназначены команды su и sudo?
Модуль 4 (7). Управление ПО
Теория
Сборка и установка ПО
Обновление ПО
Лабораторные работы
4.1 Сборка и установка ПО из исходных текстов
Задание для преподавателя:
4.2 Базовое ПО классических UNIX систем
4.3 Сборка и установка ПО из портов
Для FreeBSD /*
Задание для преподавателя: установить сервис asterisk с минимальным количеством опций
1. Установить “чистый” экземпляр FreeBSD предыдущего релиза и дерево портов из дистрибутива
2. Установить переменные окружения BATCH (или все зависимости) и DISABLE_VULNERABILITIES (если потребуется)
3. Установить /usr/ports/net/asterisk11 из портов с опциями GCC NCURSES GSM
*/ см. примечание
4.4 Установка ПО из скомпилированных пакетов
Задание: преподавателю - текстовый браузер lynx, студентам sudo
4.5 Обновление ПО внутри релиза
Задание: установить необходимые обновления в системе
4.6 Обновление системы до актуального релиза
Вопросы
Какие недостатки установки ПО “вручную” из исходных текстов?
Какие достоинства и недостатки установки ПО из Gentoo portage или FreeBSD ports?
Какие команды используются для установки пакетов в Debian, CentOS и FreeBSD?
Какие команды используются для работы с репозиториями ПО Debian, CentOS и FreeBSD?
В чем опасность использования сторонних репозиториев с ПО?
Какие проблемы могут возникнуть при обновлении системы до следующего релиза?
Модуль 5 (8). Управление сервисами
Теория
Управление запуском ПО
Управление сообщениями сервисов
Лабораторные работы
5.1 Управление запуском сервисов
Задание:
с помощью сигналов отключить пользователя userX
включить/выключить сервис clamav из автозагрузки
добавить в автозагрузку свой собственный сервис
# ssh-keygen
# ssh-copy-id userX@gate.isp.un
5.2 Регистрация действий сервисов
Задание:
выяснить, куда пишутся журнальные сообщения от сервисов
научиться отправлять журнальные сообщения из командной строки
# cat /etc/ssh/sshd_config
...
LogLevel...
...
Вопросы
Почему вместо rc.local стали применять системы инициализации/загрузки?
Что делает команда init n ?
Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG?
Как включить/отключить автоматический запуск сервиса?
Какова причина наличия типа сообщения в системах syslog?
Что нужно сделать, что бы получать больше отладочной информации о работе сервиса?
Модуль 6 (9). Управление файловыми системами
Теория
Лабораторные работы
6.1 Анализ конфигурации дисковой подсистемы
Задание:
Проанализировать конфигурацию дисковой подсистемы
Смонтировать привод CDROM
6.2 Подключение новых дисков к системе
Задание:
Подключить дополнительный жесткий диск к системе
Определить наличие новых дисков в системе
Создать файловую систему на новом диске и примонтировать к каталогу /disk2
Задание для преподавателя:
-
Добавить 2-й диск, изменив номер первого в системе
Продемонстрировать загрузку в одно пользовательском режиме для исправления fstab
Продемонстрировать использование UUID дисков
В Linux LVM расширить логический том корневого раздела за счет нового диска
В FreeBSD ZFS добавить раздел RAID1
Вопросы
Какие команды используются для монтирования/размонтирования устройств?
Почему следует монтировать устройства в пустые каталоги?
Что может помешать размонтированию устройств?
В чем преимущество использования таблицы разделов GPT по сравнению с MBR?
Какая файловая система самая лучшая?
В чем преимущество использования UUID разделов вместо имен устройств?
В чем преимущество использования LVM и ZFS по сравнению с классической схемой использования дисков?
В каком файле конфигурации определяются монтируемые при загрузке файловые системы?
Модуль 7 (10). Резервное копирование и восстановление
Теория
Success Story
Лабораторные работы
7.1 Знакомство с командой tar
7.2 Создание архива на удаленной системе
Задание: предоставить пользователю userX возможность архивного копирования каталога /etc/ на backup сервер по протоколу ssh
7.3 Периодическое выполнение задач архивирования
Задание для преподавателя: написать сценарий для периодического копирования каталога /etc/ на backup сервер по протоколу ssh
Вопросы
Что обозначают ключи “c”, “t”, “x”, “z”, “f” в команде tar
Что нужно для использования ssh подключений в сценариях выполняемых периодически?
Как лучше оформить сценарии, выполняющиеся раз в минуту, час, день, неделю, месяц?
Как запрограммировать одноразовый запуск сценария в определенное время?
Модуль 8 (11). Анализ производительности и оптимизация системы
Теория
Лабораторные работы
8.1 Анализ производительности системы
# sysbench --help
# sysbench --test=cpu run
8.2 Стресс тестирование и выявление нагрузки на CPU
$ stress -c 6 -t 60s
$ top
$ ps ax -o pcpu,pid,user,command --sort pcpu
$ uptime
linux$ cat /proc/loadavg
8.3 Стресс тестирование и выявление нагрузки на RAM
$ stress -m 2 --vm-bytes 256M -t 60s
$ ps ax -o vsize,pid,user,command --sort vsize
8.4 Стресс тестирование и выявление нагрузки на HDD
$ stress -d 2 --hdd-bytes 2GB
$ while true; do head -c 1G </dev/urandom >myfile;done
$ while true; do grep -r `openssl rand -base64 12` /usr /var; done
linux# iotop
linux# iostat
freebsd$ top -m io -o total
8.5 Тестирование производительности и выявление нагрузки на сеть
# trafshow -n
linux# nethogs
linux# ss -pan4 | grep 5001
freebsd# sockstat -4 | grep 5001
8.6 Оптимизация производительности или ее тестирование на реальной задаче
Вопросы
Перечислите основные ресурсы системы.
Перечислите команды, позволяющие найти критический ресурс.
Модуль 9 (12). Использование Linux/FreeBSD в качестве рабочей станции пользователя
Теория
Лабораторные работы
9.1 Текстовый интерфейс
Задание: настроить текстовый интерфейс пользователя
!!! RAM не менее 1Gb
linux# apt install gpm
freebsd# service moused onestart
Для демонстрации, запустить процесс процесс установки
GUI
-
9.2 Графический интерфейс пользователя
Задание: настроить графический интерфейс пользователя
Задание для преподавателя: за время установки GUI у слушателей продемонстрировать:
Вопросы
Как запустить долговременный интерактивный процесс на удаленной системе, что бы можно было отключиться до его окончания?
Что определяет язык интерфейса пользователя в UNIX?
Назовите основные компоненты системы XWindow
Что общего между getty, sshd и xdm?