Базовое администрирование Linux

Весна 2020

Цель курса — курс направлен на приобретение студентами навыков работы в среде linux на уровнях базового администрирования и оценки работоспособности системы. Эти знания должны помочь начинающим разработчикам проще находить и решать проблемы разработки веб-приложений совместно с администраторами их эксплуатирующими, либо стать основой для развития администратора.

Описание
Курс предназначен для студентов со знаниями linux от нулевых до продвинутых. Для тех, кто впервые знакомится с linux, в ходе курса будут рассмотрены основные вопросы, возникающие при переходе с windows на linux; также будут разбираться типовые задачи, которые регулярно решаются при эксплуатации linux-систем, и вопросы, с которыми приходится сталкиваться при строительстве web-приложений и админиcтрировании платформы для них…
Подробнее
Чему научитесь
После прохождения курса студенты получат знания о том, как устанавливать, настраивать и использовать linux в работе, так же получат знания об администрировании linux-систем и приложений, используемых для создания веб-сервисов, управления пользователями и организации доступа к сети.
Подробнее

Преподаватели

Сергей Шаленко Сергей Шаленко

Программа

занятие Часы в ауд. + сам. работа

Лекция №1: Лекция 1. Знакомство. Введение в Linux  
+ ДЗ №1

Знакомство
Знакомство с профессией и рассказ о примерах реального применения навыков о которых пойдет речь в курсе
Устройство Linux (kernel, описание дерева каталогов)
Установка Linux в виртуалбокс
Этапы запуска Linux (BIOS/UEFI > mbr/gpt > grub > kernel > initramfs > init)
Что такое программы в Linux
Начало работы с Linux (man, apropos, —help -h, touch, cd, cat, ls, vim)
 
Домашнее задание №1: ДЗ №1
В VirtualBox собственноручно установить Ubuntu Server 18.0.4 LTS
Просмотреть маны всех утилит которые мы прошли на лекции 1 (посмотреть какие есть возможности у этих утилит, так как во многих утилитах возможности повторяются и возможно занимают даже место под тем же ключем)
Пройти vimtutor (в консоли пишем vimtutor ru) и выполняем все что вам пишет обучающий помошник
Научится копировать и перемещать файлы в Linux
4 ак. ч. + 1 ак. ч. СР

Лекция №2: Лекция 2. Продолжаем знакомиться с Linux  
+ ДЗ №2

Перенаправления ввода/вывода. Stdin, stdout, stderr
Что такое пакеты и пакетный менеджер, краткое знакомство с apt/dpkg
Просмотр основных ресурсов сервера df, du, top, free, ethtool, dmidecode
Система прав chmod/chown/chattr. Дополнительные биты, такие как setuid
 
Домашнее задание №2: ДЗ №2
1. Подключить официальный репозиторий mysql
2. Установить mysql
3. Посмотреть из какие файлов состоит пакет mysql, найти его бинарь, файлы конфигурации, скрипты запуска
3. Поправить значение max_connections в mysql посредством vim
7. Повторить все пройденное и подготовится к семинарной работе
4 ак. ч.

Рубежный контроль №1: Рубежный контроль 1. Знакомство с системой  
+ ДЗ №3

Рубежный контроль по темам лекций 1-2.
Домашнее задание №3: Д3 №3
Все у кого ниже 25 баллов советую пересмотреть первые 2 лекции. Стоит обратить внимание на такие темы как:
- chmod/chown/setfacl/chattr/umask
- что такое inode и как посмотреть их количество в системе, где они располагаются и какая информация в них хранится
- повторить каждое значение в top
- этапы запуска linux
- ethtool/dmidecode
Именно в этих темах у студентов возникали проблемы.
4 ак. ч.

Лекция №3: Лекция 3. Работа с текстом. Введение в сети  
+ ДЗ №4

