User Tools

Site Tools


обеспечение_безопасности_linux_решений_2024

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
обеспечение_безопасности_linux_решений_2024 [2024/05/06 18:22]
val [1.3 План размещения сервисов в сети предприятия]
обеспечение_безопасности_linux_решений_2024 [2024/05/20 15:38]
val [4.5 Аутентификация и Авторизация доступа к сервису]
Line 49: Line 49:
 </​code>​ </​code>​
  
-Клонировать ​server в lan+**Клонируем ​server в lan**
  
-=== gate ===+=== Настраиваем ​gate ===
  
   * Адаптер 1 - Внутренняя сеть (eth0) - DMZ   * Адаптер 1 - Внутренняя сеть (eth0) - DMZ
Line 61: Line 61:
 </​code>​ </​code>​
  
-  * Создать в Putty профиль gate и подключиться+  * Создаем в Putty профиль gate и подключаемся
  
 <​code>​ <​code>​
Line 79: Line 79:
 </​code>​ </​code>​
  
-=== lan ===+=== Настраиваем ​lan ===
  
   * Адаптер 1 - Виртуальный адаптер хоста (eth0) - LAN (уже подключен)   * Адаптер 1 - Виртуальный адаптер хоста (eth0) - LAN (уже подключен)
Line 87: Line 87:
 </​code>​ </​code>​
  
-  * Создать в Putty профиль lan и подключиться+  * Создаем в Putty профиль lan и подключаемся
  
 <​code>​ <​code>​
Line 108: Line 108:
 </​code>​ </​code>​
  
-=== server ===+=== Настраиваем ​server ===
  
   * Адаптер 1 - Внутренняя сеть (eth0) - DMZ   * Адаптер 1 - Внутренняя сеть (eth0) - DMZ
Line 118: Line 118:
 </​code>​ </​code>​
  
 +  * Создаем в Putty профиль server и подключаемся
 ==== 1.2 Подключение сети предприятия к Internet ==== ==== 1.2 Подключение сети предприятия к Internet ====
  
