This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
обеспечение_безопасности_linux_решений [2022/11/14 16:32] val [OPIE для подключения к "работе"] |
обеспечение_безопасности_linux_решений [2024/11/12 14:40] (current) val [3.3 Изоляция сервисов] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Обеспечение безопасности Linux решений ====== | ====== Обеспечение безопасности Linux решений ====== | ||
- | ===== План на 14.11.2022 ===== | ||
- | |||
- | ==== Подготовка стенда ==== | ||
- | |||
- | * Схема стенда | ||
- | * Развернуть все VM | ||
- | * ext ip на extgate (10.5.N.100+X) | ||
- | * named.conf forwarders на extgate | ||
- | * resolv.conf на extgate | ||
- | |||
- | ==== OPIE для подключения к "работе" ==== | ||
- | |||
- | * Ставим Chrome и MobaXterm (что бы настроить opie на работе) | ||
- | * [[Управление учетными записями в FreeBSD]] - cоздаем userX/passwordX | ||
- | * Включемем и тестируем [[Аутентификация с использованием OPIE]] | ||
- | * Включаем RDP (все, кто хочет:), пригодится в следующей лаборатороной) | ||
- | * Преподаватель переносит Win7 в DMZ (ip: 10.100.100.31) | ||
- | * Преподаватель демонмтрирует туннель -L (понадобилось остановить pf :) | ||
- | |||
- | ==== Подключение к своему оборудованию в чужой сети или к "работе" без разрешения:) ==== | ||
- | |||
- | * Преподаватель включает pf | ||
- | |||
- | * Изучаем туннель -R с параметрами 2000+X:localhost:22 подключаясь как userX к gate.isp.un | ||
- | * [[Управление сервисами в Linux#Управление юнитами Systemd]] | ||
- | |||
- | * Преподаватель возвращает Win7 в LAN | ||
- | * Изучаем туннель -R с параметрами 3000+X:localhost:3389 подключаясь как userX к gate.isp.un | ||
- | |||
- | ==== Корпоративный TeamViewer ==== | ||
- | |||
- | * Используются стенд преподавателя и одного из слушателей | ||
- | * Устанавливаем на Win7 [[Сервис VNC]] на обоих стендах | ||
- | * Разрешаем на extgate прохождение tcp трафика по всем портам на стенде слушателя | ||
- | * Разрешаем на intgate прохождение исходящего tcp трафика по всем портам на стенде слушателя | ||
- | * Преподаватель запускает VNCViewer в Listen mode | ||
- | * Преподаватель устанавливает -R туннель 0:localhost:5500 | ||
- | * Слушатель выполняет Attach Listener Viewer на gate.isp.un:NNNNN | ||
- | * Возвращаем исходные настройки пакетных фильтров на extgate и intgate слушателя | ||
===== Программа курса ===== | ===== Программа курса ===== | ||
- | * [[http://www.specialist.ru/course/yunbez|Linux (Ubuntu)/FreeBSD. Уровень 3. Обеспечение безопасности систем, сервисов и сетей]] | + | * [[http://www.specialist.ru/course/yunbez|Linux. Уровень 3. Обеспечение безопасности систем, сервисов и сетей]] |
===== Модуль 0. Подготовка стенда в классе ===== | ===== Модуль 0. Подготовка стенда в классе ===== | ||
Line 66: | Line 27: | ||
- | ==== 1.1 Настройка систем Gate и Сервер ==== | + | ==== 1.1 Настройка систем gate, lan и server ==== |
- | === gate === | + | <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 | * Адаптер 1 - Внутренняя сеть (eth0) - DMZ | ||
- | * Адаптер 2 - Сетевой мост (eth1) - WAN | + | * Адаптер 2 - Сетевой мост (eth1) - WAN (уже подключен) |
* Адаптер 3 - Виртуальный адаптер хоста (eth2) - LAN | * Адаптер 3 - Виртуальный адаптер хоста (eth2) - LAN | ||
<code> | <code> | ||
- | root@gate:~# sh net_gate.sh | + | gate# ifconfig eth2 inet 192.168.100+X.1/24 |
+ | </code> | ||
+ | |||
+ | * Создаем в Putty профиль gate и подключаемся | ||
+ | |||
+ | <code> | ||
+ | gate# sh net_gate.sh | ||
- | root@gate:~# cat /etc/network/interfaces | + | gate# cat /etc/network/interfaces |
</code><code> | </code><code> | ||
... | ... | ||
Line 85: | Line 74: | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
</code><code> | </code><code> | ||
- | root@gate:~# init 6 | + | gate# init 6 |
+ | </code><code> | ||
+ | gate# apt update | ||
</code> | </code> | ||
- | === server === | + | === Настраиваем lan === |
- | <code> | + | |
- | root@server:~# sh net_server.sh | + | |
- | root@server:~# init 6 | + | * Адаптер 1 - Виртуальный адаптер хоста (eth0) - LAN (уже подключен) |
+ | |||
+ | <code> | ||
+ | lan# ifconfig eth0 inet 192.168.100+X.10/24 | ||
</code> | </code> | ||
- | * Настраиваем профили putty к server и gate к адресам DMZ 192.168.X.Y (для gate это подключение пригодится в лабораторных работах с firewall) | + | * Создаем в Putty профиль lan и подключаемся |
<code> | <code> | ||
- | gate# apt update | + | lan# sh net_server.sh |
- | server# apt update | + | lan# hostnamectl set-hostname lan.corpX.un |
- | </code> | + | |
- | ==== 1.2 Настройка системы Lan ==== | + | |
- | <code> | + | lan# cat /etc/network/interfaces |
- | # cat /etc/hosts | + | |
- | </code><code> | + | |
- | 127.0.0.1 localhost | + | |
- | + | ||
- | 192.168.100+X.10 lan.corpX.un lan | + | |
- | </code><code> | + | |
- | # cat /etc/resolv.conf | + | |
- | </code><code> | + | |
- | search corpX.un | + | |
- | nameserver 172.16.1.254 | + | |
- | </code><code> | + | |
- | # cat /etc/hostname | + | |
- | </code><code> | + | |
- | lan.corpX.un | + | |
- | </code><code> | + | |
- | # cat /etc/network/interfaces | + | |
</code><code> | </code><code> | ||
auto lo | auto lo | ||
Line 131: | Line 105: | ||
gateway 192.168.100+X.1 | gateway 192.168.100+X.1 | ||
</code><code> | </code><code> | ||
- | # init 6 | + | lan# init 6 |
</code> | </code> | ||
+ | === Настраиваем server === | ||
- | ==== 1.3 Подключение сети предприятия к Internet ==== | + | * Адаптер 1 - Внутренняя сеть (eth0) - DMZ |
- | * Назначаем host системе на интерфейсе "VirtualBox Host-Only Network" ip address 192.168.100+X.5/24 и подключаемся putty к lan | + | <code> |
- | * Настраиваем доступ в Internet из сети LAN ([[Сервис NAT#Трансляция на основе адреса отправителя]]) | + | server# sh net_server.sh |
+ | |||
+ | server# init 6 | ||
+ | </code> | ||
+ | |||
+ | * Создаем в Putty профиль server и подключаемся | ||
+ | ==== 1.2 Подключение сети предприятия к Internet ==== | ||
+ | |||
+ | * Настраиваем доступ в Internet из сети LAN и использованием [[Сервис NAT]] | ||
* Тестируем | * Тестируем | ||
<code> | <code> | ||
lan# apt update | lan# apt update | ||
</code> | </code> | ||
- | * Копируем ключи ssh с системы lan на gate и server ([[Сервис SSH#Аутентификация с использованием ключей ssh]]) | ||
- | + | ==== 1.3 План размещения сервисов в сети предприятия ==== | |
- | ==== 1.4 План размещения сервисов в сети предприятия ==== | + | |
=== Сервис DNS === | === Сервис 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/ | ||
+ | lan# scp /etc/resolv.conf gate:/etc/ | ||
+ | </code> | ||
=== Сервис EMAIL === | === Сервис EMAIL === | ||
Line 160: | Line 155: | ||
Разворачиваем на системе gate в сети LAN | Разворачиваем на системе gate в сети LAN | ||
- | <code> | + | * Сервис DHCP [[Сервис DHCP#isc-kea]] |
- | gate# sh conf/dhcp.sh | + | * Импорт и запуск системы linux client1 ([[Инсталяция системы в конфигурации Desktop]], демонстрирует преподаватель) |
- | </code> | + | * Импорт и запуск системы windows client2 |
- | * Стандартная конфигурация [[Сервис DHCP]] (поправить интерфейсы, раскомментировать сеть, поправить DNS) | + | |
- | * [[Сервис DHCP#Проверка конфигурации и запуск]] | + | |
- | * Запуск системы clientN | + | |
- | === Файловый сервис === | + | === Сервис CIFS === |
Будет развернут на системе lan | Будет развернут на системе lan | ||
- | === Сервис NTP === | + | === Сервис HTTP === |
- | + | ||
- | Достаточно [[Локализация системы#Локализация временной зоны]] | + | |
- | + | ||
- | === Сервис WWW === | + | |
Сценарий: внешний корпоративный сайт на server | Сценарий: внешний корпоративный сайт на server | ||
Line 192: | Line 180: | ||
* [[https://www.kali.org/|Kali Linux - Advanced Penetration Testing Linux Distribution]] | * [[https://www.kali.org/|Kali Linux - Advanced Penetration Testing Linux Distribution]] | ||
* [[https://ru.wikipedia.org/wiki/OpenVAS|OpenVAS]] | * [[https://ru.wikipedia.org/wiki/OpenVAS|OpenVAS]] | ||
+ | |||
* [[https://youtu.be/zjzdqqk7xmo|Видео урок: Аудит системных событий в Linux/FreeBSD]] | * [[https://youtu.be/zjzdqqk7xmo|Видео урок: Аудит системных событий в Linux/FreeBSD]] | ||
+ | |||
+ | * [[https://www.specialist.ru/course/ceh|Этичный хакинг. Техники атак и инструменты противодействия]] | ||
==== Лабораторные работы ==== | ==== Лабораторные работы ==== | ||
- | ==== 2.1 Сканеры безопасности систем ==== | + | ==== 2.1 Внешний аудит систем ==== |
- | Сценарий: сканирование портов сервисов системы server, находим web сервер | + | Сценарий: сканирование портов сервисов системы server (с lan или gate.isp.un по ip адресу), находим web сервер |
* [[Утилита nmap]] | * [[Утилита nmap]] | ||
- | Сценарий: определяем "вручную" нет ли уязвимости directory traversal | + | Сценарий: автоматизированный поиск уязвимостей, находим "directory traversal" |
+ | |||
+ | * [[Сервис OpenVAS]] | ||
+ | * По окончании эксперимента остановить лишние экземпляры **pkill webd** или перезапустить server | ||
+ | |||
+ | Сценарий: эксплуатируем найденную уязвимость "directory traversal" | ||
+ | |||
+ | * [[Управление учетными записями в Linux#Создание тестового набора учетных записей]] на server | ||
<code> | <code> | ||
- | gate.isp.un$ curl --path-as-is http://server.corpX.un/../../../etc/passwd | + | lan# curl --path-as-is http://192.168.X.10/../../../etc/passwd |
- | gate.isp.un$ fetch -o - http://server.corpX.un/../../../etc/passwd | + | gate.isp.un$ fetch -o - http://192.168.X.10/../../../etc/passwd |
- | gate.isp.un$ telnet server.corpX.un 80 | + | gate.isp.un$ telnet 192.168.X.10 80 |
</code><code> | </code><code> | ||
GET /../../../etc/passwd HTTP/1.1 | GET /../../../etc/passwd HTTP/1.1 | ||
- | |||
- | GET /../../../etc/shadow HTTP/1.1 | ||
- | |||
- | GET /../../../etc/master.passwd HTTP/1.1 | ||
</code> | </code> | ||
- | Сценарий: автоматизированный поиск уязвимостей | ||
- | * [[Сервис OpenVAS]] | + | Сценарий: Brute force-атака по известным login |
- | * По окончании эксперимента остановить лишние экземпляры **pkill webd** или перезапустить server | + | |
- | ==== 2.2 Сканеры безопасности сети ==== | + | * [[Утилита hydra]] |
- | + | ==== 2.2 Внутренний аудит систем ==== | |
- | Сценарий: перехват учетных данных при обновлении пользователем user1 веб информации на server по протоколу ftp | + | |
- | + | ||
- | * [[Управление учетными записями в Linux]] (все по умолчанию, назначить пароль через echo) | + | |
- | * [[Настройка командных интерпретаторов]] (управление историей команд) | + | |
- | * [[Сервис FTP#Сервер ftp]] | + | |
- | * [[Утилита ettercap]] | + | |
- | * [[Утилиты для тестирования сети#tcpdump]] | + | |
- | + | ||
- | ==== 2.3 Аудит систем ==== | + | |
=== Проверка стойкости паролей === | === Проверка стойкости паролей === | ||
- | * [[http://www.openwall.com/john/|John the Ripper password cracker]] | + | <code> |
- | * [[https://www.cloudcracker.com/|An online password cracking service]] | + | lan# 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]] | * [[Утилита john]] | ||
Line 266: | Line 251: | ||
* [[Утилита chkrootkit]] | * [[Утилита chkrootkit]] | ||
- | * [[Сервис OSSEC]] | + | * [[Сервис OSSEC]] |
=== Аудит системных событий === | === Аудит системных событий === | ||
- | Сценарий: фиксируем обращения к файлам базы данных учетных записей со стороны процессов с EUID=user1. Можно тестировать из shell или запустить www сервер на server с правами user1 | + | Сценарий: фиксируем обращения к файлам базы данных учетных записей со стороны процессов с EUID=user1/student. Можно тестировать из shell или запустить www сервер на server с правами user1/student |
* [[Система Linux Auditing]] | * [[Система Linux Auditing]] | ||
Line 293: | Line 278: | ||
- | ==== 3.2 Управление привилегиями сервисов ==== | + | ==== 3.2 Управление привилегиями ==== |
=== Система безопасности UNIX === | === Система безопасности UNIX === | ||
- | Сценарий: Запуск www сервера с правами пользователя user1 не позволит получить через него доступ к /etc/shadow (linux) или /etc/master.passwd (freebsd) | + | Сценарий: Запуск www сервера с правами пользователя user1/student не позволит получить через него доступ к /etc/shadow |
* [[Система безопасности UNIX]] | * [[Система безопасности UNIX]] | ||
* [[Сервис INETD]] | * [[Сервис INETD]] | ||
- | === POSIX ACL === | + | === Списки контроля доступа === |
Сценарий: с помощью POSIX ACL запрещаем пользователю user1 читать файл /etc/passwd | Сценарий: с помощью POSIX ACL запрещаем пользователю user1 читать файл /etc/passwd | ||
* [[POSIX ACL]] | * [[POSIX ACL]] | ||
+ | |||
+ | === Расширенные атрибуты === | ||
+ | |||
+ | * [[POSIX capabilities]] | ||
+ | |||
+ | === Переменные ядра === | ||
+ | |||
+ | * [[Управление ядром и модулями в Linux#Переменные ядра]] | ||
==== 3.3 Изоляция сервисов ==== | ==== 3.3 Изоляция сервисов ==== | ||
Line 315: | Line 308: | ||
* [[Модуль AppArmor]] | * [[Модуль AppArmor]] | ||
+ | * [[Модуль AppArmor#Создание профиля "вручную"]] | ||
* [[https://youtu.be/AaB5mL3SAlQ|Видео Урок: FreeBSD MAC and Linux AppArmor]] | * [[https://youtu.be/AaB5mL3SAlQ|Видео Урок: FreeBSD MAC and Linux AppArmor]] | ||
Line 330: | Line 324: | ||
Сценарий: переносим www хостинг в контейнер | Сценарий: переносим www хостинг в контейнер | ||
+ | |||
+ | <code> | ||
+ | server# systemctl stop inetutils-inetd && systemctl disable inetutils-inetd | ||
+ | </code> | ||
* [[Технология namespaces]] | * [[Технология namespaces]] | ||
Line 335: | Line 333: | ||
* [[Технология LXC]] | * [[Технология LXC]] | ||
+ | * [[Пакет RSYNC#Инкрементное копирование (Incremental Backup)]] | ||
* [[Сервис HTTP#Установка и запуск сервера Apache]] на www | * [[Сервис HTTP#Установка и запуск сервера Apache]] на www | ||
- | * Linux ([[Управление учетными записями в Linux#Перемещение учетных записей]]) | + | <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]] (До Микросервисы) | ||
- | * [[https://github.com/docker/for-linux/issues/103|Docker blocking network of existing LXC containers]] | + | * [[Технология Docker]] |
<code> | <code> | ||
- | iptables -F FORWARD | + | server# cat /etc/bind/corpX.un |
- | iptables -P FORWARD ACCEPT | + | </code><code> |
+ | ... | ||
+ | lan A 192.168.100+X.10 | ||
+ | </code><code> | ||
+ | server# service named restart | ||
+ | |||
+ | lan# rsync -avz server:/var/www/ /var/www/ | ||
</code> | </code> | ||
+ | |||
+ | * [[Технология Docker#Установка]] Docker | ||
+ | * [[Технология Docker#Создание образа для приложения вручную]] | ||
+ | * [[Технология Docker#Запуск в режиме демона и подключение к контейнеру]] | ||
+ | * [[Технология Docker#Создание образа для приложения с использованием Dockerfile]] | ||
+ | * [[Технология Docker#Копирование образов]] | ||
+ | |||
==== 3.4 Усиление системы с помощью специальных средств ==== | ==== 3.4 Усиление системы с помощью специальных средств ==== | ||
Line 367: | Line 391: | ||
Демонстрирует преподаватель | Демонстрирует преподаватель | ||
- | Сценарий: разворачиваем на server, MTA для домена corpX.un, IMAP без SSL. Учетные записи почтовых пользователей не должны иметь shell, предоставляющий командную строку | + | Сценарий: разворачиваем на server, MTA для домена corpX.un, IMAP без SSL. Учетные записи почтовых пользователей не должны иметь shell, предоставляющий доступ к командной строке |
* [[Сервис MTA#Настройка MTA]] | * [[Сервис MTA#Настройка MTA]] | ||
- | * [[Управление учетными записями в Linux]] | ||
* [[UA mail]] | * [[UA mail]] | ||
- | * [[Сервер dovecot]] | + | * [[Сервер dovecot]] |
- | * В linux ([[Управление учетными записями в Linux#Изменение атрибутов учетной записи]]) | + | <code> |
+ | server# apt install ansible | ||
+ | |||
+ | server# ansible-playbook conf/ansible/roles/mail.yml | ||
+ | </code> | ||
+ | |||
+ | * [[Управление учетными записями в Linux#Изменение атрибутов учетной записи]] shell в Linux | ||
==== 4.2 Скрытие баннеров сервисов ==== | ==== 4.2 Скрытие баннеров сервисов ==== | ||
Line 381: | Line 410: | ||
* Сервис SMTP ([[Сервис MTA#Сокрытие названия сервиса]]) | * Сервис SMTP ([[Сервис MTA#Сокрытие названия сервиса]]) | ||
* Сервис IMAP ([[Сервер dovecot#Сокрытие названия сервиса]]) | * Сервис IMAP ([[Сервер dovecot#Сокрытие названия сервиса]]) | ||
- | * Сервис FTP ([[Сервис FTP#Сокрытие названия/версии сервиса]]) | ||
* Сервис HTTP ([[Сервис HTTP#Сокрытие версии сервиса]]) | * Сервис HTTP ([[Сервис HTTP#Сокрытие версии сервиса]]) | ||
<code> | <code> | ||
gate# curl -I http://www.corpX.un/ | gate# curl -I http://www.corpX.un/ | ||
</code> | </code> | ||
- | * Сервис CIFS ([[Файловый сервер SAMBA#Публичный каталог доступный на запись]], [[Файловый сервер SAMBA#Сокрытие названия/версии сервиса]]) !!! Сделать | + | |
* Сервис SSH ([[http://www.cyberciti.biz/faq/howto-ssh-server-hide-version-number-sshd_config/|OpenSSH Hide Version Number From Clients]]) | * Сервис SSH ([[http://www.cyberciti.biz/faq/howto-ssh-server-hide-version-number-sshd_config/|OpenSSH Hide Version Number From Clients]]) | ||
==== 4.3 Замена устаревших сервисов ==== | ==== 4.3 Замена устаревших сервисов ==== | ||
- | Сценарий: для хостинга на www используем SFTP вместо FTP | + | Сценарий: перехват учетных данных при подключении пользователей по протоколу ftp для загрузки информации в каталог public_html на server и замена его на sftp |
- | * [[Сервис SSH#SSH вместо FTP (SFTP)]] | ||
- | * [[Сервис HTTP#Использование домашних каталогов]] | ||
- | * [[Технология Docker]] (От Микросервисы) | + | * Сервис HTTP [[Сервис HTTP#Использование домашних каталогов]] |
+ | * [[Сервис FTP#Сервер ftp]] (/usr/sbin/nologin в /etc/shells) | ||
+ | * [[Утилита ettercap]] и [[Утилиты для тестирования сети#tcpdump]] | ||
+ | * [[Сервис SSH#SSH вместо FTP (SFTP)]] | ||
+ | * Технология Docker [[Технология Docker#Микросервисы]] | ||
==== 4.4 Шифрование трафика ==== | ==== 4.4 Шифрование трафика ==== | ||
Line 410: | Line 440: | ||
Сценарий: замена сервиса HTTP на HTTPS на www | Сценарий: замена сервиса HTTP на HTTPS на www | ||
- | * [[Пакет OpenSSL#Использование алгоритмов с открытым ключем]] | + | * [[Пакет OpenSSL#Использование алгоритмов с открытым ключем]] (на примере обмена данными по ftp между student@lan и student@server) |
* [[Пакет OpenSSL#Создание самоподписанного сертификата]] для системы www | * [[Пакет OpenSSL#Создание самоподписанного сертификата]] для системы www | ||
* [[Сервис HTTP#Поддержка протокола HTTPS]] для системы www | * [[Сервис HTTP#Поддержка протокола HTTPS]] для системы www | ||
Line 416: | Line 446: | ||
=== Использование PKI === | === Использование PKI === | ||
- | Сценарий: | + | **Сценарий:** |
- развертывание корпоративного CA (на lan) | - развертывание корпоративного CA (на lan) | ||
- замена HTTP на HTTPS (на www) | - замена HTTP на HTTPS (на www) | ||
- | - замена IMAP на IMAPS (на server) | ||
- в client-ах добавляем сертификат CA в корневые центры сертификации | - в client-ах добавляем сертификат CA в корневые центры сертификации | ||
- | * [[Сервис HTTP#Установка и запуск сервера Apache]] на lan | + | * [[Сервис HTTP#Установка и запуск сервера Apache]] на lan |
- | * [[Пакет OpenSSL#Создание центра сертификации]] на lan (удалить index.html) | + | <code> |
+ | lan# rm /var/www/html/index.html | ||
+ | </code> | ||
+ | * [[Пакет OpenSSL#Создание центра сертификации]] на lan | ||
* [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] для www | * [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] для www | ||
* [[Сервис HTTP#Поддержка протокола HTTPS]] для www | * [[Сервис HTTP#Поддержка протокола HTTPS]] для www | ||
- | * [[Пакет OpenSSL#Импорт сертификата центра сертификации]] | + | * [[Материалы по Windows#Импорт сертификата]] центра сертификации в windows client (через http://lan.corpX.un/) |
+ | * [[Пакет OpenSSL#Импорт сертификата центра сертификации]] в linux client | ||
+ | |||
+ | **Дополнительные задания:** | ||
+ | |||
+ | - HTTPS доступ к приложению webd (можно gowebd) через nginx на 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]] | ||
- | * [[Сервер dovecot#Использование сертификатов для шифрования трафика]] IMAPS на server (демонстрирует преподаватель) | ||
==== 4.5 Аутентификация и Авторизация доступа к сервису ==== | ==== 4.5 Аутентификация и Авторизация доступа к сервису ==== | ||
- | * [[Linux. Интеграция с корпоративными решениями Microsoft]] | + | * Курс про аутентификацию и авторизацию: [[Linux. Интеграция с корпоративными решениями Microsoft]] |
- | * [[https://youtu.be/-fcJ8MkoLts|Видео урок: Использование одноразовых паролей OPIE]] | + | * [[https://youtu.be/-fcJ8MkoLts|Видео урок: Использование одноразовых паролей OPIE]] или статья [[https://habr.com/ru/articles/713582/|Безопасное подключение с чужого компьютера]] |
* [[https://youtu.be/kXi1KXYy-NE|Видео урок: SSH SSO]] | * [[https://youtu.be/kXi1KXYy-NE|Видео урок: SSH SSO]] | ||
- | * [[Сервис MTA#Настройка MTA на релеинг почты на основе аутентификации]] (демонстрирует преподаватель) | + | Задание: Настройка почтового сервера на отправку почты пользователям других постовых доменов из почтовых клиентов на основании аутентификации |
- | **Задание:** использование пользовательских сертификатов для аутентификации и авторизации | + | * [[Сервис MTA#Протокол SMTP]] |
+ | * [[Сервис MTA#Настройка MTA на релеинг почты на основе аутентификации]] postfix smtp ssl | ||
+ | * Установка [[Thunderbird]] и [[Thunderbird#Авто конфигурация клиента]] | ||
+ | |||
+ | **Задание:** использование пользовательских сертификатов | ||
* [[Пакет OpenSSL#Создание пользовательского сертификата, подписанного CA]] | * [[Пакет OpenSSL#Создание пользовательского сертификата, подписанного CA]] | ||
* [[Пакет OpenSSL#Оформление сертификата и ключа в формате PKS#12 с парольной защитой]] | * [[Пакет OpenSSL#Оформление сертификата и ключа в формате PKS#12 с парольной защитой]] | ||
+ | |||
+ | * Рассылка сертификатов, ключей и файлов PKCS#12 владельцам по почте через [[UA mutt]] | ||
+ | * Публикация пользовательских сертификатов | ||
+ | |||
+ | <code> | ||
+ | lan.corpX.un:~# cp -v user*crt /var/www/html/ | ||
+ | </code> | ||
+ | |||
+ | * Вариант для курса - используем файловый сервер: | ||
+ | * [[Файловый сервер SAMBA#Установка SAMBA]] на системе lan | ||
+ | * [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] | ||
<code> | <code> | ||
lan# cp -v user* /disk2/samba/ | lan# cp -v user* /disk2/samba/ | ||
Line 451: | Line 530: | ||
</code> | </code> | ||
- | **Сценарий:** использование пользовательских сертификатов на server для электронной подписи (PEM :) | + | **Сценарий:** использование пользовательских сертификатов для PEM :) |
- | * [[Thunderbird]] (демонстрирует преподаватель, подделку писем удобнее показать в старой версии) | + | * [[Thunderbird#Настройка на использование S/MIME]] Thunderbird (демонстрирует преподаватель) |
- | **Сценарий:** использование пользовательских сертификатов для доступа по https на www | + | **Сценарий:** использование пользовательских сертификатов для аутентификации и авторизации доступа к сайту www |
* [[Сервис HTTP#Управление доступом к HTTP серверу на основе сертификатов]] | * [[Сервис HTTP#Управление доступом к HTTP серверу на основе сертификатов]] | ||
* [[Сервис HTTP#Использование директивы Redirect]] | * [[Сервис HTTP#Использование директивы Redirect]] | ||
* [[Сервис HTTP#CGI интерфейс сервера]] | * [[Сервис HTTP#CGI интерфейс сервера]] | ||
- | + | <code> | |
- | **Сценарий:** использование пользовательских сертификатов для доступа по imaps на server | + | lan# curl --cert user1.crt --key user1.key --cacert /var/www/html/ca.crt https://www.corpX.un/cgi-bin/test-cgi |
- | + | </code> | |
- | * [[Сервер dovecot#Аутентификация на основе пользовательских сертификатов]] в протоколе IMAP (обсудить, оставить парольную аутентификацию, поскольку ей же пользуется postfix, а thunderbird не поддерживает использование сертификатов для SMTP) | + | |
Line 477: | Line 555: | ||
* [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] | * [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] | ||
- | * [[Сервис DNS#Ограничение доступа к DNS серверу]] | + | * [[Сервис DNS#Ограничение доступа к DNS серверу]] (обсудить) |
- | * [[Сервис MTA#Настройка MTA на релеинг почты из LAN]] | + | * [[Сервис MTA#Настройка MTA на релеинг почты из LAN]] (обсудить) |
- | * [[Сервис HTTP#Управление доступом к HTTP серверу на основе сетевых адресов]] | + | * [[Сервис HTTP#Управление доступом к HTTP серверу на основе сетевых адресов]] (обсудить) |
- | * [[Установка, настройка и запуск пакета SQUID]] | + | * [[Установка, настройка и запуск пакета SQUID]] (обсудить) |
=== Адаптивное, с использование специальных средств === | === Адаптивное, с использование специальных средств === | ||
- | * [[Защита почты от вирусов и SPAMа]] | + | * [[Защита почты от вирусов и SPAMа]] (обсудить) |
- | * [[Антивирусная защита web трафика SQUID]] | + | * Использование [[Сервис Clamav]] и [[Сервис Clamav#API ядра FANOTIFY]] для защиты файлового сервера на lan (что бы не отключать антивирус на windows, проверить через [[Подключение к файловым серверам CIFS из UNIX#linux проводник thunar]]) |
- | + | ||
- | Сценарий: Honeypot на gate | + | |
- | + | ||
- | * [[Сервис Portsentry]] | + | |
- | * [[https://youtu.be/6I0B3F179oE|Видео урок: Honeypot из tcpwrap и portsentry]] | + | |
- | + | ||
- | Сценарий: блокируем атаки SSH сервиса на gate | + | |
- | + | ||
- | * [[Сервис Fail2ban]] | + | |
==== 4.7 Шифрование контента ==== | ==== 4.7 Шифрование контента ==== | ||
Line 500: | Line 569: | ||
Сценарий: размещаем данные на шифрованном разделе для lan сервиса SAMBA (сетевой диск с двойным дном:) | Сценарий: размещаем данные на шифрованном разделе для lan сервиса SAMBA (сетевой диск с двойным дном:) | ||
- | * Создаем раздел, без файловой системы ([[Управление файловыми системами в Linux#Добавление дисков в Linux]]) | + | * Добавляем диск к lan |
* [[Управление файловыми системами в Linux#Использование шифрованных разделов в Linux]] | * [[Управление файловыми системами в Linux#Использование шифрованных разделов в Linux]] | ||
- | * Настроить права доступа к [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] | + | * Создать каталог и настроить права доступа для [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] |
Line 525: | Line 594: | ||
==== 5.1 Пакетные фильтры ==== | ==== 5.1 Пакетные фильтры ==== | ||
- | Сценарий: защита http сервиса на server от bruteforce | + | Сценарий: защита http сервиса на server от DDOS |
- | * [[Сервис Firewall#Конфигурация для защиты от bruteforce]] (генерируем запросы с host системы) | + | * [[Сервис HTTP#Нагрузочное тестирование]] |
+ | * [[Сервис Firewall#Конфигурация для защиты от bruteforce]] | ||
==== 5.2 Системы IDS и IPS ==== | ==== 5.2 Системы IDS и IPS ==== | ||
- | Сценарий: фиксируем атаки из WAN, проверять с host системы | + | Сценарий: Honeypot на gate |
- | + | ||
- | * [[Сервис SNORT]] на gate (указать правильный интерфейс) | + | |
- | + | ||
- | Сценарий: блокируем атаки из WAN, проверять с host системы | + | |
- | + | ||
- | * [[Сервис Fail2ban#Интеграция fail2ban и snort]] | + | |
+ | * [[Сервис Portsentry]] | ||
+ | * [[https://youtu.be/6I0B3F179oE|Видео урок: Honeypot из tcpwrap и portsentry]] | ||
+ | Сценарий: блокируем атаки на SSH сервис на на server | ||
+ | * [[Сервис Fail2ban]] | ||
+ | * [[https://habr.com/ru/articles/813799/|DPI из подручных материалов]] | ||
===== Модуль 6. Использование VPN для соединения сетей филиалов предприятия и удаленных пользователей ===== | ===== Модуль 6. Использование VPN для соединения сетей филиалов предприятия и удаленных пользователей ===== | ||
Line 567: | Line 636: | ||
* Настройка Firewall ([[Сервис Firewall#Конфигурация для шлюза WAN - LAN - DMZ]]) | * Настройка Firewall ([[Сервис Firewall#Конфигурация для шлюза WAN - LAN - DMZ]]) | ||
- | * [[Сервис SSH#SSH вместо VPN (привязка к порту сервера)]], использовать Bitvise SSH Client (Tunnelier) | + | |
+ | * [[Сервис SSH#SSH вместо VPN (привязка к порту сервера)]] | ||
+ | * [[https://habr.com/ru/post/709218/|TeamViewer из подручных материалов]] | ||
+ | * [[https://habr.com/ru/articles/732736/|GPO для Linux из подручных материалов]] (help.desktop) | ||
==== 6.2 Пакет OpenVPN ==== | ==== 6.2 Пакет OpenVPN ==== | ||
Line 588: | Line 660: | ||
* [[Пакет OpenSSL#Отзыв сертификатов]] | * [[Пакет OpenSSL#Отзыв сертификатов]] | ||
- | Сценарий: требуется объединить сети филиалов | + | * [[Управление учетными записями в Linux#Перемещение учетных записей]] |
+ | * [[Пакет OpenVPN#Использование PAM аутентификации]] | ||
+ | |||
+ | Сценарий: требуется объединить сети филиалов (обсудить) | ||
* [[Пакет OpenVPN]] | * [[Пакет OpenVPN]] | ||
* [[Пакет OpenVPN#Настройка peer2peer конфигурации]] | * [[Пакет OpenVPN#Настройка peer2peer конфигурации]] | ||
+ | |||
+ | ===== Вопросы ===== | ||
===== Дополнительные материалы ===== | ===== Дополнительные материалы ===== | ||
Line 600: | Line 677: | ||
* [[https://www.linux.org.ru/news/security/11204691|Утилита для создания MitM-точек доступа: wifiphisher]] | * [[https://www.linux.org.ru/news/security/11204691|Утилита для создания MitM-точек доступа: wifiphisher]] | ||
* [[http://www.vesti.ru/doc.html?id=2006216|Shellshock оставил беззащитным Интернет]] | * [[http://www.vesti.ru/doc.html?id=2006216|Shellshock оставил беззащитным Интернет]] | ||
+ | |||
+ |