This shows you the differences between two versions of the page.
|
обеспечение_безопасности_linux_решений_2025 [2026/07/21 12:02] val created |
обеспечение_безопасности_linux_решений_2025 [2026/07/21 12:04] (current) val |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Обеспечение безопасности Linux решений 2025 ====== | ====== Обеспечение безопасности Linux решений 2025 ====== | ||
| + | |||
| + | ===== Программа курса ===== | ||
| + | |||
| + | * [[http://www.specialist.ru/course/yunbez|Linux. Уровень 3. Обеспечение безопасности систем, сервисов и сетей]] | ||
| + | |||
| + | ===== Модуль 0. Подготовка стенда в классе ===== | ||
| + | |||
| + | * Узнать свой номер стенда | ||
| + | * Удалить виртуалки | ||
| + | * Удалить профили putty | ||
| + | * Включить адаптер VirtualBox Host-Only Ethernet Adapter | ||
| + | * Записать логин пароль и IP WAN интерфейса (сообщить преподавателю) от рабочей станции | ||
| + | * Проверить наличие дистрибутивов и образов | ||
| + | |||
| + | ===== Модуль 1. Развертывание сети и сервисов предприятия ===== | ||
| + | |||
| + | ==== Теория ==== | ||
| + | |||
| + | * [[http://ru.wikipedia.org/wiki/Информационная_безопасность|Информационная безопасность]] | ||
| + | * [[http://en.wikipedia.org/wiki/STRIDE_(security)|STRIDE is a system developed by Microsoft for thinking about computer security threats]] | ||
| + | * [[http://ru.wikipedia.org/wiki/DMZ_(компьютерные_сети)|Demilitarized Zone — демилитаризованная зона, ДМЗ]] | ||
| + | |||
| + | ==== Лабораторные работы ==== | ||
| + | |||
| + | Сценарий: 172.16.1.0/24 - WAN сеть, 192.168.X/24 - "белая" DMZ сеть, 192.168.100+X - "серая" LAN сеть | ||
| + | |||
| + | |||
| + | ==== 1.1 Настройка систем gate, lan и server ==== | ||
| + | |||
| + | <code> | ||
| + | Запустите с правами Administrator | ||
| + | |||
| + | C:\cmder\cmder.exe | ||
| + | |||
| + | bash | ||
| + | |||
| + | cd | ||
| + | |||
| + | test -d conf && rm -r conf | ||
| + | |||
| + | git clone http://val.bmstu.ru/unix/conf.git | ||
| + | |||
| + | cd conf/virtualbox/ | ||
| + | |||
| + | !!! 3 - это номер курса, вместо X укажите Ваш номер стенда, если не знаете его, спросите преподавателя !!! | ||
| + | |||
| + | ./setup.sh X 3 | ||
| + | </code> | ||
| + | |||
| + | **Клонируем server в lan** | ||
| + | |||
| + | === Настраиваем gate === | ||
| + | |||
| + | * Адаптер 1 - Внутренняя сеть (eth0) - DMZ | ||
| + | * Адаптер 2 - Сетевой мост (eth1) - WAN (уже подключен) | ||
| + | * Адаптер 3 - Виртуальный адаптер хоста (eth2) - LAN | ||
| + | |||
| + | <code> | ||
| + | gate# ifconfig eth2 inet 192.168.100+X.1/24 | ||
| + | </code> | ||
| + | |||
| + | * Создаем в Putty профиль gate и подключаемся | ||
| + | |||
| + | <code> | ||
| + | gate# sh net_gate.sh | ||
| + | |||
| + | gate# cat /etc/network/interfaces | ||
| + | </code><code> | ||
| + | ... | ||
| + | auto eth2 | ||
| + | iface eth2 inet static | ||
| + | address 192.168.100+X.1 | ||
| + | netmask 255.255.255.0 | ||
| + | </code><code> | ||
| + | gate# init 6 | ||
| + | </code><code> | ||
| + | gate# apt update | ||
| + | </code> | ||
| + | |||
| + | === Настраиваем lan === | ||
| + | |||
| + | * Адаптер 1 - Виртуальный адаптер хоста (eth0) - LAN (уже подключен) | ||
| + | |||
| + | <code> | ||
| + | lan# ifconfig eth0 inet 192.168.100+X.10/24 | ||
| + | </code> | ||
| + | |||
| + | * Создаем в Putty профиль lan и подключаемся | ||
| + | |||
| + | <code> | ||
| + | lan# sh net_server.sh | ||
| + | |||
| + | lan# hostnamectl set-hostname lan.corpX.un | ||
| + | |||
| + | lan# cat /etc/network/interfaces | ||
| + | </code><code> | ||
| + | auto lo | ||
| + | iface lo inet loopback | ||
| + | |||
| + | auto eth0 | ||
| + | iface eth0 inet static | ||
| + | address 192.168.100+X.10 | ||
| + | netmask 255.255.255.0 | ||
| + | gateway 192.168.100+X.1 | ||
| + | </code><code> | ||
| + | lan# init 6 | ||
| + | </code> | ||
| + | |||
| + | === Настраиваем server === | ||
| + | |||
| + | * Адаптер 1 - Внутренняя сеть (eth0) - DMZ | ||
| + | |||
| + | <code> | ||
| + | server# sh net_server.sh | ||
| + | |||
| + | server# init 6 | ||
| + | </code> | ||
| + | |||
| + | * Создаем в Putty профиль server и подключаемся | ||
| + | ==== 1.2 Подключение сети предприятия к Internet ==== | ||
| + | |||
| + | * Настраиваем на gate доступ в Internet из сети LAN с использованием Сервис NAT [[Сервис NAT#nftables]] | ||
| + | * Тестируем | ||
| + | <code> | ||
| + | lan# apt update | ||
| + | </code> | ||
| + | |||
| + | ==== 1.3 План размещения сервисов в сети предприятия ==== | ||
| + | |||
| + | === Сервис DNS === | ||
| + | |||
| + | <code> | ||
| + | server# sh conf/dns.sh | ||
| + | |||
| + | lan# cat /etc/resolv.conf | ||
| + | </code><code> | ||
| + | search corpX.un | ||
| + | nameserver 192.168.X.10 | ||
| + | </code> | ||
| + | * Копируем ключи ssh с системы lan на gate и server ([[Сервис SSH#Аутентификация с использованием ключей ssh]]) | ||
| + | <code> | ||
| + | lan# ssh-copy-id server | ||
| + | lan# ssh-copy-id gate | ||
| + | |||
| + | lan# | ||
| + | scp /etc/resolv.conf server:/etc/ | ||
| + | scp /etc/resolv.conf gate:/etc/ | ||
| + | </code> | ||
| + | === Сервис EMAIL === | ||
| + | |||
| + | Будет развернут на системе server | ||
| + | |||
| + | === Сервис DHCP === | ||
| + | |||
| + | Разворачиваем на системе gate в сети LAN | ||
| + | |||
| + | * Сервис DHCP [[Сервис DHCP#isc-kea]] | ||
| + | * Импорт и запуск системы linux client1 ([[Инсталяция системы в конфигурации Desktop]], демонстрирует преподаватель) | ||
| + | * Импорт и запуск системы windows client2 | ||
| + | |||
| + | === Сервис CIFS === | ||
| + | |||
| + | Будет развернут на системе lan | ||
| + | |||
| + | === Сервис HTTP === | ||
| + | |||
| + | Сценарий: внешний корпоративный сайт на server | ||
| + | |||
| + | * [[Средства программирования shell#Web сервер на shell]] | ||
| + | * [[Сервис INETD]] | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin3/lin3_mod1_pract.mp4|Запись практикума]] (длительность: 33 минуты) | ||
| + | |||
| + | ===== Модуль 2. Анализ информационных систем предприятия с точки зрения безопасности ===== | ||
| + | |||
| + | ==== Теория ==== | ||
| + | |||
| + | * [[https://ru.wikipedia.org/wiki/%D0%90%D1%83%D0%B4%D0%B8%D1%82_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9_%D0%B1%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D0%B8|Аудит информационной безопасности]] | ||
| + | * [[https://ru.wikipedia.org/wiki/%D0%A5%D0%BE%D1%81%D1%82%D0%BE%D0%B2%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D1%82%D0%BE%D1%80%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9|Хостовая система обнаружения вторжений]] | ||
| + | * [[https://ru.wikipedia.org/wiki/Nmap|Nmap]] | ||
| + | * [[https://www.kali.org/|Kali Linux - Advanced Penetration Testing Linux Distribution]] | ||
| + | * [[https://ru.wikipedia.org/wiki/OpenVAS|OpenVAS]] | ||
| + | |||
| + | * [[https://youtu.be/zjzdqqk7xmo|Видео урок: Аудит системных событий в Linux/FreeBSD]] | ||
| + | |||
| + | * [[https://www.specialist.ru/course/ceh|Этичный хакинг. Техники атак и инструменты противодействия]] | ||
| + | ==== Лабораторные работы ==== | ||
| + | |||
| + | ==== 2.1 Внешний аудит систем ==== | ||
| + | |||
| + | Сценарий (практикум): [[Утилита nmap#Поиск web серверов в сети]] и [[Утилита nmap#Определение версии системы]] server (с gate.isp.un по ip адресу) | ||
| + | |||
| + | * [[Утилита nmap]] | ||
| + | |||
| + | Сценарий: автоматизированный поиск уязвимостей, находим "directory traversal" | ||
| + | |||
| + | * [[Сервис OpenVAS]] | ||
| + | * По окончании эксперимента остановить лишние экземпляры **pkill webd** или перезапустить server | ||
| + | |||
| + | Сценарий (практикум): эксплуатируем найденную уязвимость "directory traversal" | ||
| + | |||
| + | * [[Управление учетными записями в Linux#Создание тестового набора учетных записей]] на server | ||
| + | |||
| + | <code> | ||
| + | lan# curl --path-as-is http://server/../../../etc/passwd | ||
| + | |||
| + | gate.isp.un$ fetch -o - http://192.168.X.10/../../../etc/passwd | ||
| + | |||
| + | gate.isp.un$ telnet 192.168.X.10 80 | ||
| + | </code><code> | ||
| + | GET /../../../etc/passwd HTTP/1.1 | ||
| + | </code> | ||
| + | |||
| + | |||
| + | Сценарий (практикум): Brute force-атака по известным login | ||
| + | |||
| + | * [[Утилита hydra]] (можно с любой свободной системы) | ||
| + | ==== 2.2 Внутренний аудит систем ==== | ||
| + | |||
| + | === Проверка стойкости паролей === | ||
| + | |||
| + | Сценарий (практикум): загружаем через уязвимый сервис файл shadow и подбираем пароли | ||
| + | |||
| + | <code> | ||
| + | curl --path-as-is http://192.168.X.10/../../../etc/shadow | tee shadow | ||
| + | </code> | ||
| + | |||
| + | * [[http://www.openwall.com/john/|John the Ripper password cracker]] | ||
| + | * [[Утилита john]] (можно на любой свободной системе) | ||
| + | |||
| + | === Проверка целостности системы === | ||
| + | |||
| + | Сценарий: находим модифицированное ПО (можно изменить код web сервера) | ||
| + | |||
| + | * [[Утилита tripwire]] ([[https://youtu.be/FR_5am9__Ug|Видео Урок: Tripware - мониторинг и предупреждения об изменениях файлов в системе]]) | ||
| + | * [[Утилита aide]] | ||
| + | |||
| + | === Проверка системы на наличие закладок === | ||
| + | |||
| + | * [[https://en.wikipedia.org/wiki/Xor_DDoS|XOR DDoS is a Linux Trojan malware]] | ||
| + | * Загружаем на server | ||
| + | <code> | ||
| + | server# cd / | ||
| + | |||
| + | server# wget http://gate.isp.un/unix/xor_ddos_linux_trojan.tgz | ||
| + | |||
| + | server# tar -xvzf xor_ddos_linux_trojan.tgz | ||
| + | </code> | ||
| + | |||
| + | * [[Утилита rkhunter]] | ||
| + | * [[Утилита chkrootkit]] | ||
| + | |||
| + | * [[Сервис OSSEC]] | ||
| + | |||
| + | === Аудит системных событий === | ||
| + | |||
| + | Сценарий (практикум): фиксируем обращения к файлам базы данных учетных записей со стороны процессов с EUID=user1. Можно тестировать из shell или запустить www сервер на server с правами user1 | ||
| + | |||
| + | * [[Система Linux Auditing]] | ||
| + | * [[https://youtu.be/zjzdqqk7xmo|Видео урок: Аудит системных событий в Linux/FreeBSD]] | ||
| + | |||
| + | * Можно добавить [[Регистрация событий в Linux#Сервис rsyslog]] и [[Регистрация событий в Linux#Регистрация сообщений, переданных по сети]] | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin3/lin3_mod2_pract.mp4|Запись практикума]] (длительность: 15 минут) | ||
| + | |||
| + | ===== Модуль 3. Защита систем предприятия ===== | ||
| + | |||
| + | ==== Теория ==== | ||
| + | |||
| + | * [[https://habrahabr.ru/company/xakep/blog/305262/|Гугл для хакера]] | ||
| + | * [[https://nvd.nist.gov/vuln/search|Computer Security Resource Center National Vulnerability Database]] Keyword Search: Apache 2.4.18 | ||
| + | * [[http://ru.wikipedia.org/wiki/Chroot|Вызов Chroot]] | ||
| + | * [[https://ru.wikipedia.org/wiki/Песочница_(безопасность)|Песочница безопасность]] | ||
| + | * [[http://ru.wikipedia.org/wiki/Переполнение_буфера|Переполнение буфера]] | ||
| + | * [[http://www.unixwiz.net/techtips/mirror/chroot-break.html|Выход из Chroot]] | ||
| + | * [[http://samag.ru/archive/article/341|GRSecurity]] | ||
| + | * [[https://wiki.gentoo.org/wiki/Hardened_Gentoo/ru|Hardened Gentoo]] | ||
| + | ==== Лабораторные работы ==== | ||
| + | |||
| + | ==== 3.1 Обновление систем ==== | ||
| + | |||
| + | * [[Управление ПО в Linux]] | ||
| + | |||
| + | |||
| + | ==== 3.2 Управление привилегиями ==== | ||
| + | |||
| + | === Система безопасности UNIX === | ||
| + | |||
| + | Сценарий: Запуск www сервера с правами пользователя user1 не позволит получить через него доступ к /etc/shadow | ||
| + | |||
| + | * [[Система безопасности UNIX]] | ||
| + | * [[Сервис INETD]] | ||
| + | |||
| + | === Списки контроля доступа === | ||
| + | |||
| + | Сценарий: с помощью POSIX ACL запрещаем пользователю user1 читать файл /etc/passwd | ||
| + | |||
| + | * [[POSIX ACL]] | ||
| + | |||
| + | === Расширенные атрибуты === | ||
| + | |||
| + | * [[POSIX capabilities]] | ||
| + | |||
| + | === Переменные ядра === | ||
| + | |||
| + | * [[Управление ядром и модулями в Linux#Переменные ядра]] | ||
| + | |||
| + | ==== 3.3 Изоляция сервисов ==== | ||
| + | |||
| + | === Модули Linux LSM === | ||
| + | |||
| + | Сценарий: ограничения, накладываемые политиками на www сервер на server не позволят получить через него доступ к любым файлам, кроме разрешенных даже в случае запуска его с правами **root** | ||
| + | |||
| + | * [[Модуль AppArmor]] | ||
| + | * [[Модуль AppArmor#Создание профиля "вручную"]] | ||
| + | * [[https://youtu.be/AaB5mL3SAlQ|Видео Урок: FreeBSD MAC and Linux AppArmor]] | ||
| + | |||
| + | |||
| + | * [[Модуль SELinux]] | ||
| + | |||
| + | |||
| + | === Изоляция сервисов в файловой системе === | ||
| + | |||
| + | Сценарий: запуск www сервера на server в chroot позволит получить через него доступ только к файлам, которые мы скопировали в chroot окружение | ||
| + | |||
| + | * [[Команда chroot]] | ||
| + | |||
| + | === Изоляция сервисов в выделенном окружении === | ||
| + | |||
| + | Сценарий (практикум): переносим www хостинг в контейнер | ||
| + | |||
| + | <code> | ||
| + | server# systemctl stop inetutils-inetd && systemctl disable inetutils-inetd | ||
| + | </code> | ||
| + | |||
| + | * [[Технология namespaces]] (обсудить) | ||
| + | * [[Технология cgroup]] (обсудить) | ||
| + | |||
| + | * [[Технология LXC]] | ||
| + | * [[Пакет RSYNC#Инкрементное копирование (Incremental Backup)]] (обсудить) | ||
| + | * [[Сервис HTTP#Установка и запуск сервера Apache]] на www | ||
| + | <code> | ||
| + | server# cat /etc/bind/corpX.un | ||
| + | </code><code> | ||
| + | ... | ||
| + | @ ... | ||
| + | ... | ||
| + | A 192.168.X.20 | ||
| + | MX 1 server | ||
| + | ... | ||
| + | www A 192.168.X.20 | ||
| + | </code><code> | ||
| + | server# service named restart | ||
| + | </code> | ||
| + | |||
| + | * [[Технология Docker#Установка]] Docker (на lan) | ||
| + | |||
| + | <code> | ||
| + | server# cat /etc/bind/corpX.un | ||
| + | </code><code> | ||
| + | ... | ||
| + | lan A 192.168.100+X.10 | ||
| + | </code><code> | ||
| + | server# service named restart | ||
| + | </code> | ||
| + | * [[Пакет RSYNC]] | ||
| + | <code> | ||
| + | lan# rsync -avz server:/var/www/ /var/www/ | ||
| + | </code> | ||
| + | |||
| + | * [[Технология Docker#Создание образа для приложения вручную]] (обсудить) | ||
| + | * [[Технология Docker#Создание образа для приложения с использованием Dockerfile]] | ||
| + | * [[Технология Docker#Запуск в режиме демона и подключение к контейнеру]] | ||
| + | * [[Технология Docker#Копирование образов]] (обсудить) | ||
| + | |||
| + | |||
| + | ==== 3.4 Усиление системы с помощью специальных средств ==== | ||
| + | |||
| + | * [[Linux Hardened]] | ||
| + | * [[https://youtu.be/-6aM7q27NbM|Видео урок: Использование GRSecurity]] | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin3/lin3_mod3_pract.mp4|Запись практикума]] (длительность: 24 минуты) | ||
| + | |||
| + | ===== Модуль 4. Защита сервисов предприятия ===== | ||
| + | |||
| + | ==== Теория ==== | ||
| + | |||
| + | * [[https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5|Шифрование]] | ||
| + | * [[https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%BC_%D0%BA%D0%BB%D1%8E%D1%87%D0%BE%D0%BC|Криптосистема с открытым ключом]] | ||
| + | *[[https://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BD%D1%82%D1%80_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%B8|Центр сертификации]] | ||
| + | * [[https://ru.wikipedia.org/wiki/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F|Аутентификация]] | ||
| + | * [[https://en.wikipedia.org/wiki/Privacy-enhanced_Electronic_Mail|Privacy-enhanced Electronic Mail]] | ||
| + | |||
| + | ==== Лабораторные работы ==== | ||
| + | |||
| + | ==== 4.1 Ограничения учетных записей пользователей сервисов ==== | ||
| + | |||
| + | Демонстрирует преподаватель | ||
| + | |||
| + | Сценарий: разворачиваем на server, MTA для домена corpX.un, IMAP без SSL. Учетные записи почтовых пользователей не должны иметь shell, предоставляющий доступ к командной строке | ||
| + | |||
| + | * [[Сервис MTA#Настройка MTA]] | ||
| + | * [[UA mail]] | ||
| + | * [[Сервер dovecot]] | ||
| + | <code> | ||
| + | server# apt install ansible | ||
| + | |||
| + | server# ansible-playbook conf/ansible/roles/mail.yml | ||
| + | </code> | ||
| + | |||
| + | * [[Управление учетными записями в Linux#Изменение атрибутов учетной записи]] shell в Linux | ||
| + | |||
| + | ==== 4.2 Скрытие баннеров сервисов ==== | ||
| + | |||
| + | Сценарий: заменяем банеры сервисов SMTP, IMAP, FTP, HTTP, CIFS, SSH | ||
| + | |||
| + | * Сервис SMTP ([[Сервис MTA#Сокрытие названия сервиса]]) | ||
| + | * Сервис IMAP ([[Сервер dovecot#Сокрытие названия сервиса]]) | ||
| + | * Сервис HTTP ([[Сервис HTTP#Сокрытие версии сервиса]]) | ||
| + | <code> | ||
| + | gate# curl -I http://www.corpX.un/ | ||
| + | </code> | ||
| + | |||
| + | * Сервис SSH ([[http://www.cyberciti.biz/faq/howto-ssh-server-hide-version-number-sshd_config/|OpenSSH Hide Version Number From Clients]]) | ||
| + | |||
| + | ==== 4.3 Замена устаревших сервисов ==== | ||
| + | |||
| + | Сценарий: перехват учетных данных при подключении пользователей по протоколу ftp для загрузки информации в каталог public_html на server и замена его на sftp | ||
| + | |||
| + | |||
| + | * Сервис HTTP [[Сервис HTTP#Использование домашних каталогов]] | ||
| + | * [[Сервис FTP#Сервер ftp]] (/usr/sbin/nologin в /etc/shells) | ||
| + | * [[Утилита ettercap]] и [[Утилиты для тестирования сети#tcpdump]] | ||
| + | * [[Сервис SSH#SSH вместо FTP (SFTP)]] | ||
| + | |||
| + | * Технология Docker [[Технология Docker#Микросервисы]] | ||
| + | ==== 4.4 Шифрование трафика ==== | ||
| + | |||
| + | === Подготовка стенда === | ||
| + | |||
| + | * [[Локализация системы#Локализация временной зоны]] | ||
| + | |||
| + | === Использование самоподписанных цифровых сертификатов === | ||
| + | |||
| + | Демонстрирует преподаватель | ||
| + | |||
| + | Сценарий: замена сервиса HTTP на HTTPS на www | ||
| + | |||
| + | * [[Пакет OpenSSL#Использование алгоритмов с открытым ключем]] (на примере обмена данными по ftp между student@lan и student@server) | ||
| + | * [[Пакет OpenSSL#Создание самоподписанного сертификата]] для системы www | ||
| + | * [[Сервис HTTP#Поддержка протокола HTTPS]] для системы www | ||
| + | |||
| + | === Использование PKI === | ||
| + | |||
| + | **Сценарий (практикум):** | ||
| + | |||
| + | - развертывание корпоративного CA (на lan) | ||
| + | - замена HTTP на HTTPS (на www) | ||
| + | - в client-ах добавляем сертификат CA в корневые центры сертификации | ||
| + | |||
| + | * [[Сервис HTTP#Установка и запуск сервера Apache]] на lan | ||
| + | <code> | ||
| + | lan# rm /var/www/html/index.html | ||
| + | </code> | ||
| + | * [[Пакет OpenSSL#Создание центра сертификации]] на lan | ||
| + | * [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] для www | ||
| + | * [[Сервис HTTP#Поддержка протокола HTTPS]] для www | ||
| + | |||
| + | * [[Материалы по Windows#Импорт сертификата]] центра сертификации в windows client (через http://lan.corpX.un/) | ||
| + | * [[Пакет OpenSSL#Импорт сертификата центра сертификации]] в linux client | ||
| + | |||
| + | **Дополнительные задания:** | ||
| + | |||
| + | - HTTPS доступ к приложению webd (можно использовать конфигурацию nginx для gowebd) через gate (см. доп. задание) | ||
| + | - замена IMAP на IMAPS (на server) | ||
| + | |||
| + | <code> | ||
| + | server# cat /etc/bind/corpX.un | ||
| + | </code><code> | ||
| + | ... | ||
| + | gowebd A 192.168.X.1 | ||
| + | </code><code> | ||
| + | server# service named restart | ||
| + | </code> | ||
| + | |||
| + | * [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] (можно wildcard) | ||
| + | <code> | ||
| + | lan# scp wild.key gate:gowebd.key; scp wild.crt gate:gowebd.crt | ||
| + | </code> | ||
| + | * Установка [[Сервис HTTP#NGINX]] на gate | ||
| + | * [[Сервис HTTP#HTTPS Прокси (пример 4)]] для HTTP приложения (webd или gowebd) | ||
| + | |||
| + | <code> | ||
| + | lan# scp wild.key server:server.key; scp wild.crt server:server.crt | ||
| + | </code> | ||
| + | * [[Сервер dovecot#Использование сертификатов для шифрования трафика]] dovecot IMAPS на server | ||
| + | * [[Пакет OpenSSL#Интерактивное подключение по ssl]] | ||
| + | * [[Протокол IMAP]] | ||
| + | |||
| + | **Дополнительные задания:** | ||
| + | |||
| + | * [[Letsencrypt Certbot]] | ||
| + | |||
| + | ==== 4.5 Аутентификация и Авторизация доступа к сервису ==== | ||
| + | |||
| + | * Курс про аутентификацию и авторизацию: [[Linux. Интеграция с корпоративными решениями Microsoft]] | ||
| + | * [[https://youtu.be/-fcJ8MkoLts|Видео урок: Использование одноразовых паролей OPIE]] или статья [[https://habr.com/ru/articles/713582/|Безопасное подключение с чужого компьютера]] | ||
| + | * [[https://youtu.be/kXi1KXYy-NE|Видео урок: SSH SSO]] | ||
| + | |||
| + | Задание: Настройка почтового сервера на отправку почты пользователям других почтовых доменов из почтовых клиентов на основании аутентификации | ||
| + | |||
| + | * [[Сервис MTA#Протокол SMTP]] | ||
| + | * [[Сервис MTA#Настройка MTA на релеинг почты на основе аутентификации]] postfix smtp ssl | ||
| + | * Установка [[Thunderbird]] и [[Thunderbird#Авто конфигурация клиента]] | ||
| + | |||
| + | **Задание (практикум):** использование пользовательских сертификатов | ||
| + | |||
| + | * [[Пакет OpenSSL#Создание пользовательского сертификата, подписанного CA]] | ||
| + | * [[Пакет OpenSSL#Оформление сертификата и ключа в формате PKS#12 с парольной защитой]] | ||
| + | |||
| + | * Рассылка сертификатов, ключей и файлов PKCS#12 владельцам по почте через [[UA mutt]] | ||
| + | * Публикация пользовательских сертификатов | ||
| + | |||
| + | <code> | ||
| + | lan.corpX.un:~# cp -v user*crt /var/www/html/ | ||
| + | </code> | ||
| + | |||
| + | * Вариант для курса (практикум) - используем файловый сервер: | ||
| + | * [[Файловый сервер SAMBA#Установка SAMBA]] на системе lan | ||
| + | * [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] | ||
| + | <code> | ||
| + | lan# cp -v user* /disk2/samba/ | ||
| + | |||
| + | lan# cp /var/www/html/ca* /disk2/samba/ | ||
| + | |||
| + | lan# chown -v games /disk2/samba/* | ||
| + | </code> | ||
| + | |||
| + | **Сценарий:** использование пользовательских сертификатов для PEM :) | ||
| + | |||
| + | * [[Thunderbird#Настройка на использование S/MIME]] Thunderbird (демонстрирует преподаватель) | ||
| + | |||
| + | **Сценарий:** использование пользовательских сертификатов для аутентификации и авторизации доступа к сайту www | ||
| + | |||
| + | * [[Сервис HTTP#Управление доступом к HTTP серверу на основе сертификатов]] | ||
| + | * [[Сервис HTTP#Использование директивы Redirect]] | ||
| + | * [[Сервис HTTP#CGI интерфейс сервера]] | ||
| + | <code> | ||
| + | lan# curl --cert user1.crt --key user1.key --cacert /var/www/html/ca.crt https://www.corpX.un/cgi-bin/test-cgi | ||
| + | </code> | ||
| + | |||
| + | |||
| + | ==== 4.6 Ограничение доступа к сетевым сервисам ==== | ||
| + | |||
| + | === Статичное, с использованием специальных средств === | ||
| + | |||
| + | Сценарий: разрешаем SSH подключение к www только из LAN | ||
| + | |||
| + | * [[Сервис Tcpwrap]] | ||
| + | |||
| + | === Статичное, с использованием средств встроенных в сервис === | ||
| + | |||
| + | * [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] | ||
| + | * [[Сервис DNS#Ограничение доступа к DNS серверу]] (обсудить) | ||
| + | * [[Сервис MTA#Настройка MTA на релеинг почты из LAN]] (обсудить) | ||
| + | * [[Сервис HTTP#Управление доступом к HTTP серверу на основе сетевых адресов]] (обсудить) | ||
| + | * [[Установка, настройка и запуск пакета SQUID]] (обсудить) | ||
| + | |||
| + | === Адаптивное, с использование специальных средств === | ||
| + | |||
| + | * [[Защита почты от вирусов и SPAMа]] (обсудить) | ||
| + | * Использование [[Сервис Clamav]] и [[Сервис Clamav#API ядра FANOTIFY]] для защиты файлового сервера на lan (что бы не отключать антивирус на windows, проверить через [[Подключение к файловым серверам CIFS из UNIX#linux проводник thunar]]) | ||
| + | |||
| + | ==== 4.7 Шифрование контента ==== | ||
| + | |||
| + | Сценарий: размещаем данные на шифрованном разделе для lan сервиса SAMBA (сетевой диск с двойным дном:) | ||
| + | |||
| + | * Добавляем диск к lan | ||
| + | * [[Управление файловыми системами в Linux#Использование шифрованных разделов в Linux]] | ||
| + | * Создать каталог и настроить права доступа для [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] | ||
| + | |||
| + | |||
| + | ==== 4.8 Специальные решения ==== | ||
| + | |||
| + | Сценарий: защита LAN от посторонних сервисов DHCP | ||
| + | |||
| + | * [[Оборудование уровня 2 Cisco Catalyst#DHCP snooping]] | ||
| + | * [[Сервис DHCP#Поиск посторонних DHCP серверов]] | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin3/lin3_mod4_pract.mp4|Запись практикума]] (длительность: 24 минуты) | ||
| + | |||
| + | ===== Модуль 5. Защита сети предприятия ===== | ||
| + | |||
| + | ==== Теория ==== | ||
| + | |||
| + | * [[https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B9_%D1%8D%D0%BA%D1%80%D0%B0%D0%BD|Межсетевой экран]] | ||
| + | * [[http://www.linux.org.ru/forum/security/1320671|еще один споcоб блокировать ssh bruteforce роботов]] | ||
| + | * [[https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1%D0%BD%D0%B0%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D1%82%D0%BE%D1%80%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9|Система обнаружения вторжений]] | ||
| + | * [[https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%BF%D1%80%D0%B5%D0%B4%D0%BE%D1%82%D0%B2%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D1%82%D0%BE%D1%80%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9|Система предотвращения вторжений]] | ||
| + | |||
| + | ==== Лабораторные работы ==== | ||
| + | |||
| + | ==== 5.1 Пакетные фильтры ==== | ||
| + | |||
| + | Сценарий: защита http сервиса на server от DDOS | ||
| + | |||
| + | * [[Сервис HTTP#Нагрузочное тестирование]] | ||
| + | * [[Сервис Firewall#Конфигурация для защиты от bruteforce]] | ||
| + | |||
| + | ==== 5.2 Системы IDS и IPS ==== | ||
| + | |||
| + | Сценарий: Honeypot на gate | ||
| + | |||
| + | * [[Сервис Portsentry]] | ||
| + | * [[https://youtu.be/6I0B3F179oE|Видео урок: Honeypot из tcpwrap и portsentry]] | ||
| + | |||
| + | Сценарий: блокируем атаки на SSH сервис на на server | ||
| + | |||
| + | * [[Сервис Fail2ban]] | ||
| + | * [[https://habr.com/ru/articles/813799/|DPI из подручных материалов]] (доп. задание для практикума) | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin3/lin3_mod5_pract.mp4|Запись практикума]] (длительность: 10 минут) | ||
| + | |||
| + | ===== Модуль 6. Использование VPN для соединения сетей филиалов предприятия и удаленных пользователей ===== | ||
| + | |||
| + | ==== Теория ==== | ||
| + | |||
| + | * [[http://ru.wikipedia.org/wiki/VPN|Virtual Private Network — виртуальная частная сеть]] | ||
| + | * [[https://ngrok.com/product|What is ngrok?]] | ||
| + | |||
| + | ==== Лабораторные работы ==== | ||
| + | |||
| + | ==== 6.1 Использование сервиса SSH ==== | ||
| + | |||
| + | === SSH вместо VPN (привязка к порту клиента) === | ||
| + | |||
| + | Сценарий: подключаемся с "домашнего" компьютера по RDP к компьютеру в LAN сети предприятия через "рабочую" linux систему, у которой есть доступ в LAN | ||
| + | |||
| + | Реализация: Отключаем на host системе VirtualBox Host-Only Network адаптер и, используя доступность сети LAN с server, осуществляем доступ по RDP к системе client1 через учетную запись user1 системы server | ||
| + | |||
| + | * [[Сервис SSH#SSH вместо VPN (привязка к порту клиента)]] | ||
| + | |||
| + | === SSH вместо VPN (привязка к порту сервера) === | ||
| + | |||
| + | Сценарий: подключаемся с "домашнего" компьютера по RDP или SSH к компьютеру в LAN сети предприятия, через "внешнюю" linux систему, к которой "заранее" установлено SSH соединение из LAN | ||
| + | |||
| + | Реализация: отключаем доступность сети LAN "отовсюду", считаем server - "внешним" ресурсом (например VPS), осуществляем доступ по RDP к client1 или SSH к lan через туннель в SSH соединении к server, установленном с client1 или lan | ||
| + | |||
| + | * Настройка Firewall ([[Сервис Firewall#Конфигурация для шлюза WAN - LAN - DMZ]]) | ||
| + | |||
| + | * [[Сервис SSH#SSH вместо VPN (привязка к порту сервера)]] | ||
| + | * [[https://habr.com/ru/post/709218/|TeamViewer из подручных материалов]] | ||
| + | * [[https://habr.com/ru/articles/732736/|GPO для Linux из подручных материалов]] (help.desktop) | ||
| + | |||
| + | ==== 6.2 Пакет OpenVPN ==== | ||
| + | |||
| + | Сценарий: требуется предоставить авторизованный доступ пользователей, работающих на __ноутбуках__ и ездящих в командировки, к любым сервисам в сети LAN компании, например - CIFS | ||
| + | |||
| + | * [[Пакет OpenSSL#Инициализация списка отозванных сертификатов]] | ||
| + | |||
| + | <code> | ||
| + | lan# ###scp /etc/ssl/openssl.cnf gate:/etc/ssl/ | ||
| + | |||
| + | lan# scp /var/www/html/ca.* gate: | ||
| + | </code> | ||
| + | |||
| + | * [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] для gate | ||
| + | * [[Пакет OpenVPN]] | ||
| + | * [[Пакет OpenVPN#Настройка client/server конфигурации]] | ||
| + | * [[Пакет OpenSSL#Отзыв сертификатов]] | ||
| + | |||
| + | * [[Управление учетными записями в Linux#Перемещение учетных записей]] | ||
| + | * [[Пакет OpenVPN#Использование PAM аутентификации]] (см. доп. задания) | ||
| + | |||
| + | Сценарий: требуется объединить сети филиалов (обсудить) | ||
| + | |||
| + | * [[Пакет OpenVPN]] | ||
| + | * [[Пакет OpenVPN#Настройка peer2peer конфигурации]] | ||
| + | |||
| + | ==== Практикум ==== | ||
| + | |||
| + | * [[https://val.bmstu.ru/~val/pract/lin3/lin3_mod6_pract.mp4|Запись практикума]] (длительность: 15 минут) | ||
| + | |||
| + | ===== Дополнительные материалы ===== | ||
| + | |||
| + | * Вебинар: [[2FA на предприятии]] (смотреть с 24-й минуты) | ||
| + | * Вебинар: [[PAM и Telegram]] (смотреть с 10-й минуты) | ||
| + | * Статья: [[https://habr.com/ru/articles/813799/|DPI из подручных материалов]] | ||
| + | * Вебинар: [[Протокол ACME|Все, что нужно знать про Let's Encrypt, от localhost до Kubernetes]] | ||
| + | * Вебинар: [[Использовать чужой IP адрес в сети|Могут ли использовать чужой IP адрес в сети, как это обнаружить и предотвратить]] | ||
| + | |||
| + | |||