IPTables - настраиваем файрвол

Самая неоднозначная операционная система
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

IPTables - настраиваем файрвол

Сообщение RomA »

Самая загадочная и неочевидная часть линукса. Но в силу явной необходимости всёравно прийдётся разбираться с этим зверем. А необходимость следующая:
- так или иначе, но защищать своё детище надо (угонят, украдут, накрутят денег)
- атаковать могут не только вас, но и через вас (почта, руткиты, тот же ntp)
- да и просто это правила хорошего тона, как установка дверей в квартире

Самая безопасная концепция - это когда всё закрыто, а то что нужно - открывается. С одной стороны это значит что вы потратите меньше сил на кажду программу отдельно, так как закрыто всё сразу, но есть и другая сторона медали - если вдруг что-то не будет работать, вы всегда будите в первою очередь грешить на фарвол :-)

Но всё же я воспользуюсь данным подходом, ибо он позволяет спокойней спать по ночам, когда просыпается мафия)))

Воспользовавшись советом с этого http://help.ubuntu.ru/wiki/iptables сайта я начал конфигурировать файрвол и на сегодня он у меня содержит такие правила (реальные мои IP адреса заменены русскими словами в капсе, так что будьте внимательны)
# remote.ssh
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 22 -j ACCEPT
# zabbix
-A INPUT -p tcp -s ИП_АДРЕС_ВАШЕГО_ЗАББИКССЕРВЕРА --dport 10050 -m state --state NEW,ESTABLISHED -j ACCEPT
# Разрешаем связанные и установленые соединения
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем служебный icmp-трафик
-A INPUT -p icmp -j ACCEPT
# Разрешаем доверенный трафик на интерфейс loopback
-A INPUT -i lo -j ACCEPT
# Сюда можно вставлять дополнительные правила для цепочки INPUT
# Запрещаем всё остальное для INPUT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
# Порядок и смысл правил для цепочек FORWARD и OUTPUT аналогичен INPUT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
заношу я эти правила в файл /etc/sysconfig/iptables сразу под секцию :OUTPUT ACCEPT и применяю вот такой командой

Код: Выделить всё

# iptables-restore /etc/sysconfig/iptables
Для офистки файрвола прекрасно подходит вот такая команда

Код: Выделить всё

iptables -F
а для просмотра действующих правил вот такая

Код: Выделить всё

iptables -L
По мимо IPv4 у меня на сервере есть IP адрес и версии6, который по идее тоже надо как-то защищать. Потому для него я применил те же самые базовые настройки. В файл /etc/sysconfig/ip6tables так же после секции :OUTPUT ACCEPT вписал следующее
# Разрешаем связанные и установленые соединения
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Разрешаем служебный icmp-трафик
-A INPUT -p ipv6-icmp -j ACCEPT
# Разрешаем доверенный трафик на интерфейс loopback
-A INPUT -i lo -j ACCEPT
# Сюда можно вставлять дополнительные правила для цепочки INPUT
# Запрещаем всё остальное для INPUT
-A INPUT -j REJECT --reject-with icmp6-adm-prohibited
# Порядок и смысл правил для цепочек FORWARD и OUTPUT аналогичен INPUT
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p ipv6-icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp6-adm-prohibited
работать с ним так же как и с 4 версией, но просто подставляя 6 после букв IP, например

Код: Выделить всё

# ip6tables-restore /etc/sysconfig/ip6tables

Код: Выделить всё

ip6tables -F

Код: Выделить всё

ip6tables -L
Ответить