Инструменты пользователя

Инструменты сайта


пример_рабочего_конфига_iptables

**Это старая версия документа!**

*filter

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:OUTPUT DROP [0:0]

-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,ACK -j DROP # (1*)

-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN FIN,SYN -j DROP #

-A INPUT -p tcp -m tcp –tcp-flags SYN,RST SYN,RST -j DROP #

-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,PSH,URG -j DROP #резать пакеты с

-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN -j DROP #указанными флагами

-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP #

-A INPUT -p tcp -m tcp –tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP #

-A INPUT -p tcp -m tcp –dport 113 -j DROP

-A INPUT -i lo -j ACCEPT

-A INPUT -m state –state INVALID -j DROP

-A INPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT # (2*)

-A INPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT #

-A INPUT -s * -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT

-A INPUT -s -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT -A INPUT -s */32 -p tcp -m state –state NEW -m tcp –dport 10050 -j ACCEPT # доступ к zabbix -A INPUT -s */32 -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT # ssh -A INPUT -s /32 -p tcp -m state –state NEW -m tcp –dport 10050 -j ACCEPT

-A INPUT -s */32 -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT # https -A INPUT -s /32 -p tcp -m state –state NEW -j ACCEPT

-A INPUT -s /24 -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT

-A INPUT -s */24 -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT

-A INPUT -s /24 -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT

-A INPUT -s */24 -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT -A INPUT -s /24 -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT -A INPUT -s */24 -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT -A INPUT -s /32 -p tcp -m state –state NEW -m tcp –dport 9102 -j ACCEPT # опять zabbix -A INPUT -p tcp -m state –state NEW -m tcp –dport 113 -j DROP # (3*)ident -A INPUT -p udp -m udp –dport 137 -j DROP # широковещательный адресс Microsoft, NetBIOS -A INPUT -p udp -m udp –dport 138 -j DROP # -A INPUT -p icmp -m icmp –icmp-type 8 -m state –state NEW,RELATED,ESTABLISHED -j ACCEPT # icmp 8 bit -A INPUT -p tcp -m limit –limit 15/min -j LOG –log-prefix «iptables INPUT denied: » # лимит и -A INPUT -p udp -m limit –limit 15/min -j LOG –log-prefix «iptables_all INPUT denied: » # логирование -A OUTPUT -m state –state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p tcp -m tcp –tcp-flags ACK PSH -j DROP -A OUTPUT -m state –state INVALID -j DROP -A OUTPUT -p tcp -m state –state NEW -m tcp –dport 80 -j ACCEPT -A OUTPUT -p tcp -m state –state NEW -m tcp –dport 443 -j ACCEPT -A OUTPUT -d */32 -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT -A OUTPUT -p udp -m state –state NEW -m udp –dport 53 -j ACCEPT -A OUTPUT -p udp -m state –state NEW -m udp –dport 514 -j ACCEPT #(4*) -A OUTPUT -d * -p udp -m state –state NEW -m udp –dport 1514 -j ACCEPT #(5*)

-A OUTPUT -p udp -m state –state NEW -m udp –dport 123 -j ACCEPT #(6*)

-A OUTPUT -p tcp -m state –state NEW -m tcp –dport 25 -j ACCEPT

-A OUTPUT -p tcp -m state –state NEW -m tcp –dport 1521 -j ACCEPT

-A OUTPUT -p tcp -m state –state NEW -m tcp –dport 995 -j ACCEPT #(7*)

-A OUTPUT -p tcp -m state –state NEW -m tcp –dport 10051 -j ACCEPT

-A OUTPUT -d /32 -p tcp -m state –state NEW -m tcp –dport 9103 -j ACCEPT

-A OUTPUT -p icmp -m icmp –icmp-type 8 -m state –state NEW,RELATED,ESTABLISHED -j ACCEPT

-A OUTPUT -p tcp -m limit –limit 15/min -j LOG –log-prefix «iptables_tcp OUTPUT denied: »

-A OUTPUT -p udp -m limit –limit 15/min -j LOG –log-prefix «iptables_udp OUTPUT denied: »

COMMIT

\\1* - DROP TCP пакетов с данными флагами позволяет защититься от сканирования. (примечание. спросите почему не REJECT ? ведь отклонение тоже вроде как защищает ! А вот ничего подобного, отклонение принимает пакеты и отклоняет их, давая потенциальному взломщику/ботнету/конкуренту собрать фингерпринты с ваших портов и получить сведения о ваших сервисах в сети и что конкретно у вас фильтруется. так что лучше выставить значение DROP, тем самым «притвориться мёртвым», это затруднит сканирование и позволит немного запутать человека или бота на атакующем хосте) \\2* - открываем доступ для внешней среды, разрешаем входящие для http и https \\3* - с точки зрения безопасности, ident лучше отрубать, про identd можно будет написать отдельную статью, так как правильная настройка этого протокола сводится к массе подводных камней и особенностей, так как содержит парочку критических и средних уязвимостей \\4* - разрешаем «исходящим» выполнять удалённые shell команды на нашем удалённом web-сервере \\5* - разрешаем «жителям одной из нашей подсети» шифрованный порт для LOG-сервера OSSEC \\6* - ntp он и в Африке ntp. куда же нам без него :) \\7* - pop3 через ssl, «безопасная почта»

Вообще тут можно ещё многое написать, но я решил сделать пометки для более-менее важного. там где вы видите /24 и т.п. значения, нужно вписывать доверенные подсети своей локальной, либо удалённой среды, так как в разных подсетях работают разные службы, например саппорт и т.п.

Это конечно не совсем по стандарту PCI DSS, но позволяет не плохо защитить своей сервер в большой структуре.

Конфиг взят из одного «полубоевого веб-сервера» поэтому никаких остальных сведений и подробностей я вам о нём не скажу. Можете и не просить, ну разве что попытками соц.инженерии попытаться вытянуть =)

пример_рабочего_конфига_iptables.1378216121.txt.gz · Последнее изменение: 2013/09/03 17:48 (внешнее изменение)

DokuWiki Appliance - Powered by TurnKey Linux