Пример настройки iptables для защиты веб-сервера
Автор: admin Раздел: Безопасность
iptables – штатная утилита командной строчки для Linux, стандарт управления интерфейсе брандмауэра (брандмауэр) Netfilter для ядер 2.4 и 2.6. При грамотной настройке брандмауэра IPTables можно считать относительной безопасности от внешних угроз. В этой очень информационной статье мы рассмотрим IPTables пример конфигурации для защиты стандартного веб-серверы.
Итак, представьте себе простой веб-серверы. Рабочие порты в этом случае: 20 TCP, 21, 22, 25, 80, 110, 143, 443, UDP-53. iptables скрипт конфигурации: [-hide-] Code: #!/bin/sh ### Скрипт конфигурации IPTables ### # Очищаем предыдущие записи iptables -F # Установка политик по умолчанию iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # Разрешаем локальный интерфейс iptables -A INPUT -i lo -j ACCEPT # Простая защита от DoS-атаки iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT # Защита от спуфинга iptables -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset # Защита от попытки открыть входящее соединение TCP не через SYN iptables -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP # Закрываемся от кривого icmp iptables -I INPUT -p icmp -f -j DROP # REL, ESTB allow iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT # Разрешаем рабочие порты iptables -A INPUT -p tcp --dport 20 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 25 -j ACCEPT iptables -A INPUT -p udp --sport 53 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 110 -j ACCEPT iptables -A INPUT -p tcp --dport 143 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT # Разрешение главных типов протокола ICMP iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT # Защита серверы SSH от брутфорса iptables -A INPUT -p tcp --syn --dport 22 -m recent --name dmitro --set iptables -A INPUT -p tcp --syn --dport 22 -m recent --name dmitro --update --seconds 30 --hitcount 3 -j DROP Скрипт был написан для CentOS, однако написанные в нем правила будут справедливы для любого дистрибутива (кроме команд сохранения правил и перезагрузки брандмауэра). |
должно быть
iptables -A INPUT -p tcp –syn –dport 22 -m recent –name dmitro –set
iptables -A INPUT -p tcp –syn –dport 22 -m recent –name dmitro –update –seconds 30 –hitcount 3 -j DROP
iptables -A INPUT -p tcp –dport 22 -j ACCEPT