Парсинг nginx access.log посредством grep, sed, awk, sort, uniq
Краткое введение в простые регулярные выражения
Настройка сети в Linux (dhcp в netplan/interfaces). ip a, ifconfig, arp
Поднятие/выключение линков. Поднятие и убирание айпишников на интерфейсах.
Маршруты, ip r. Добавить/удалить маршрут.


 
Домашнее задание №4: ДЗ №3
Заменить в nginx access.log все «HTTP 200OK» на слово test123
Найти IP адрес который больше всего сделал запросов к nginx
Изучить табличку с регулярными выражениями которую я предоставлю во время лекции
Попробовать написать простую регулярку для выборки IP адресов из nginx access.log
Добавить в свою виртуалку второй интерфейс, повесить на него любой свободный статический IP из той же предположительно /24 сетки (посредством netplan). Настроить маршруты так, чтобы траффик к 8.8.8.8 ходил через второй интерфейс а основной через первый
Сделать маршрут персистентным (чтобы он добавлялся после рестарта сервера)
4 ак. ч.

Лекция №4: Лекция 4. Сети  
+ ДЗ №5

Что такое DNS и как он работает, типы записей.
l2. Ethernet и IP пакеты.
tcp/udp/icmp. Рассмотрение из чего состоят пакеты. Как устанавливается и закрывается tcp-соединение.
l3. Что такое протоколы динамической маршрутизации (rip, bgp, ospf).
Поднятие l3 IP адреса на lo. Настройка анонса этих адресов средствами bird. Рассмотрение анонсов наглядно в tcpdump.
Как работает интернет, что такое AS.
Межсетевой экран iptables и для чего нужен ipset.
Домашнее задание №5: ДЗ № 4
Заблокировать в своей виртуалке весь траффик. Открыть траффик на 80/443 порты на диапазон из 100 адресов
Настроить персистентное хранение правил iptables
Разобраться в синтаксисе bird конфига, который мы создадим на лекции
Посредством bird заанонсить у себя IP, поднять IP на lo интерфейсе и проверить что он стал доступен с соседней машины. Посмотреть возможности утилиты birdc.
Подготовиться к рубежному контролю по последним двум лекциям.
4 ак. ч. + 1 ак. ч. СР

Рубежный контроль №2: Рубежный контроль 2. Работа с текстом. Сети  
+ ДЗ №6

Рубежный контроль по темам лекций 3-4.
Домашнее задание №6: ДЗ № 5
Установка нужного софта для работы wordpress (включая модули php-fpm)
Установка wordpress
Попробовать переименовать своего пользователя посредством UPDATE запроса в mysql
Настроить cron на бэкап MYSQL
4 ак. ч. + 1 ак. ч. СР

Лекция №5: Лекция 5. Дебаг в Линукс  
+ ДЗ №7

Анализ логов в Linux
oom killer
dmesg
traceroute (не только показажу а и расскажу принцип работы), mtr
tcpdump (Показ tcp-handshake к mail.ru на примере в tcpdump, DNS запросы в tcpdump и тд)
strace
ltrace
ldd
lsof
ss/netstat
iotop/iostat
iftop/ifstat
 
Домашнее задание №7: ДЗ № 5
Запустить tcpdump и посмотреть наглядно траффик, который будет бегать при: telnet mail.ru 443
Попробовать отфильтровать вывод с помощью фильтров tcpdump
Запустить 'ls -la' через strace и посмотреть ман каждого системного вызова который встречается в выводе, попробовать понять весь объем действий которые производятся до того как мы увидим stdout программы
4 ак. ч.

Лекция №6: Лекция 6. Создание интернет магазина  
+ ДЗ №8

Скачивание посредством wget/curl CMS opencart
Установка nginx
Установка php-fpm
Простейшая настройка nginx (2 локейшена - один в php, второй на статику)
Простейшая настройка php-fpm
Установка Mysql
Загрузка на сервер CMS (scp/rsync)
Установка opencart
Знакомство c mysql клиентом
Просмотр структуры базы данных opencart
Простые SQL запросы в таблицы opencart
Создание дампа mysqldump, восстановление из дампа. Cron
Домашнее задание №8: ДЗ № 6
Для закрепления материала настроить nginx+php-fpm+mysql у себя на виртуалке.
Из консоли установить CMS wordpress.
Подготовиться к контрольной работе по всем предыдущим лекциям.
4 ак. ч. + 1 ак. ч. СР

Контрольное занятие №1: Контрольное занятие. Базовое администрирование Linux  

Контрольное занятие по темам всех лекций курса.
4 ак. ч. + 3 ак. ч. СР

Контрольное занятие №2: Контрольное занятие. Базовое администрирование Linux  

Контрольное занятие по темам всех лекций курса.
4 ак. ч.

РАСПИСАНИЕ

Полное расписание