iptables пример правил

Дата | 28.06.2020

iptables пример правил
Некоторые пользователи просят настроить им файрвол, надоело, вот держите iptables пример правил.
Базовые правила для настройки файрвола для web сервера.
Этих правил безопасности должно быть достаточно в большей части.
Эти правила можно добавить через консольно по очереди, либо запустить скриптом.

#!/bin/sh
iptables -F
iptables -X
iptables -P INPUT REJECT
iptables -P FORWARD REJECT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j REJECT
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j REJECT
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j REJECT
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j REJECT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 44458 -j ACCEPT
iptables -A INPUT -s 1.1.1.1,22.22.1.61 -p tcp -m tcp --dport 32943 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --dports 36478,45889,36308,49152 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -j DROP

Сброс правил.

iptables -F
Удаление цепочки.
iptables -X

Правила по умолчанию в цепочках.

iptables -P INPUT REJECT
iptables -P FORWARD REJECT

Блокируем не желательный трафик.

iptables -A INPUT -p tcp -m conntrack --ctstate INVALID,NEW -m tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j REJECT
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j REJECT
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j REJECT
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j REJECT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j DROP

Разрешающие правила.

iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 44458 -j ACCEPT
iptables -A INPUT -s 1.1.1.1,22.22.1.61 -p tcp -m tcp --dport 32943 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --dports 36478,45889,36308,49152 -j ACCEPT
где 1.1.1.1,22.22.1.61 - через запятую список ip адресов которым разрешен доступ к порту.
где 36478,45889,36308,49152 - список открытых портов.

После применения правил нужно сохранить их.

iptables-save > /root/wall

Просмотр списка правил.

iptables -L

Смотрим сколько трафика прошло по определенным правилам.

iptables -nvL

Если нам понадобилось убрать одно правило, то смотрим с начало номер правило и после удаляем правило по номеру.

iptables -L --line-numbers
Смотрим номера правил индивидуально в цепочке INPUT
iptables -L INPUT -n --line-numbers
Удаляем правило номер 10
iptables -D INPUT 10

Допустим нам нужно вставить правило между 5 и 6 правилом, то:

iptables -I INPUT 6 -p tcp -m tcp --dport 53 -j ACCEPT

Автозапуск правил:
После перезагрузки правила применяться автоматически.
В Debian Linux делаю так, создаю файл wall-iptables.

cat /etc/network/if-pre-up.d/wall-iptables                        
#!/bin/sh
/sbin/iptables-restore < /root/wall
exit 0

Добавляем права выполнения запуска.

chmod +x /etc/network/if-pre-up.d/wall-iptables

Остальные дистрибутивы так.
Либо по крону запускать.

crontab -l
@reboot         root    iptables-restore < /root/wall

Вот и все, iptables пример правил разобрали.
Настройка файрвола ipfw в системе FreeBSD
Настройка ipfw.
ipfw geo фильтрация трафика.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *