Некоторые пользователи просят настроить им файрвол, надоело, вот держите 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 фильтрация трафика.