Настройка iptables Ubuntu

Установка IP Tables persistent на Ubuntu

aptitude install iptables-persistent

Обязательно включите NAT, если вы хотите использовать Docker или LXC

echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward=1" > /etc/sysctl.d/ip_forward.conf

При работе с iptables будьте осторожны.
Одно неверное движение и доступ к серверу может быть заблокирован!!!

Пример конфига /etc/iptables/rules.v4

*filter
:INPUT ACCEPT [19:913]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [39:3584]
:ALLOW-INPUT - [0:0]
:f2b-sshd - [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

# Fail2Ban SSH
#-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd

# Разрешаем входящие соединения ssh
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22050 -j ACCEPT

# Перейти к цепочке ALLOW-INPUT
-A INPUT -j ALLOW-INPUT

# Запрещаем остальные входящие соединения
-A INPUT -j REJECT
-A FORWARD -j REJECT

# Раскомментируйте, если нужно запретить все исходящие соединения 
#-A OUTPUT -j REJECT

# Разрешить http
-A ALLOW-INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A ALLOW-INPUT -p tcp -m tcp --dport 443 -j ACCEPT

-A ALLOW-INPUT -j RETURN

# Fail2ban
-A f2b-sshd -j RETURN

COMMIT

Скопируйте этот же конфиг в /etc/iptables/rules.v6

cp /etc/iptables/rules.v4 /etc/iptables/rules.v6

Установите новые правила iptables:

iptables-restore < /etc/iptables/rules.v4
ip6tables-restore < /etc/iptables/rules.v6

Чтобы добавлять новые правила в iptables, например, тот же nginx нужно редактировать файл. Также вы можете выполнить команды:

iptables -I ALLOW-INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -I ALLOW-INPUT -p tcp -m tcp --dport 443 -j ACCEPT

Они добавят в начало цепочки ALLOW-INPUT два новых правила, но при этом файл не изменят.