Tag Archives: iptables

Debian iptables

Спасибо @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