администрирование_операционных_систем_unix

Table of Contents

Администрирование операционных систем UNIX

Программа курса

Модуль 0. Подготовка стенда в классе.

  • Узнать свой номер стенда
  • Удалить виртуалки
  • Удалить профили putty
  • Отключить не используемые адаптеры
  • Записать логин пароль и IP (сообщить преподавателю) рабочей станции
  • Проверить наличие дистрибутивов и образов

Модуль 1 (4). Выбор дистрибутива, установка и анализ системы

Теория

Выбор дистрибутива

Оборудование

Системное ПО

Прикладное ПО

Лабораторные работы

1.1 Загрузка актуального дистрибутива

Задание: выяснить какие бывают, способы загрузки и варианты установки дистрибутивов

1.2 Установка системы

Задание:

  1. установить систему, не менять значения по умолчанию в процессе инсталляции
  2. добавить пользователя student/password
  3. в linux установить sshd

Задание для преподавателя:

  1. установить CentOS
  2. установить Ubuntu18 (netplan)

Задание на дом:

1.3 Анализ оборудования системы

Задание: найти информацию о процессоре, памяти, дисках и сетевых платах

1.4 Анализ ядра, модулей и дистрибутива

Задания:

  1. выяснить версию ядра
  2. выяснить, какие модули ядра загружены (например, для оборудования)
  3. выяснить дистрибутив (для linux)

1.5 Анализ процессов в системе

Задание: выяснить, запущен ли сервис sshd

1.6 Управление загрузчиком системы

Задание для преподавателя:

  1. восстановить забытый пароль (альтернативно можно показать ​исправление fstab в модуле про ФС, или, загрузка в однпользовательском режиме для переноса /var на другой диск)

Вопросы

  1. Что общего и в чем разница между Linux и UNIX?
  2. Что такое Source-based, Binary based, Rolling release, LTS дистрибутивы?
  3. Назовите этапы загрузки системы
  4. Какие команды позволят определить аппаратные ресурсы системы?
  5. Какие команды помогут определить версию ядра и дистрибутив системы?
  6. Для чего нужны модули ядра?
  7. Для чего служат переменные ядра?

Модуль 2 (5). Настройка и тестирование сети

Теория

Лабораторные работы

См. /*

2.0 Настроить маршрут с рабочей станции в сеть стендов

C:\>route -p add 172.16.1.0 mask 255.255.255.0 10.N.M.252

*/ примечание, если не в комплексе Радио

2.1 Команды для настройки сети

Задание:

  1. выяснить состояние сетевых интерфейсов в системе, назначить им ip/mask/gate
  2. выяснить состояние переменных ядра отвечающих за forwarding ip пакетов и базовое значение ttl

2.2 Команды для диагностики сети

Задание: используя настроенную сетевую подсистему ядра проверить ее функционирование и подключиться к системе по протоколу ssh

2.3 Файлы конфигурации сети

Задание: отредактировать файлы конфигурации сети используя любой тестовый редактор, перезагрузить систему проверить работу сети после перезагрузки системы.

2.4 Дополнительные утилиты для тестирования сети

Задание: посмотреть какой порт “слушает” сервис ssh

Задание: посмотреть содержимое трафика ssh командой tcpdump

Задание: проверить работу клиента DNS

Вопросы

  1. Какие команды используются для управления/диагностики сетевых параметров системы?
  2. Какие команды используются для тестирования настроек DNS?
  3. Какие команды используются для анализа открытых сетевых портов системы?
  4. Что общего между файлами /etc/resolv.conf и /etc/hosts?
  5. Какие варианты управления файлом /etc/resolv.conf могут быть?

Модуль 3 (6). Система безопасности UNIX

Теория

Лабораторные работы

3.1 Управление пользователями в системе

Задание:

  1. выяснить, какие учетные записи присутствуют в системе
  2. какие из них можно использовать для подключения по ssh
  3. создать пользователя userX, указав его ФИО, shell и пароль

3.2 Управление правами пользователей в системе

Задание: познакомиться с утилитами umask, chmod, chown

Задание: назначить userX администратором системы, а затем, лишить его этих полномочий.

Задание: отключить текущую сессию бывшего администратора (можно в теме управления сервисами)

Вопросы

  1. В каком виде хранится пароль пользователя в системной базе данных ?
  2. Для чего предназначены команды umask, chmod, chown?
  3. Что определяет маска 640 или
    -rw-r-----

    для файла?

  4. Что обозначает бит “x” для файла и каталога
  5. Что обозначает значение атрибута EUID=0 для процесса?
  6. Что обозначает бит “s” для файла, содержащего программу?
  7. Для чего предназначены команды 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 Установка ПО из скомпилированных пакетов

4.5 Обновление ПО внутри релиза

Задание: установить необходимые обновления в системе

4.6 Обновление системы до актуального релиза

