Спасибо @bobuk и addmeto.cc за ссылку Грамотная и современная коллекция скриптов и конфигов для iptables. Если необходимо быстро настроить iptables на Debian или Ubuntu то iptables-boilerplate здорово может вам облегчить задачу.
iptables-boilerplate тестировался на следующих системах:
Debian 5.0 / Lenny (oldstable) Debian 6.0 / Squeeze (stable) Debian 7.0 / Wheezy (testing) Ubuntu 10.04 LTS / Lucid Ubuntu 10.10 / Maverick Ubuntu 11.04 / Natty Ubuntu 11.10 / Oneiric Ubuntu 12.04 - BETA1 / Precise
Устанавка
Создаем необходимые директории и устанавливаем git
# sudo mkdir /etc/firewall # sudo mkdir /etc/firewall/custom # apt-get install git git-core
Скачиваем github repo и копируем файлы
# git clone git://github.com/bmaeser/iptables-boilerplate.git # cd iptables-boilerplate # cp firewall /etc/init.d/firewall # cp etc/firewall/*.conf /etc/firewall/
Делаем скрипт исполняемым и устанавливаем firewall в автозагрузку
# chmod 755 /etc/init.d/firewall # update-rc.d firewall defaults
Запускаем Firewall
# service firewall start starting firewall... hello world! firewall started
# iptables -L Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh state NEW ACCEPT udp -- anywhere anywhere udp dpt:ssh state NEW DROP all -- anywhere anywhere state INVALID DROP all -- anywhere anywhere PKTTYPE = broadcast DROP all -- anywhere anywhere PKTTYPE = multicast portscan_drop tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE portscan_drop tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN portscan_drop tcp -- anywhere anywhere tcp flags:FIN,SYN/FIN,SYN portscan_drop tcp -- anywhere anywhere tcp flags:SYN,RST/SYN,RST portscan_drop tcp -- anywhere anywhere tcp flags:FIN,RST/FIN,RST portscan_drop tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,PSH,URG portscan_drop tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG portscan_drop tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG portscan_drop tcp -- anywhere anywhere tcp flags:FIN,ACK/FIN portscan_drop tcp -- anywhere anywhere tcp flags:PSH,ACK/PSH portscan_drop tcp -- anywhere anywhere tcp flags:ACK,URG/URG LOG all -- anywhere anywhere LOG level warning REJECT all -- anywhere anywhere reject-with icmp-port-unreachable Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED DROP all -- anywhere anywhere state INVALID Chain portscan_drop (11 references) target prot opt source destination DROP all -- anywhere anywhere
Настройка
/etc/firewall/services.conf
В этом файле можно открывать порты для различных сервисов. По умолчанию открыт ssh. ## Открыть SSH для IP 192.168.0.1 22/tcp 192.168.0.1 22/udp 192.168.0.1 ## Открыть HTTP для любого IP 80/tcp
/etc/firewall/ip-whitelist.conf
Открыть полный доступ к серверу для IP. Каждый IP на отдельной строке. Синтаксис может быть 192.168.0.1 192.168.1.0/8 192.168.55.0/255.255.255.148
/etc/firewall/ip-blacklist.conf
Заблокировать полный доступ к серверу для IP. Каждый IP на отдельной строке. Синтксис может быть 192.168.0.1 192.168.1.0/8 192.168.55.0/255.255.255.148