Внимание!!! Все файлы в которых будут меняться настройки обязательно нужно копировать в созданную в корне сервера папку copy.

Новые настройки вступят в силу после рестарта необходимой службы.

Новые настройки, влияние которых на работу сервера в дальнейшем неизвестно, после проведенных работ заменять на исходные (возвращать на старые).

Настройка IPTables

Материал из Справка по MediaWiki
Перейти к: навигация, поиск

Как настроить Iptables в CentOS

У меня есть установленный веб-сервер Apache на CentOS. Как настроить брандмауэр, используя IPTables, разрешить или запретить доступ к веб-серверу под CentOS? В уроке я покажу вам, как я это делаю.

Что такое Iptables?

Iptables является приложением, что позволяет системному администратору настраивать таблицы в брандмауэре ядра Linux (реализовано в виде различных Netfilter модулей) и цепей и правил. Различные модули и программы ядра в настоящее время используются для различных протоколов; Iptables относится к IPv4, ip6tables на IPv6, arptables к ARP и Ebtables для Ethernet.

Настройка IPTables

В большинстве дистрибутивов Linux, включая RedHat / CentOS Linux уже сразу с IPTables по умолчанию. Вы можете использовать следующую процедуру для проверки того, что Iptables был уже установлен. Откройте терминал и введите следующую команду:

# iptables -V

Пример вывода:

Iptables v1.3.5

Вы можете использовать следующую команду, чтобы просмотреть состояние команды Iptables, для этого выполните:

# yum info iptables

Если команда что выше не появляется, то введите следующую команду, чтобы установить ИПтейблес

# yum install iptables -y

Конфигурация Iptables для веб-сервера

Конфигурация Iptables по умолчанию на CentOS не разрешает доступ к HTTP (TCP порт 80) и HTTPS (TCP ПОРТ 443 )которые использует веб-сервер (например Apache).

Шаг 1: Flush или удалите все IPTABLES правила

# iptables -F
# iptables -X
# iptables -t nat -F
# iptables -t nat -X
# iptables -t mangle -F
# iptables -t mangle -X

Шаг 2: Установите правила по дефолту

# iptables -P INPUT DROP
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT

Шаг 3: Разрешить доступ к HTTP для 80 порта и HTTPS для 443 порта

# iptables -A INPUT -i lo -j ACCEPT 
# iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT 
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
# iptables -A INPUT -p icmp -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

Включите и сохраните IPTables

Введите следующие две команды, чтобы включить брандмауэр:

# chkconfig iptables on
# service iptables save

Анти synflood с Iptables

Нужно отредактировать /etc/sysctl.conf, чтобы защититься от некоторых видов атак и добавить или обновить можно добавив эти строки в файл:


net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.netfilter.ip_conntrack_max = 1048576

И введите следующие команды

# iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 --syn -m recent --set --name CHECK --rsource 
# iptables -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 --syn -m recent --update --seconds 5 --hitcount 15 --rttl --name CHECK --rsource -j DROP