Больше всего опасений (оправданных) по поводу рисков для пользователей вызывает безопасность систем на уровне сети. По понятной причине - множество сетевых систем очень сложны и используются как "черный ящик", и любые ошибки в работе этих систем (например из-за неправильной настройки) могут вызвать глобальные проблемы как для отдельных людей, так и для больших компаний. Существует множество "дверей" для получения доступа к приватным данным команды. Существует популярное высказывание, что идеальная безопасность не гарантируется даже если посадить себя в клетку Фарадея и отключить любые интерфейсы, соединяющие систему с Интернетом.
Однако очевидно, что совсем отгородиться от внешнего мира невозможно. Различными способами мы все равно пытаемся получить удаленный доступ к различным компьютерам и системам через сетевые соединения. Поэтому всегда надо рассматривать возможность, что будут посторонние попытки нарушить защиту и получить несанкционированный доступ. Здесь вступает в игру очень интересная и важная концепция, называемая DMZ.
DMZ (Demilitarized Zone, демилитаризованная зона, ДМЗ) это "специальная", открыто предоставленная для внешнего доступа, специально предназначенная для приема на себя внешних атак со стороны кибер-криминала. Это либо эмулируемая, либо реально существующая сеть из серверов, таких как серверы почты (email), преобразования сетевых имен в IP (DNS), веб-серверы и т. д.; нарушение работы этих "серверов" не представляет никакой опасности. Для реализации такой возможности вам потребуются системы наподобие Linux (также существуют специальные приложения, как программные, так и аппаратные, наподобие Cisco PIX), где вы сможете сконфигурировать окружение DMZ.
[Что такое сервер DMZ]
DMZ-сервера это службы, которые обычно доступны через сеть DMZ(*). Сеть DMZ работает как буферная зона между публичным Интернетом и приватной внутренней сетью. Можно представить себе как маленький, управляемый островок между диким Интернетом и локальной сетью вашей компании.
Примечание (*): у простых домашних роутеров, таких как TP-Link [2], под ДМЗ понимают просто прозрачное перенаправление ВСЕХ внешних обращений к публичному IP на один внутренний IP-адрес, КРОМЕ ТЕХ обращений, для которых настроены отдельные NAT-правила (см. далее "Маленькие роутеры тоже предлагают DMZ?").
Что это нам дает?
Изоляция: сеть DMZ изолирована от внутренней сети LAN с помощью сетевых экранов (firewall, см. рисунок ниже). Это значительно повышает уровень безопасности. Если хакер сможет воспользоваться уязвимостью сервера, который находится в DMZ, он будет отвлечен на него, и получить доступ к реальным серверам внутренней локальной сети (где находятся ценные данные) ему будет намного сложнее. Вы можете получить такую же степень изоляции, когда используете выделенные сервера для хостинга.
Публично доступные службы: DMZ можно представить снаружи как реально работающую публичную сеть. Здесь могут находиться сервера, к которым можно получить доступ через Интернет, такие как web (HTTPS или HTTP), email (SMTP, POP3, IMAP), DNS, FTP или другие.
Контролируемый доступ: хотя сеть DMZ доступна для Интернета, этот доступ жестко контролируется. Сетевые экраны хорошо фильтруют входящий и исходящий трафик, разрешая только авторизованные соединения (обычно firewall работает по принципу "запрещено все, за исключением того, что разрешено").
Рис. 1. Пример организации сетевой инфраструктуры с использованием DMZ.
Хорошими кандидатами для помещения в DMZ являются сервисы, которые чаще всего работают с внешними запросами:
– Серверы Web-сайта. – Почтовые серверы (Email). – Серверы DNS. – Серверы FTP. – Серверы VPN (в зависимости от конфигурации).
[Достоинства конфигурации DMZ]
Повышенная безопасность: с помощью изоляции обращенных в публичную сеть сервисов для атакующих намного сложнее проникнуть во внутреннюю сеть. Для большей безопасности шифрование SSL-сертификатов на вашем домене является положительной мерой для реализации.
Улучшение производительности: трафик внутренней сети отделен от трафика Интернет, что может помочь повысить быстродействие сети для внутренних пользователей.
Гибкость: DMZ предоставляет сетевое пространство для хостинга обращенных во внешний мир сервисов, без внесения рисков компроментации для внутренней безопасности. Облачные серверы хостинга дают отличный пример подобной гибкости.
Самое плохое, что может произойти, это когда нарушитель из внешней сети (сеть на интерфейсе WAN роутера на рис. 1) сумеет получить доступ к компьютерам внутренней сети LAN, и вероятно нам хотелось бы предпринять защитные меры. Это как раз тот случай, когда DMZ максимально препятствует нарушителю, потому что на его пути стоит цепочка из двух настраиваемых файерволов. Причем к серверам в DMZ легко получить доступ как для внешних пользователей, так и для внутренних.
Для реализации схемы DMZ, подобной рис. 1, понадобится брандмауэр или специальный роутер с такими возможностями, такой как Cisco ASA5540 [3], PIX-501, PIX-515 и т. п. Однако это требует определенных инвестиций и не всегда достижимо по объективным причинам. К счастью, существует возможность сделать DMZ на основе компьютера с тремя сетевыми интерфейсами, на котором установлена Linux. Получится такая же конфигурация, как на рис. 1:
• Сетевой интерфейс с именем eth0, на котором настроены маска 255.255.255.0 и IP 192.168.1.2, подключен к роутеру, через который осуществляются доступ во внешнюю публичную сеть (например Интернет). • Сетевой интерфейс eth1 с маской 255.255.255.0 и IP 192.168.2.1 подключен к DMZ, эта та область сети, где находятся публично доступные серверы, и которая будет принимать на себя специальные риски. • Сетевой интерфейс eth2 с маской 255.255.255.0 и IP 192.168.3.1 подключен к внутренней сети LAN. • Файерволы (оранжевые стенки на рис. 1) можно реализовать с помощь правил фильтрации трафика iptables.
С такой понятной и простой структурой сети сразу становится ясно, что необходимо сделать для организации DMZ. Цель наших настроек следующая:
• Запросы на определенные порты к интерфейсу eth0 будут перенаправлены к eth1 (DMZ). • Трафик, поступающий от интерфейса eth0 к интерфейсу eth1 можно пропускать прозрачно, без ограничений. • Трафик, поступающий от интерфейса eth1 к интерфейсу eth0 должен быть разрешен только если это ответы на запросы к серверам в DMZ. • Трафик, поступающий от интерфейса eth2 к интерфейсу eth1 также можно пропускать прозрачно, без ограничений. • Трафик, поступающий от DMZ (eth1) в локальную сеть (eth2) должен быть разрешен только если это ответы на запросы от пользователей внутренней локальной сети.
Следует отметить, что эта конфигурация будет предназначена для DMZ, которая имеет веб-сервер и DNS-сервер, то есть она будет готова перенаправить запросы на порты 53 и 80. Сценарий, о котором идет речь, можно назвать DMZ.sh, который настраивает iptables:
#!/bin/bash
# Основные правила:
Echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
iptables -A OUTPUT -j ACCEPT
# Правила перенаправления. Мы хотим позволить весь трафик # от ETH0 в ETH1:
iptables -A FORWARD -i eth0 -o eth1 -s state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешим прохождению только ответов на запросы от ETH1 к ETH0:
iptables -A FORWARD -i eth1 -o eth0 -s state --state ESTABLISHED,RELATED -j ACCEPT
# Позволим пропускать весь трафик от ETH2 к ETH1:
iptables -A FORWARD -i eth2 -o eth1 -s state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# Разрешим прохождению только ответов на запросы от ETH1 к ETH2:
iptables -A FORWARD -i eth1 -o eth2 -s state --state ESTABLISHED,RELATED -j ACCEPT
# Приоритеты для перенаправлений из внешней сети портов 53 и 80, TCP и UDP:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 53 -j DNAT --to 192.168.2.4:53
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to 192.168.2.4:53
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.5:80
С этим маленьким скриптом у нас получилось оборудование, готовое действовать в качестве брандмауэра с организованной зоной DMZ, подключенной к интерфейсу eth1. Как видите, создание рабочих сред такого типа не является чрезмерно сложным. Это просто требует знания определенных основ IPTables [4, 5].
Для реализации DMZ Linux подойдут многие дистрибутивы, выбор зависит от ваших потребностей и квалификации. Вот популярные варианты выбора:
– Ubuntu VPS Server. – CentOS/Red Hat Enterprise Linux (RHEL). – Debian. – openSUSE.
[Маленькие роутеры тоже предлагают DMZ?]
Как правило простые маршрутизаторы наподобие D-Link или TP-Link [6] не могут реализовать схему, подобную рис. 1, из-за недостатка внутренних ресурсов и интерфейсов маршрутизации. Однако в их прошивке есть иногда упоминание об DMZ, но под этим обычно следует понимать просто прозрачное перенаправление ВСЕХ внешних обращений к публичному IP на один внутренний IP-адрес, КРОМЕ ТЕХ обращений, для которых настроены отдельные NAT-правила.
Например, обращения к порту 22 WAN (ssh) могут приходить на LAN 192.168.1.2 порт 22, а обращения к порту 80 (HTTP) могут приходить на LAN 192.168.1.3 порт 80 (или любой другой указанный порт, например 8080). А все остальные внешние подключения (любые) автоматически перенаправляются на LAN 192.168.1.1. Этот хост как бы и представляет собой "ДМЗ", и он может как отсутствовать в сети, так и реально выполнять свои сетевые функции.
[Ссылки]
1. How to Set Up a DMZ with Linux? site:milesweb.in. 2. What is a DMZ and how to configure DMZ host site:tp-link.com. 3. Как посмотреть на ASA5540, под каким публичным IP подконнектился VPN-клиент. 4. Установка iptables на Debian 11. 5. Добавление правил iptables для отражения атак на сервер. 6. What is a DMZ and how to configure DMZ host. |