Line 156: Line 156:
  
   * Сервис DHCP [[Сервис DHCP#​isc-kea]]   * Сервис DHCP [[Сервис DHCP#​isc-kea]]
-  * Импорт и запуск системы ​almalinux ​client1 ​([[Управление ПО в Linux#​Установка групп ПО]] для GUI) (демонстрирует преподаватель)+  * Импорт и запуск системы ​linux client1 (демонстрирует преподаватель)
   * Импорт и запуск системы windows client2   * Импорт и запуск системы windows client2
  
 === Сервис CIFS === === Сервис CIFS ===
  
-server# cat /​etc/​bind/​corpX.un +Будет развернут на системе lan
-</​code><​code>​ +
-... +
-lan       ​A ​      ​192.168.100+X.10 +
-</​code><​code>​ +
-server# service named restart +
-</​code>​ +
- +
-  * [[Файловый сервер ​SAMBA]] в конфигурации [[Файловый сервер SAMBA#​Публичный каталог доступный на запись]] ​на системе lan+
  
 === Сервис HTTP === === Сервис HTTP ===
Line 188: 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]] 
-  * По окончании эксперимента остановить лишние экземпляры **pkill webd** или перезапустить server 
  
 Сценарий:​ Brute force-атака по известным login Сценарий:​ Brute force-атака по известным login
Line 225: Line 219:
 === Проверка стойкости паролей === === Проверка стойкости паролей ===
  
-  * [[http://www.openwall.com/john/|John the Ripper password cracker]]+<​code>​ 
 +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 254: Line 251:
   * [[Утилита chkrootkit]]   * [[Утилита chkrootkit]]
  
-  * [[Сервис OSSEC]]+  * [[Сервис OSSEC]] ​
  
 === Аудит системных событий === === Аудит системных событий ===
Line 285: Line 282:
 === Система безопасности UNIX === === Система безопасности UNIX ===
  
-Сценарий:​ Запуск www сервера с правами пользователя user1/​student не позволит получить через него доступ к /​etc/​shadow ​(linux) или /​etc/​master.passwd (freebsd)+Сценарий:​ Запуск www сервера с правами пользователя user1/​student не позволит получить через него доступ к /etc/shadow
  
   * [[Система безопасности UNIX]]   * [[Система безопасности UNIX]]
Line 326: Line 323:
  
 Сценарий:​ переносим www хостинг в контейнер Сценарий:​ переносим www хостинг в контейнер
 +
 +<​code>​
 +server# systemctl stop inetutils-inetd && systemctl disable inetutils-inetd
 +</​code>​
  
   * [[Технология namespaces]]   * [[Технология namespaces]]
Line 333: Line 334:
   * [[Пакет RSYNC#​Инкрементное копирование (Incremental Backup)]]   * [[Пакет RSYNC#​Инкрементное копирование (Incremental Backup)]]
   * [[Сервис HTTP#​Установка и запуск сервера Apache]] на www   * [[Сервис HTTP#​Установка и запуск сервера Apache]] на www
-  * Linux ([[Управление учетными записями в Linux#Перемещение учетных записей]])+<​code>​ 
 +servercat /​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]] (До Микросервисы)
 +  * [[Технология Docker#​Установка]]
 +  * [[Технология Docker#​Создание контейнера для приложения вручную]]
 +  * [[Технология Docker#​Запуск в режиме демона и подключение к контейнеру]]
 +  * [[Технология Docker#​Создание контейнера для приложения с использованием Dockerfile]]
  
   * [[https://​github.com/​docker/​for-linux/​issues/​103|Docker blocking network of existing LXC containers]]   * [[https://​github.com/​docker/​for-linux/​issues/​103|Docker blocking network of existing LXC containers]]
Line 342: Line 360:
 iptables -P FORWARD ACCEPT iptables -P FORWARD ACCEPT
 </​code>​ </​code>​
 +  * [[Сервис NAT#​Управление состоянием iptables]]
 ==== 3.4 Усиление системы с помощью специальных средств ==== ==== 3.4 Усиление системы с помощью специальных средств ====
  
Line 375: Line 393:
 </​code>​ </​code>​
  
-  * [[Управление учетными записями в Linux]] (все по умолчанию,​ назначить пароль через echo) 
   * [[Управление учетными записями в Linux#​Изменение атрибутов учетной записи]] shell в Linux   * [[Управление учетными записями в Linux#​Изменение атрибутов учетной записи]] shell в Linux
  
Line 388: Line 405:
 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 Замена устаревших сервисов ====
  
-Сценарий:​ перехват учетных данных при обновлении пользователем user1 веб ​информации на server ​по протоколу ftp+Сценарий:​ перехват учетных данных при ​подключении пользователей по протоколу ftp для загрузки ​информации ​в каталог public_html ​на server ​и замена его на sftp
  
 +
 +  * Сервис HTTP [[Сервис HTTP#​Использование домашних каталогов]]
   * [[Сервис FTP#​Сервер ftp]] (/​usr/​sbin/​nologin в /​etc/​shells)   * [[Сервис FTP#​Сервер ftp]] (/​usr/​sbin/​nologin в /​etc/​shells)
-  ​* Сервис FTP ([[Сервис FTP#​Сокрытие названия/​версии сервиса]]) +  * [[Утилита ettercap]] ​и [[Утилиты для тестирования сети#​tcpdump]]
-  ​* [[Утилита ettercap]] +
-  * [[Утилиты для тестирования сети#​tcpdump]] +
- +
-Сценарий:​ для хостинга на www используем SFTP вместо FTP  +
   * [[Сервис SSH#SSH вместо FTP (SFTP)]]   * [[Сервис SSH#SSH вместо FTP (SFTP)]]
-  * [[Сервис HTTP#​Использование домашних каталогов]] 
  
   * Технология Docker [[Технология Docker#​Микросервисы]]   * Технология Docker [[Технология Docker#​Микросервисы]]
Line 424: Line 437:
 === Использование PKI === === Использование PKI ===
  
-Сценарий: ​+**Сценарий:​**
  
   - развертывание корпоративного CA (на lan)   - развертывание корпоративного CA (на lan)
   - замена HTTP на HTTPS (на www)   - замена HTTP на HTTPS (на www)
-  - замена IMAP на IMAPS (на server) 
   - в client-ах добавляем сертификат CA в корневые центры сертификации   - в client-ах добавляем сертификат CA в корневые центры сертификации
  
-  * [[Сервис HTTP#​Установка и запуск сервера Apache]] на lan (удалить ​index.html)+  * [[Сервис HTTP#​Установка и запуск сервера Apache]] на lan  
 +<​code>​ 
 +lan# rm /​var/​www/​html/​index.html 
 + 
 +server# cat /​etc/​bind/​corpX.un 
 +</​code><​code>​ 
 +... 
 +lan       ​A ​      ​192.168.100+X.10 
 +</​code><​code>​ 
 +server# service named restart 
 +</​code>​
   * [[Пакет OpenSSL#​Создание центра сертификации]] на lan   * [[Пакет 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
  
-  ​* [[Сервер dovecot#​Использование сертификатов для шифрования трафика]] dovecot IMAPS на server ​емонстрирует преподаватель)+**Дополнительные задания:​** 
 + 
 +  - 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]]   * [[Letsencrypt Certbot]]
 +
 ==== 4.5 Аутентификация и Авторизация доступа к сервису ==== ==== 4.5 Аутентификация и Авторизация доступа к сервису ====
  
-  * [[Linux. Интеграция с корпоративными решениями Microsoft]] +  * Курс про аутентификацию и авторизацию: ​[[Linux. Интеграция с корпоративными решениями Microsoft]] 
-  * [[https://​youtu.be/​-fcJ8MkoLts|Видео урок: Использование одноразовых паролей OPIE]] или [[https://​habr.com/​ru/​articles/​713582/​|Безопасное подключение с чужого компьютера]]+  * [[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 на релеинг почты на основе аутентификации]] postfix smtp ssl (демонстрирует преподаватель)+Задание:​ Настройка почтового сервера на отправку почты пользователям других постовых доменов из почтовых клиентов на основании аутентификации 
 + 
 +  * [[Сервис MTA#​Протокол SMTP]] 
 +  ​* [[Сервис MTA#​Настройка MTA на релеинг почты на основе аутентификации]] postfix smtp ssl 
 +  * Установка [[Thunderbird]] и [[Thunderbird#​Авто конфигурация клиента]] ​
  
 **Задание:​** использование пользовательских сертификатов **Задание:​** использование пользовательских сертификатов
Line 461: Line 517:
 </​code>​ </​code>​
  
-  * Вариант для курса: [[Файловый сервер SAMBA#​Установка SAMBA]]+  * Вариант для курса: ​ 
 + 
 +<​code>​ 
 +server# cat /​etc/​bind/​corpX.un 
 +</​code><​code>​ 
 +... 
 +lan       ​A ​      ​192.168.100+X.10 
 +</​code><​code>​ 
 +server# service named restart 
 +</​code>​ 
 + 
 +  * [[Файловый сервер SAMBA#​Установка SAMBA]] ​на системе lan
   * [[Файловый сервер SAMBA#​Публичный каталог доступный на запись]]   * [[Файловый сервер SAMBA#​Публичный каталог доступный на запись]]
 <​code>​ <​code>​
Line 510: Line 577:
 Сценарий:​ размещаем данные на шифрованном разделе для lan сервиса SAMBA (сетевой диск с двойным дном:) Сценарий:​ размещаем данные на шифрованном разделе для lan сервиса SAMBA (сетевой диск с двойным дном:)
  
-  * Создаем раздел, ​без файловой системы ([[Управление файловыми системами в Linux#​Добавление ​дисков в Linux]])+  * Добавляем диск ​к lan
   * [[Управление файловыми системами в Linux#​Использование шифрованных разделов в Linux]]   * [[Управление файловыми системами в Linux#​Использование шифрованных разделов в Linux]]
-  * Настроить права доступа ​к [[Файловый сервер SAMBA#​Публичный каталог доступный на запись]]+  * Создать каталог и настроить права доступа ​для ​[[Файловый сервер SAMBA#​Публичный каталог доступный на запись]]
  
  
Line 538: Line 605:
  
   * [[Сервис HTTP#​Нагрузочное тестирование]]   * [[Сервис HTTP#​Нагрузочное тестирование]]
-  * [[Сервис Firewall#​Конфигурация для защиты от bruteforce]] ​(генерируем запросы с host системы)+  * [[Сервис Firewall#​Конфигурация для защиты от bruteforce]]
  
 ==== 5.2 Системы IDS и IPS ==== ==== 5.2 Системы IDS и IPS ====
Line 547: Line 614:
   * [[https://​youtu.be/​6I0B3F179oE|Видео урок: Honeypot из tcpwrap и portsentry]]   * [[https://​youtu.be/​6I0B3F179oE|Видео урок: Honeypot из tcpwrap и portsentry]]
  
-Сценарий:​ блокируем атаки SSH сервиса на на server+Сценарий:​ блокируем атаки ​на SSH сервис на на server
  
   * [[Сервис Fail2ban]]   * [[Сервис Fail2ban]]
Line 578: Line 645:
  
   * Настройка 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 599: Line 669:
   * [[Пакет OpenSSL#​Отзыв сертификатов]]   * [[Пакет OpenSSL#​Отзыв сертификатов]]
  
-Сценарий:​ требуется объединить сети филиалов+  * [[Управление учетными записями в Linux#​Перемещение учетных записей]] 
 +  * [[Пакет OpenVPN#​Использование PAM аутентификации]] 
 + 
 +Сценарий:​ требуется объединить сети филиалов ​(обсудить)
  
   * [[Пакет OpenVPN]]   * [[Пакет OpenVPN]]
   * [[Пакет OpenVPN#​Настройка peer2peer конфигурации]]   * [[Пакет OpenVPN#​Настройка peer2peer конфигурации]]
 +
 +===== Вопросы =====
  
 ===== Дополнительные материалы ===== ===== Дополнительные материалы =====
Line 612: Line 687:
   * [[http://​www.vesti.ru/​doc.html?​id=2006216|Shellshock оставил беззащитным Интернет]]   * [[http://​www.vesti.ru/​doc.html?​id=2006216|Shellshock оставил беззащитным Интернет]]
  
-==== План на 14.11.2022 ==== 
- 
-=== Подготовка стенда === 
- 
-  * Схема стенда 
-  * Развернуть все VM 
-  * ext ip на extgate (10.5.N.100+X) 
-  * named.conf forwarders на extgate 
-  * resolv.conf на extgate 
- 
-=== OPIE для подключения к "​работе"​ === 
- 
-  * Ставим Chrome и MobaXterm (что бы настроить opie "на работе"​) 
-  * [[Управление учетными записями в FreeBSD]] - создаем 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 слушателя