====== Обеспечение безопасности 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 оставил беззащитным Интернет]]