К сожалению, нет такого сценария, который я когда-либо видел, который мог бы работать в режиме обучения или пассивном режиме, регистрируя всю вашу сетевую нагрузку, получая его результаты и генерируя фактический брандмауэр, используя iptables
из его журналов.
Лучше всего начать с простого и постоянно добавлять различные части, когда вы начинаете полностью понимать, какие услуги предоставляет ваша система. Вам нужно будет использовать инструменты, например, netstat
чтобы увидеть, какие порты используются для различных служб, которые вы размещаете, а также какие IP-адреса обращаются к ним.
$ sudo netstat -tlpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:890 0.0.0.0:* LISTEN 26149/ypbind
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 127.0.0.1:2207 0.0.0.0:* LISTEN 26226/python
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN 26221/./hpiod
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 26237/snmpd
tcp 0 0 0.0.0.0:809 0.0.0.0:* LISTEN 26067/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 26321/smbd
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 26292/sendmail
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 26038/portmap
tcp 0 0 0.0.0.0:35604 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 26249/sshd
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 26257/cupsd
tcp 0 0 :::22 :::* LISTEN 26249/sshd
tcp 0 0 :::631 :::* LISTEN 26257/cupsd
ПРИМЕЧАНИЕ. В приведенном выше примере вы можете увидеть, какие службы у меня работают на сервере, который принимает соединения TCP, т.е. они «прослушивают» соединения через различные порты.
Разумно начинать с таких вещей, как SSH (порт 22) и HTTP (порт 80), если они типичны для вашей системы, поэтому я бы массово выполнял все эти типы служб одновременно. Для других сервисов, таких как LDAP или NIS, вы можете захотеть сделать это более контролируемым образом, следя за тем, чтобы вещи не ломались при их представлении.
Такие инструменты, как FireHOL , Firewall Builder (fwbuilder) и eztables могут быть полезны при атаке на этот проект, поскольку они обеспечивают хороший уровень абстракции от необходимости создавать собственные iptable
правила вручную, что может быть сложно.
FireHOL
FireHOL - это язык (и программа для его запуска), который создает безопасные межсетевые экраны с сохранением состояния любой сложности из простых для понимания, удобочитаемых конфигураций.
пример
transparent_squid 8080 "squid root" inface eth0
interface eth0 mylan
policy accept
interface ppp+ internet
server smtp accept
server http accept
server ftp accept
server ssh accept src example.firehol.org
client all accept
router mylan2internet inface eth0 outface ppp+
masquerade
route all accept
fwbuilder
Fwbuilder - это уникальный графический инструмент брандмауэра, который позволяет пользователю создавать объекты, а затем перетаскивать эти объекты в брандмауэры, чтобы создать мощную систему безопасности для одного ПК или сети ПК. Fwbuilder поддерживает широкий спектр брандмауэров (Cisco ASA / PIX, Linux iptables, ipfilter FreeBSD, pf OpenBSD и т. Д.), Поэтому его правила могут быть развернуты на нескольких платформах. Давайте рассмотрим использование Fwbuilder в Linux, которое может стать пожизненным делом с мощной системой безопасности.
пример
eztables
Eztables позволяет быстро настроить брандмауэр, даже не касаясь iptables. Синтаксис правил брандмауэра разработан так, чтобы его было легко читать и применять.
Вот как вы разрешаете всему интернету доступ к вашему веб-серверу через TCP-порт 80:
allow_in any $eth0 any 80/tcp
Eztables разработан, чтобы быть простым, но мощным. Неважно, хотите ли вы защитить свой ноутбук, настраиваете ли вы домашний маршрутизатор или создаете брандмауэр компании.
Использование Fail2Ban
При наличии элементарного iptables
брандмауэра вы, вероятно, захотите дополнить его с помощью такого инструмента, как Fail2Ban .
выдержка
Fail2ban сканирует файлы журналов (например, / var / log / apache / error_log) и блокирует IP-адреса, которые показывают вредоносные признаки - слишком много сбоев паролей, поиск эксплойтов и т. Д. Обычно Fail2Ban затем используется для обновления правил брандмауэра для отклонения IP-адресов в течение определенного периода времени, хотя любое другое произвольное действие (например, отправка электронного письма) также может быть настроено. Из коробки Fail2Ban поставляется с фильтрами для различных сервисов (apache, courier, ssh и т. Д.).
Использование таких инструментов поможет ограничить воздействие, которое ваша система должна выдержать, пока вы продолжаете укреплять ее. Даже после того, как вы по-настоящему убеждены в том, что ваша система защищена, вы все равно можете продолжать использовать Fail2Ban как часть ваших мер безопасности.
Ссылки