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

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


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

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
пример_рабочего_конфига_iptables [2013/09/03 12:02]
81.222.241.194 создано
пример_рабочего_конфига_iptables [2013/09/04 00:23] (текущий)
Строка 1: Строка 1:
 *filter *filter
 +
 :INPUT DROP [0:0] :INPUT DROP [0:0]
 +
 :FORWARD DROP [0:0] :FORWARD DROP [0:0]
 +
 :OUTPUT DROP [0:0] :OUTPUT DROP [0:0]
 +
 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -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,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 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 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,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 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 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 --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 -p tcp -m tcp --dport 113 -j DROP
 +
 -A INPUT -i lo -j ACCEPT -A INPUT -i lo -j ACCEPT
 +
 -A INPUT -m state --state INVALID -j DROP -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 443 -j ACCEPT                           # (2) 
 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT                            # -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 111111111 -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 111111111 -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 + 
--A INPUT -s ***********/32 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT      # https +-A INPUT -s 111111111 -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT      # доступ к zabbix 
--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 111111111 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT         # ssh 
--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 111111111 -p tcp -m state --state NEW -m tcp --dport 10050 -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 111111111 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT      # https 
--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 -s 111111111 -p tcp -m state --state NEW -j ACCEPT 
--A INPUT -p tcp -m state --state NEW -m tcp --dport 113 -j DROP        # (3*)ident+ 
 +-A INPUT -s 1111111111 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
 + 
 +-A INPUT -s 1111111111 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT 
 + 
 +-A INPUT -s 1111111111 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT 
 + 
 +-A INPUT -s 111111111 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
 + 
 +-A INPUT -s 1111111111 -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT 
 + 
 +-A INPUT -s 1111111111 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
 + 
 +-A INPUT -s 1111111111 -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 137 -j DROP         # широковещательный адресс Microsoft, NetBIOS
 +
 -A INPUT -p udp -m udp --dport 138 -j DROP         # -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 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 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 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 -m state --state RELATED,ESTABLISHED -j ACCEPT
 +
 -A OUTPUT -o lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT
 +
 -A OUTPUT -p tcp -m tcp --tcp-flags ACK PSH -j DROP -A OUTPUT -p tcp -m tcp --tcp-flags ACK PSH -j DROP
 +
 -A OUTPUT -m state --state INVALID -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 80 -j ACCEPT
 +
 -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 443 -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 -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 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 514 -j ACCEPT #(4) 
--A OUTPUT -p udp -m state --state NEW -m udp --dport 123 -j ACCEPT    #(6*)+ 
 +-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 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 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 995 -j ACCEPT   #(7) 
 -A OUTPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT -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 -d 111111111 -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 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 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: " -A OUTPUT -p udp -m limit --limit 15/min -j LOG --log-prefix "iptables_udp OUTPUT denied: "
 +
 COMMIT COMMIT
  
-1- DROP TCP пакетов с данными флагами позволяет защититься от сканирования. (примечание. спросите почему не REJECT ? ведь отклонение тоже вроде как защищает ! А вот ничего подобного, отклонение принимает пакеты и отклоняет их, давая потенциальному взломщику/ботнету/конкуренту собрать фингерпринты с ваших портов и получить сведения о ваших сервисах в сети и что конкретно у вас фильтруется. так что лучше выставить значение DROP, тем самым "притвориться мёртвым", это затруднит сканирование и позволит немного запутать человека или бота на атакующем хосте)  +Применяем настройки iptables-restore < /etc/firewall.rules  
-2- открываем доступ для внешней среды, разрешаем входящие для http и https + 
-3- с точки зрения безопасности, ident лучше отрубать, про identd можно будет написать отдельную статью, так как правильная настройка этого протокола сводится к массе подводных камней и особенностей, так как содержит парочку критических и средних уязвимостей  +И пишем автозапуск, создаём файл firewall в корне /etc/network/if-pre-up.d/ 
-4- разрешаем "исходящим" выполнять удалённые shell команды на нашем удалённом web-сервере +Содержание:  
-5- разрешаем "жителям одной из нашей подсети" шифрованный порт для LOG-сервера OSSEC + 
-6- ntp он и в Африке ntp. куда же нам без него :) +#!/bin/bash 
-7- pop3 через ssl, "безопасная почта"+ 
 +/sbin/iptables-restore < /etc/firewall.rules   
 + 
 + 
 +1 - DROP TCP пакетов с данными флагами позволяет защититься от сканирования. (примечание. спросите почему не REJECT ? ведь отклонение тоже вроде как защищает ! А вот ничего подобного, отклонение принимает пакеты и отклоняет их, давая потенциальному взломщику/ботнету/конкуренту собрать фингерпринты с ваших портов и получить сведения о ваших сервисах в сети и что конкретно у вас фильтруется. так что лучше выставить значение DROP, тем самым "притвориться мёртвым", это затруднит сканирование и позволит немного запутать человека или бота на атакующем хосте)  
 + 
 +2 - открываем доступ для внешней среды, разрешаем входящие для http и https 
 + 
 +3 - с точки зрения безопасности, ident лучше отрубать, про identd можно будет написать отдельную статью, так как правильная настройка этого протокола сводится к массе подводных камней и особенностей, так как содержит парочку критических и средних уязвимостей  
 + 
 +4 - разрешаем "исходящим" выполнять удалённые shell команды на нашем удалённом web-сервере 
 + 
 +5 - разрешаем "жителям одной из нашей подсети" шифрованный порт для LOG-сервера OSSEC 
 + 
 +6 - ntp он и в Африке ntp. куда же нам без него :) 
 + 
 +7 - pop3 через ssl, "безопасная почта"
  
-Вообще тут можно ещё многое написать, но я решил сделать пометки для более-менее важного. там где вы видите ********/24 и т.п. значения, нужно вписывать доверенные подсети своей локальной, либо удалённой среды, так как в разных подсетях работают разные службы, например саппорт и т.п.+Вообще тут можно ещё многое написать, но я решил сделать пометки для более-менее важного. там где вы видите 11111111, нужно вписывать доверенные подсети своей локальной, либо удалённой среды, так как в разных подсетях работают разные службы, например саппорт и т.п.
  
 Это конечно не совсем по стандарту PCI DSS, но позволяет не плохо защитить своей сервер в большой структуре. Это конечно не совсем по стандарту PCI DSS, но позволяет не плохо защитить своей сервер в большой структуре.
  
 Конфиг взят из одного "полубоевого веб-сервера" поэтому никаких остальных сведений и подробностей я вам о нём не скажу. Можете и не просить, ну разве что попытками соц.инженерии попытаться вытянуть =) Конфиг взят из одного "полубоевого веб-сервера" поэтому никаких остальных сведений и подробностей я вам о нём не скажу. Можете и не просить, ну разве что попытками соц.инженерии попытаться вытянуть =)
пример_рабочего_конфига_iptables.1378209731.txt.gz · Последнее изменение: 2013/09/03 16:02 (внешнее изменение)

DokuWiki Appliance - Powered by TurnKey Linux