====== Обеспечение безопасности UNIX решений ====== * [[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]] ===== Модуль 1. Развертывание сети и сервисов предприятия ===== * [[http://ru.wikipedia.org/wiki/DMZ_(компьютерные_сети)|Demilitarized Zone — демилитаризованная зона, ДМЗ]] ==== Настройка систем ==== === Настройка систем Gate и Сервер === * [[Настройка стендов слушателей]] * Адаптер 3 - Виртуальный адаптер хоста (eth2/em2) * route -p add 192.168.0.0 mask 255.255.0.0 10.10.109.252 == Ubuntu == root@gate:~# cat /etc/network/interfaces ... auto eth2 iface eth2 inet static address 192.168.100+X.1 netmask 255.255.255.0 == FreeBSD === # cat /etc/rc.conf ... ifconfig_em2="192.168.100+X.1/24" ... === Настройка системы Lan === [[Настройка стендов слушателей#Общие файлы конфигурации]] == Ubuntu == root@localhost:~# cat /etc/hostname lan.corpX.un root@localhost:~# cat /etc/network/interfaces 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 root@localhost:~# init 6 ... root@lan:~# apt update == FreeBSD == # cat /etc/rc.conf hostname="lan.corpX.un" ifconfig_em0="192.168.100+X.10/24" defaultrouter=192.168.100+X.1 keyrate="fast" sshd_enable=yes # init 6 # pkg update -f # pkg install pkg ==== Подключение сети предприятия к Internet ==== Сценарий: 192.168.X/24 - "белая" DMZ сеть, 192.168.100+X - "серая" LAN сеть * Назначаем host системе на интерфейсе "VirtualBox Host-Only Network" ip address 192.168.100+X.20/24 и подключаемся putty к lan * [[Сервис NAT#Трансляция на основе адреса отправителя]] ==== План размещения сервисов в сети предприятия ==== * Сервис DNS * Сервис EMAIL * Сервис DHCP * Файловый сервис * Сервис WWW === Сервис WWW === Сценарий: внешний самописный корпоративный сайт на server, контент обновляется через ftp с использованием учетной записи user1 (не забыть изменить владельца каталога /var/www) * [[Сервис INETD]] * [[Средства программирования shell#Web сервер на shell]] ===== Модуль 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://youtu.be/zjzdqqk7xmo|Видео урок: Аудит системных событий в Linux/FreeBSD]] ==== 2.1 Сканеры безопасности систем ==== Сценарий: сканирование портов сервисов системы server * [[Утилита nmap#Cканирование портов сервисов системы]] Сценарий: определение версий ПО и уязвимостей системы server (ищем directory traversal [[http://www.securityfocus.com/bid/3666/discuss]]) gate.isp.un$ curl --path-as-is http://server.corpX.un/../../../etc/passwd gate.isp.un$ fetch -o - http://server.corpX.un/../../../etc/passwd gate.isp.un$ telnet server.corpX.un 80 GET /../../../etc/passwd HTTP/1.1 GET /../../../etc/shadow HTTP/1.1 GET /../../../etc/master.passwd HTTP/1.1 Nessus * [[https://ru.wikipedia.org/wiki/Nessus|Nessus]] * [[https://nessus.isp.un:8834/]] (использовать Internal Network Scan с Max Simultaneous TCP Sessions Per Host=1) OpenVAS * [[Сервис OpenVAS]] * [[https://openvas.isp.un/]] * Определяет уязвимость как: JRun directory traversal freebsd# cat /var/log/messages ... May 12 14:36:05 server inetd[908]: http from 172.16.1.248 exceeded counts/min (limit 60/min) May 12 14:36:36 server last message repeated 154 times ... Kali Linux * [[https://www.kali.org/|Advanced Penetration Testing Linux Distribution]] ==== 2.2 Сканеры безопасности сети ==== Сценарий: перехват учетных данных при обновлении пользователем user1 веб информации на server по протоколу ftp * Сервис DHCP [[Сервис DHCP#Установка]] * Сервис DHCP [[Сервис DHCP#Стандартная настройка]] * [[Сервис DHCP#Проверка конфигурации и запуск]] * Запуск системы client1 * Сервис DHCP [[Сервис DHCP#Поиск и подавление посторонних DHCP серверов]] (см. модуль 4.8) * [[Управление учетными записями в Linux]], [[Управление учетными записями в FreeBSD]] * [[Сервис FTP#Сервер ftp]] * [[Утилита ettercap]] * [[Утилиты для тестирования сети#tcpdump]] ==== 2.3 Аудит систем ==== === Проверка стойкости паролей === * [[http://www.openwall.com/john/|John the Ripper password cracker]] * [[https://www.cloudcracker.com/|An online password cracking service]] * [[Утилита john]] === Проверка целостности системы === * [[Утилита tripwire]] * [[https://youtu.be/FR_5am9__Ug|Видео Урок: Tripware - мониторинг и предупреждения об изменениях файлов в системе]] === Проверка системы на наличие закладок === * [[http://ramzess.ru/bezopasnost-servera-freebsd-proverka-na-rootkity-chast-i/|Безопасность сервера FreeBSD: проверка на rootkit]] * [[https://www.upcloud.com/support/scanning-centos-server-for-malware/|Scanning CentOS 7 Server for Malware]] * [[Утилита rkhunter]] === Аудит системных событий === !!! Тестировать из shell или запустить самописный www сервер на server с правами пользователя user1 * [[Система FreeBSD Audit]] * [[Система Linux Auditing]] * [[https://youtu.be/zjzdqqk7xmo|Видео урок: Аудит системных событий в Linux/FreeBSD]] ===== Модуль 3. Защита систем предприятия ===== ==== 3.1 Обновление систем ==== * [[https://habrahabr.ru/company/xakep/blog/305262/|Гугл для хакера]] * [[Управление ПО в Linux]] * [[Обновление системы и базового ПО в FreeBSD]] * [[Обновление дополнительного ПО в FreeBSD]] ==== 3.2 Управление привилегиями сервисов ==== === Система безопасности UNIX === Сценарий: Запуск самописного www сервера на server с правами пользователя user1 не позволит получить через него доступ к /etc/shadow (linux) или /etc/master.passwd (freebsd) * [[Система безопасности UNIX]] * [[Сервис INETD]] === POSIX ACL === Сценарий: с помощью POSIX ACL запрещаем пользователю user1 читать файл /etc/passwd * [[POSIX ACL]] ==== 3.3 Изоляция сервисов ==== === Модули AppArmor и MAC === Сценарий: Ограничения, накладываемые политиками на самописный www сервер на server не позволят получить через него доступ к любым файлам, кроме разрешенных даже в случае запуска его с правами root * [[Модуль AppArmor]] * [[Модули MAC]] * [[https://youtu.be/AaB5mL3SAlQ|Видео Урок: FreeBSD MAC and Linux AppArmor]] === Изоляция сервисов в файловой системе === * [[http://ru.wikipedia.org/wiki/Chroot|Вызов Chroot]] Сценарий: Запуск самописного www сервера на server в chroot позволит получить через него доступ только к файлам, которые мы скопировали в chroot окружение * [[Команда chroot]] === Изоляция сервисов в выделенном окружении === * [[https://ru.wikipedia.org/wiki/Песочница_(безопасность)|Песочница безопасность]] Сценарий: www хостинг * [[Технология LXC]], [[Технология jail]] * [[Сервис HTTP#Установка и запуск сервера Apache]] * Linux ([[Управление учетными записями в Linux#Перемещение учетных записей]]), FreeBSD ([[Управление учетными записями в FreeBSD#Перемещение учетных записей]]) ==== 3.4 Усиление системы с помощью специальных средств ==== === FreeBSD === * [[http://www.freebsd.org/doc/ru/books/handbook/securing-freebsd.html|Нandbook: Защита FreeBSD]] * [[http://www.openbsd.org/|OpenBSD - ОС ориентированная на безопасность]] === Linux GRSecurity === * [[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]] * [[https://youtu.be/-6aM7q27NbM|Видео урок: Использование GRSecurity]] ===== Модуль 4. Защита сервисов предприятия ===== ==== 4.1 Ограничения учетных записей пользователей сервисов ==== Сценарий: разворачиваем на server, MTA для домена server.corpX.un, IMAP без SSL. Учетные записи почтовых пользователей не должны иметь shell, предоставляющий командную строку * [[Сервис MTA#Настройка MTA]] * [[Управление учетными записями в Linux]], [[Управление учетными записями в FreeBSD]] * [[UA mail]] * [[Сервер dovecot]] * В linux ([[Управление учетными записями в Linux#Изменение атрибутов учетной записи]]) * В freebsd ([[Управление учетными записями в FreeBSD#Изменение атрибутов учетной записи]]) ==== 4.2 Скрытие баннеров сервисов ==== Сценарий: заменяем банеры сервисов SMTP, IMAP, FTP, HTTP, CIFS, SSH * Сервис SMTP ([[Сервис MTA#Сокрытие названия сервиса]]) * Сервис IMAP ([[Сервер dovecot#Сокрытие названия сервиса]]) * Сервис FTP ([[Сервис FTP#Сокрытие названия/версии сервиса]]) * Сервис HTTP ([[Сервис HTTP#Сокрытие версии сервиса]]) * Сервис CIFS ([[Файловый сервер SAMBA#Публичный каталог доступный на запись]], [[Файловый сервер SAMBA#Сокрытие названия/версии сервиса]]) * Сервис SSH ([[http://www.cyberciti.biz/faq/howto-ssh-server-hide-version-number-sshd_config/|OpenSSH Hide Version Number From Clients]]) ==== 4.3 Замена устаревших сервисов ==== Сценарий: для хостинга заменяем FTP на SFTP * [[Сервис SSH#SSH вместо FTP (SFTP)]] * [[Сервис HTTP#Использование домашних каталогов]] Сценарий: защита самописного web сервера от DoS * [[Сервис XINETD]] ==== 4.4 Шифрование трафика ==== === Использование самоподписанных цифровых сертификатов === Сценарий: замена сервиса HTTP на HTTPS на www * [[Пакет OpenSSL#Использование алгоритмов с открытым ключем]] * Синхронизируем время систем gate, server, lan ([[Сервис NTP]]) * [[Пакет OpenSSL#Создание самоподписанного сертификата]] * Сервис HTTPS ([[Сервис HTTP#Поддержка протокола HTTPS]]) === Использование PKI === Сценарий: - развертывание корпоративного CA (на lan) - замена IMAP на IMAPS (на server) - замена HTTP на HTTPS на lan (в клиенте добавлять сертификат CA в корневые центры сертификации) * [[Сервис HTTP#Установка и запуск сервера Apache]] * Создаем CA на lan ([[Пакет OpenSSL#Создание центра сертификации]]) * [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] для server * Сервис HTTPS ([[Сервис HTTP#Поддержка протокола HTTPS]]) * Cервиса IMAPS ([[Сервер dovecot#Использование сертификатов для шифрования трафика]]) * [[Пакет OpenSSL#Создание сертификата сервиса, подписанного CA]] для www ==== 4.5 Аутентификация и Авторизация при доступе к сервису ==== * [[Управление идентификацией в сетях UNIX и Windows]] * [[https://youtu.be/-fcJ8MkoLts|Видео урок: Использование одноразовых паролей OPIE]] * [[https://youtu.be/kXi1KXYy-NE|Видео урок: SSH SSO]] Сценарий: создание пользовательских сертификатов * [[Пакет OpenSSL#Создание пользовательского сертификата, подписанного CA]] * [[Пакет OpenSSL#Оформление сертификата и ключа в формате PKS#12 с парольной защитой]] Сценарий: использование пользовательских сертификатов для доступа по https на www * [[Сервис HTTP#Управление доступом к HTTP серверу на основе сертификатов]] * [[Сервис HTTP#Использование директивы Redirect]] * [[Сервис HTTP#CGI интерфейс сервера]] Сценарий: использование пользовательских сертификатов для доступа по imaps на server и для электронной подписи * Сервер dovecot ([[Сервер dovecot#Аутентификация на основе пользовательских сертификатов]]) ==== 4.6 Ограничение доступа к сетевым сервисам ==== === Статичное, с использованием специальных средств === Сценарий: разрешаем подключение к gate только из DMZ * [[Сервис Tcpwrap]] === Статичное, с использованием средств встроенных в сервис === * [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] * [[Сервис DNS#Ограничение доступа к DNS серверу]] * [[Сервис MTA#Настройка MTA на релеинг почты из LAN]] * [[Сервис HTTP#Управление доступом к HTTP серверу на основе сетевых адресов]] * [[Установка, настройка и запуск пакета SQUID]] === Адаптивное, с использование специальных средств === * [[Защита почты от вирусов и SPAMа]] * [[Антивирусная защита web трафика SQUID]] Сценарий: препятствуем попыткам сканирования системы server * [[Сервис Portsentry]] * [[https://youtu.be/6I0B3F179oE|Видео урок: Honeypot из tcpwrap и portsentry]] ==== 4.7 Шифрование контента ==== Сценарий: размещаем данные пользователей на шифрованном разделе для сервера SAMBA * Создаем раздел, без файловой системы ([[Управление файловыми системами в Linux#Добавление дисков в Ubuntu]], [[Управление файловыми системами в FreeBSD#Добавление дисков в FreeBSD]]) * [[Управление файловыми системами в Linux#Использование шифрованных разделов в Linux]], [[Управление файловыми системами в FreeBSD#Использование шифрованных разделов в FreeBSD]] * [[Файловый сервер SAMBA#Установка]] сервера SAMBA * [[Файловый сервер SAMBA#Публичный каталог доступный на запись]] * Убираем сервисы smbd и nmbd из автозагрузки ([[Управление сервисами в Linux]], [[Управление сервисами в FreeBSD]]) ==== 4.8 Специальные решения ==== Сценарий: защита LAN от посторонних сервисов DHCP * [[Материалы по Windows#DHCP, TFTP, DNS, SNTP и Syslog для Windows]] * [[Оборудование уровня 2 Cisco Catalyst#DHCP snooping]] * [[Сервис DHCP#Поиск и подавление посторонних DHCP серверов]] ===== Модуль 5. Защита сети предприятия ===== ==== 5.1 Пакетные фильтры ==== Сценарий: защита сервиса ssh на server от bruteforce * [[http://www.linux.org.ru/forum/security/1320671|еще один споcоб блокировать ssh bruteforce роботов]] * [[Сервис Firewall#Конфигурация для защиты от bruteforce]] (атакуем server через putty с host системы) ==== 5.2 Системы IDS и IPS ==== Проверять с windows клиента, переместив его в WAN * [[Сервис SNORT]] * [[Сервис SNORTSAM]] * [[Сервис BARNYARD2]] * [[Сервис Fail2ban]] ===== Модуль 6. Использование VPN для соединения сетей филиалов предприятия и удаленных пользователей ===== [[http://ru.wikipedia.org/wiki/VPN|Virtual Private Network — виртуальная частная сеть]] ==== 6.1 Использование сервиса SSH ==== === SSH вместо VPN (привязка к порту клиента) === Сценарий: используя доступность LAN с server осуществляем доступ по RDP в сеть LAN через учетную запись user1 системы server * Добавляем учетную запись user1 в linux ([[Управление учетными записями в Linux#Добавление учетной записи]]), в freebsd ([[Управление учетными записями в FreeBSD#Добавление учетной записи]]) * [[Сервис SSH#SSH вместо VPN (привязка к порту клиента)]] === SSH вместо VPN (привязка к порту сервера) === Сценарий: отключаем доступность LAN с server (и других систем, имеющих туда маршрут), осуществляем доступ по RDP в сеть LAN через учетную запись user1 системы server с использованием ssh соединения между lan и server * Настройка Firewall ([[Сервис Firewall#Конфигурация для шлюза WAN - LAN - DMZ]]) * Назначаем host системе на интерфейсе "VirtualBox Host-Only Network" ip address 192.168.100+X.20/24 и подключаемся putty к lan * [[Сервис SSH#SSH вместо VPN (привязка к порту сервера)]], использовать Bitvise SSH Client (Tunnelier) ==== 6.2 Пакет OpenVPN ==== Сценарий: требуется предоставить авторизованный доступ внешних пользователей к любым LAN сервисам компании, например - CIFS * [[Пакет OpenVPN]] * [[Пакет OpenVPN#Настройка client/server конфигурации]] * [[Пакет OpenSSL#Отзыв сертификатов]] Сценарий: требуется объединить сети филиалов * [[Пакет OpenVPN]] * [[Пакет OpenVPN#Настройка peer2peer конфигурации]] ===== Дополнительные материалы ===== * [[http://www.onlinepasswordgenerator.ru/|Генератор паролей]] * [[http://sectools.org/tag/crackers/|Top 125 Network Security Tools]] * [[http://www.opennet.ru/dev/alertmon/DoS_prevent.txt|Рекомендации по защите от DoS атак]] * [[https://www.linux.org.ru/news/security/11204691|Утилита для создания MitM-точек доступа: wifiphisher]] * [[http://www.vesti.ru/doc.html?id=2006216|Shellshock оставил беззащитным Интернет]]