В следующей статье предпринята попытка рассмотреть тему создания политик безопасности на примере брандмауэра и DNS. Его можно использовать в вашей компании целиком или в качестве модели для дальнейшего развития.
брандмауэр
1.Брандмауэр предназначен для повышения безопасности организации с помощью:
- Блокировать попытки несанкционированного доступа (контролировать и ограничивать доступ к внутренней сети).
- Проверка сетевого трафика на нескольких уровнях (m.in. брандмауэр осуществляет управление на основе IP-адресов, направления и состояния соединений, протоколов и приложений, отдельных пользователей).
- Создание зон безопасности и моделирование характеристик движения между ними.
- Скрыть внутреннюю организацию и структуру сети.
- Мониторинг зон безопасности для создания соответствующих сигналов тревоги.
- Собирайте журналы о событиях и предоставляйте возможности для создания статистики и отчетов.
2. В agd.com внешний трафик ограничен доступом к его общедоступному веб-сайту за пределами порта 443. Административная часть страницы доступна только из внутренней сети на порту 8080. Служба DNS доступна на порту 53. Кроме того, открыто внутрикорпоративное подключение к почтовому серверу по порту 110, порту 3306 для подключений к базе данных и соединению с портом 2020 к ssh для удаленного администрирования сервера.
3. Следующая процедура адресована сетевым администраторам и не должна раскрываться посторонним лицам:
- Подробный скрипт iptables является латентным и расположен в сейфе на 8-м этаже здания А. Используйте его при внесении изменений в конфигурацию брандмауэра. Главным администратором сети является лицо, уполномоченное на это.
Брандмауэр настроен с помощью скрипта для iptables, который выглядит следующим образом:
#!/бин/ш
##############################################################################
IPTABLES=iptables
PATH="/usr/sbin"
# Адрес сервера
СЕРВЕР="192.168.1.3"
# Адрес компьютера администратора
ADMIN="192.168.1.10"
# Адресное пространство нашего веб-сайта и карты, которую я поддерживаю
WEW_NET="192.168.1.0/24"
WEW_DEV="eth0"
# Адрес выхода - внешняя и служебная карта
ZEW_NET="0/0"
ZEW_DEV="eth1"
# Службы TCP, которые мы хотим передать
TCP_IN="ssl,dns" # 443, 53
TCP_OUT="ssl,dns" # 443, 53
# UDP-сервисы, которые проходят через
UDP_IN="443"
UDP_OUT=""
# ICMP услуги, которые мы хотим пройти
ICMP_IN=""
ICMP_OUT=""
#################################################################################
# Мы удаляем предыдущие правила
вход $IPTABLES -F
$IPTABLES-F ВПЕРЕД
ВЫХОД $IPTABLES -F
# Настройка политики по умолчанию
$IPTABLES -P ВХОДНОЕ ПАДЕНИЕ
$IPTABLES -P ВЫХОД ACCEPT
$IPTABLES -P ПРЯМОЕ ПАДЕНИЕ
# Сохраните весь наш трафик в журналах
$IPTABLES -A ВХОД -j LOG -m предел --предел 15/hor
$IPTABLES -A ВЫХОД -j LOG -m предел --предел 15/час
$IPTABLES -A FORWARD -j LOG -m предел --предел 15/час
# Загрузить возможность следования по ссылкам
ip_conntarck modprobe
ip_conntarck_ftp modprobe
# Отключение ответов на пинги
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Защита от атак смурфов
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Мы ставим на защиту от ICMP ошибок связи
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Включает ведение журнала странных пакетов (подмененные. источник маршрутизируется. перенаправления)
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
# Мы не принимаем IP-датаграмму с опцией «исходный маршрут»
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
# Мы не принимаем пакеты ICMP redict, которые могут изменить наши платы маршрутизации
echo "0" /proc/sys/net/ipv4/conf/all/accept_redirects
# Все карты не будут использоваться пакетами от посева, кроме тех, которые
# из массива маршрутизации
echo "1" /proc/sys/net/ipv4/conf/all/rp_filter
# Мы разрешаем пакетам работать вокруг нашего компьютера
# то есть разблокировать petle return LOOPBACK
$IPTABLES -A ВХОД -i lo -j ПРИНЯТЬ
$IPTABLES -A ВЫХОД -o lo -j ACCEPT
# Мы разрешаем использование протоколов в пассивном режиме on
$IPTABLES -A INPUT -m state --state УСТАНОВЛЕНО, RELATED -j ACCEPT
# Разблокировка сервисов на сервере для других, поступающих извне
#$IPTABLES -A ВХОД -p tcp -s 0/0 --dport 443 -j ACCEPT
#$IPTABLES -A ВХОД -p udp -s 0/0 --dport 443 -j ACCEPT
$IPTABLES -A ВХОД -p tcp -s 0/0 --sport 443 -j ACCEPT
$IPTABLES -A ВХОД -p udp -s 0/0 --sport 443 -j ACCEPT
# Разблокировка канализационных услуг для заданного IP-адреса - COMP см. выше определения TCP_IN, UDP_IN
#$IPTABLES -A ВХОД -p tcp -s $KOMP -m многопортовый --dport $TCP_IN -j ACCEPT # протокол tcp
#$IPTABLES -A INPUT -p udp -s $KOMP -m multiport --dport $UDP_IN -j ACCEPT # протокол udp
#$IPTABLES -A INPUT -p udp -s $KOMP --dport 137:139 -j ACCEPT # протокол udp
# Мы разрешаем все с заданного IP-адреса - администрирование с этого адреса J
$IPTABLES -A INPUT -s $KOMP -j ACCEPT #, поэтому вышеуказанные правила отключены
# доступ к DNS
$IPTABLES -A ВХОД -p tcp -s 0/0 --sport 53 -d $SERWER -j ACCEPT
$IPTABLES -A ВХОД -p udp -s 0/0 --спорт 53 -d $SERWER -j ACCEPT
#$IPTABLES -A ВЫВОД -p tcp -s $SERWER -d 0/0 --dport 53 -j ACCEPT
#$IPTABLES -A ВЫХОД -p udp -s $SERWER -d 0/0 --dport 53 -j ACCEPT
# Мы закрываем пакеты с адресом рождения, установленным на наш
$IPTABLES -A INPUT -i $WEW_DEV -s $SERWER -j DROP # Наземная атака
# Пакеты с нехутемулированными, многоадресными и зарезервированными адресами
$IPTABLES -A INPUT -i $WEW_DEV -s 10.0.0.0/8 -j DROP #class A
$IPTABLES -A INPUT -i $WEW_DEV -s 172.16.0.0/12 -j DROP #class B
# $IPTABLES -A INPUT -i $WEW_DEV -s 192.168.0.0/16 -j DROP #class C - это то, что мы используем
$IPTABLES -A INPUT -i $WEW_DEV -s 224.0.0.0/4 -j DROP #multicast
$IPTABLES -A INPUT -i $WEW_DEV -d 224.0.0.0/4 -j DROP #multicast
$IPTABLES -A INPUT -i $WEW_DEV -s 240.0.0.0/5 -j DROP #reserved
$IPTABLES -A INPUT -i $WEW_DEV -s 127.0.0.0/5 -j DROP #lo
- Мы сохраняем этот скрипт с 700 правами доступа и запускаем на сервере.
- Затем, при запуске сценария брандмауэра, включается хранилище журналов. Для этого введите следующий код в конце файла /etc/syslog.conf:
*.* /dev/tty12
*.* /var/log/firewall
- Перезапустите демон syslogd:
# killall -HUP syslogd
- Отныне в файле /var/log/firwall (также на консоли 12 – alt +12)у нас будут все системные журналы.
4. Изменения в конфигурацию брандмауэра могут быть внесены только главным сетевым администратором. Это делается путем запроса 43 загрузок от сетевых администраторов, которые должны быть одобрены его главным ИТ-менеджером.
5. Изменения в конфигурации брандмауэра могут быть запрошены только менеджерами отдельных ИТ-отделов.
6. Если брандмауэр зависает, сетевые администраторы несут ответственность за сброс брандмауэра или, в крайнем случае, за скачок напряжения на резервном сервере.
7. Не вносите изменения в конфигурацию брандмауэра на основе непроверенного запроса.
8. Любые обновления операционной системы и используемых приложений должны быть установлены сразу же после их появления. Если это утверждение мешает работе критически важных производственных систем, по возможности следует обновлять их.
9. Проверка настроек должна проверяться ежеквартально сетевыми администраторами.
- Это можно сделать с помощью инструмента nmap из команды внешней сети:
nmap -p 1-65535 -T4 -A -v firma.com -Pn
- Результат должен быть следующим:
Отчет о сканировании Nmap для agd.com (x.x.x.x)
Хост работает (задержка 0.00047s).
Не показано: 65533 фильтрованных портов
ВЕРСИЯ СЛУЖБЫ СОСТОЯНИЯ ПОРТА
53/tcp открыть TCPwrapped
443/tcp открыть TCPwrapped
- В случае несоответствия сообщите об этом факте основному сетевому администратору, который несет ответственность за причину уязвимости.
DNS
1. Безопасность конфигурации DNS основана на трех основных принципах:
- Сервер должен соответствовать любому, у кого есть только домен, который они поддерживают;
- Отвечайте на каждый вопрос ТОЛЬКО в сети, которую вы поддерживаете;
- Позволяет переносить домены ТОЛЬКО на подчиненные серверы;
2. Изменения конфигурации DNS могут быть внесены только администратором корневой сети. Это делается путем запроса 45 загрузок от сетевых администраторов, которые должны быть одобрены главным ИТ-менеджером.
3. Только руководители отдельных ИТ-отделов могут запрашивать изменения в конфигурации DNS.
4. Не вносите изменения в конфигурацию брандмауэра на основе непроверенного запроса.
5. Если DNS зависает, сетевые администраторы несут ответственность за сброс сети или, в крайнем случае, за скачок напряжения на резервном сервере.
6. Любые обновления операционной системы и используемых приложений должны быть установлены сразу же после их появления. Если это утверждение мешает работе критически важных производственных систем, по возможности следует обновлять их.
7. Следующая конфигурация адресована сетевым администраторам и не должна раскрываться посторонним лицам:
В dns agd.com основан на BIND dns и выглядит следующим образом:
- Перед разделом глобальных параметров файла named.conf.options необходимо определить, кто может запрашивать сервер для любого домена:
- Далее вам нужно настроить параметры для тех, кто может запрашивать наш домен:
- Особое внимание следует уделить Директиве о разрешении передачи, которая может раскрывать все записи в нашем домене. Если у нас нет резервных серверов, мы блокируем эту опцию, как в записи выше.
- Следующим шагом является проверка правильности конфигурации.
- Для этого мы можем использовать инструмент для копания.
- Мы проверяем блокировку опроса нашего сервера на наличие других адресов, делая это из другой сети:
копать @ip_naszego_serwera jakieś_inne_ip
- результат действия должен быть аналогичен следующему:
<>> DiG 9.3.2 <> > @agd.com wp.pl A
; (Найден 1 сервер)
;; глобальные параметры: printcmd
;; Получил ответ:
;; ->>ЗАГОЛОВОК<- opcode: QUERY, status: REFUSED, id: 65151
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
- Проверяем возможность переноса домена через внешний сервер:
копать agd.com AXFR
- Результат действия должен быть аналогичен следующему:
<>> DiG 9.3.2 <> > agd.com AXFR
;; глобальные параметры: printcmd
; Перевод не удался.
- В случае несоответствия сообщите об этом факте основному сетевому администратору, который несет ответственность за причину уязвимости.