Вопросы

  1. Какие недостатки установки ПО “вручную” из исходных текстов?
  2. Какие достоинства и недостатки установки ПО из Gentoo portage или FreeBSD ports?
  3. Какие команды используются для установки пакетов в Debian, CentOS и FreeBSD?
  4. Какие команды используются для работы с репозиториями ПО Debian, CentOS и FreeBSD?
  5. В чем опасность использования сторонних репозиториев с ПО?
  6. Какие проблемы могут возникнуть при обновлении системы до следующего релиза?

Модуль 5 (8). Управление сервисами

Теория

Управление запуском ПО

Управление сообщениями сервисов

Лабораторные работы

5.1 Управление запуском сервисов

Задание:

  1. с помощью сигналов отключить пользователя userX
  2. включить/выключить сервис clamav из автозагрузки
  3. добавить в автозагрузку свой собственный сервис
# ssh-keygen

# ssh-copy-id userX@gate.isp.un

5.2 Регистрация действий сервисов

Задание:

  1. выяснить, куда пишутся журнальные сообщения от сервисов
  2. научиться отправлять журнальные сообщения из командной строки
# cat /etc/ssh/sshd_config
...
LogLevel...
...

Вопросы

  1. Почему вместо rc.local стали применять системы инициализации/загрузки?
  2. Что делает команда init n ?
  3. Какие команды используются для вывода списков управляемых сервисов в системах инициализации SystemV, OpenRC, Systemd, rcNG?
  4. Как включить/отключить автоматический запуск сервиса?
  5. Какова причина наличия типа сообщения в системах syslog?
  6. Что нужно сделать, что бы получать больше отладочной информации о работе сервиса?

Модуль 6 (9). Управление файловыми системами

Теория

Лабораторные работы

6.1 Анализ конфигурации дисковой подсистемы

Задание:

  1. Проанализировать конфигурацию дисковой подсистемы
  2. Смонтировать привод CDROM

6.2 Подключение новых дисков к системе

Задание:

  1. Подключить дополнительный жесткий диск к системе
  2. Определить наличие новых дисков в системе
  3. Создать файловую систему на новом диске и примонтировать к каталогу /disk2

Задание для преподавателя:

  1. С помощью линка и Пакет RSYNC перенести на второй диск каталог /var/ или /home/ Использование загрузчика GRUB
  2. Добавить 2-й диск, изменив номер первого в системе
  3. Продемонстрировать загрузку в одно пользовательском режиме для исправления fstab
  4. Продемонстрировать использование UUID дисков
  5. В Linux LVM расширить логический том корневого раздела за счет нового диска
  6. В FreeBSD ZFS добавить раздел RAID1

Вопросы

  1. Какие команды используются для монтирования/размонтирования устройств?
  2. Почему следует монтировать устройства в пустые каталоги?
  3. Что может помешать размонтированию устройств?
  4. В чем преимущество использования таблицы разделов GPT по сравнению с MBR?
  5. Какая файловая система самая лучшая?
  6. В чем преимущество использования UUID разделов вместо имен устройств?
  7. В чем преимущество использования LVM и ZFS по сравнению с классической схемой использования дисков?
  8. В каком файле конфигурации определяются монтируемые при загрузке файловые системы?

Модуль 7 (10). Резервное копирование и восстановление

Теория

Success Story

Лабораторные работы

7.1 Знакомство с командой tar

7.2 Создание архива на удаленной системе

Задание: предоставить пользователю userX возможность архивного копирования каталога /etc/ на backup сервер по протоколу ssh

7.3 Периодическое выполнение задач архивирования

Вопросы

  1. Что обозначают ключи “c”, “t”, “x”, “z”, “f” в команде tar
  2. Что нужно для использования ssh подключений в сценариях выполняемых периодически?
  3. Как лучше оформить сценарии, выполняющиеся раз в минуту, час, день, неделю, месяц?
  4. Как запрограммировать одноразовый запуск сценария в определенное время?

Модуль 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 Оптимизация производительности или ее тестирование на реальной задаче

Вопросы

  1. Перечислите основные ресурсы системы.
  2. Перечислите команды, позволяющие найти критический ресурс.

Модуль 9 (12). Использование Linux/FreeBSD в качестве рабочей станции пользователя

Теория

Лабораторные работы

9.1 Текстовый интерфейс

Задание: настроить текстовый интерфейс пользователя

!!! RAM не менее 1Gb

linux# apt install gpm

freebsd# service moused onestart

9.2 Графический интерфейс пользователя

Задание: настроить графический интерфейс пользователя

Задание для преподавателя: за время установки GUI у слушателей продемонстрировать:

Вопросы

  1. Как запустить долговременный интерактивный процесс на удаленной системе, что бы можно было отключиться до его окончания?
  2. Что определяет язык интерфейса пользователя в UNIX?
  3. Назовите основные компоненты системы XWindow
  4. Что общего между getty, sshd и xdm?
администрирование_операционных_систем_unix.txt · Last modified: 2020/06/23 18:41 by val