ГлавнаяРегистрацияВходВ закладки

Главная » Статьи » CentOS » Безопасность
Пример настройки iptables для защиты веб-сервера
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
[-hide-]
Скрипт был написан для CentOS, однако написанные в нем правила будут справедливы для любого дистрибутива (кроме команд сохранения правил и перезагрузки брандмауэра).
Просмотров: 2296
Дата: 2011-07-13 14:41:57
Комментариев: 1
Источник:
admin
ИМХО Защита сервера SSH от брутфорса в данном варианте работать не будет (разрешение на 22 порт стоит раньше собственно защиты)

должно быть
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