Настройка IPtables для web сервера на Unix/Linux

Настройка IPtables для web сервера на Unix/Linux

Безопасность превыше всего, нужно это знать и понимать как это сделать! Я хотел бы рассказать как можно настроить iptables для web сервером которые работают на CentOS, RedHat или Fedora. В идеале нужно все порты заблокировать и оставить ( пооткрывать, только те что нужны для работы). И помните, это нужно для вашей же безопасности. Собственно в статье «Настройка IPtables для web сервера на RedHat/CentOS/Fedora» мы поговорим об этом.

Нужно все таки, установить IPtables. 

Как установить IPTables на RedHat / CentOS Linux?

Настройка IPtables для web сервера на Unix/Linux

Изначально проверим настройки IPtables, следующей командой:

# iptables -vnL

Вот вывод данной программы (иптейблс):

так выглядит стандартный IPtables на CentOS

так выглядит стандартный IPtables на CentOS

Если это чистый сервер и нужно его настроить с самого начала, то выполняем ряд действий. Для начала, выставляем цепочку INPUT на прием всех соединений ( разрешить все соединения):

# iptables --policy INPUT ACCEPT

Затираем все правила:

# iptables --flush

Давайте сделаем так, чтобы можно было получать уже открытые конекшены:

# iptables -A INPUT --match state --state ESTABLISHED,RELATED -j ACCEPT

Мы же не звери, и по этому, — даем возможность принимать соединения с 127.0.0.1 (локолхоста):

# iptables --append INPUT -i lo -j ACCEPT

Еси есть смысл ( логично разрешить), то разрешим ping на сервер ( для ICMP пакетов):

# iptables -A INPUT --protocol icmp --icmp-type any -j ACCEPT

Т.к на сервер нужно заходить, то пробрасываем 22-й порт ( порт для SSH):

# iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Если имеются FTP на сервере, то пробросим:

# iptables -A INPUT -p tcp --dport 20 -j ACCEPT

И:

# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

Т.к некоторые ФТП использую порты 30000-50000, то пробросим мы и их:

# iptables -A INPUT -p tcp --match tcp --dport 30000:50000 -j ACCEPT

После чего мы разрешим пользоваться http и https, которые используют 80 (8080) и 443-е порты:
Разрешаем доступ по 80-му порту.

# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Разрешаем доступ по 8080-му порту.

# iptables -I INPUT 1 -i eth0 -p tcp -m tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT

Разрешаем доступ по 443-му порту:

# iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Или, если нужно пробросить все это дело для определенного интерфейса:

# iptables -I INPUT 1 -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -I INPUT 1 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Проверим что у нас вышло, работает ли у нас, а проверяем вот так:

# iptables -vnL
Настроенный iptables под веб сервер (открыты, 80, 8080 и 443 порты)

Настроенный iptables под веб сервер (открыты, 80, 8080 и 443 порты)

И напоследок, запретим все остальное:

# iptables --policy INPUT DROP

Сохраняем и перезапускаем IPtables, следующим образом:

# iptables-save > /root/IPTables.rules

ИЛИ:

# service iptables save

ВСЕ! На этом я завершаю свою тему «Настройка IPtables для web сервера на RedHat/CentOS/Fedora», так же Вы можете ознакомится еще и с таким полезным материалом:

21 пример использования iptables для администраторов

Защита от DDoS с iptables, готовый скрипт

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

Как заблокировать IP адрес с помощью iptables на Linux

Я в этой статье очень хорошо расписал что и как можно настроить, привел реальные примеры использования. По этому, если нужно и хотите реально обезопасить себя. прочитайте все что я Вам даю.

Спасибо за посещение http://linux-notes.org

One thought on “Настройка IPtables для web сервера на Unix/Linux

  1. Прекрасная статья! Наконец-то нашёл, как настроить домашний сервер на Fedora. Именно эта проблема мне не давало возможность запустить сервер. Удалённое управление сервером есть и из Windows, и из Linux, программы устанавливаются, интернет есть. Даже ping проходит и из Windows и из Linux, а сервер просто не виден в сети. Большое спасибо! Буду настраивать.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.