iptables для веб-сервера

Надёжность и долговечность сервера, работающего под операционной системой семейства Linux будут в значительной степени обусловлены грамотностью настройки фаер-волла.

 

В качестве эпиграфа вспомнилась старая народная мудрость:
удалённая настройка iptables - к дальней поездке.
Да, что уж скромничать, на себе проверял не раз.
Весьма хорошо подмечено.

Рассмотрим настройку iptables для веб-сервера, работающего под CentOS.

Самое основное правило при настройке: запрещено всё, кроме того, что явно разрешено. Поэтому мы перечисляем все возможные допустимые варианты соединений, а затем сбрасываем все оставшиеся варианты (считаем их неприемлемыми).

*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
# Доступ по локальной сети
-A INPUT -s 10.34.21.101/32 -j ACCEPT
# Работа с Web
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# Доверенный компьютер №1
-A INPUT -m tcp -p tcp -s 178.76.200.0/21 --dport 20 -j ACCEPT
-A INPUT -m tcp -p tcp -s 178.76.200.0/21 --dport 21 -j ACCEPT
-A INPUT -m tcp -p tcp -s 178.76.200.0/21 --dport 22 -j ACCEPT
# Доверенный компьютер №2
-A INPUT -m tcp -p tcp -s 62.148.151.95/32 --dport 20 -j ACCEPT
-A INPUT -m tcp -p tcp -s 62.148.151.95/32 --dport 21 -j ACCEPT
-A INPUT -m tcp -p tcp -s 62.148.151.95/32 --dport 22 -j ACCEPT
# Доверенный комьютер №...
-A INPUT -m tcp -p tcp -s 62.148.129.48/28 --dport 20 -j ACCEPT
-A INPUT -m tcp -p tcp -s 62.148.129.48/28 --dport 21 -j ACCEPT
-A INPUT -m tcp -p tcp -s 62.148.129.48/28 --dport 22 -j ACCEPT
...
# Концовка
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j DROP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j DROP
-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Пример настройки: скачать.

Неоспаримым преимуществом данного подхода является отсутствие привязки к IP-адресам. Все упоминания сетевых интерфейсов позволяют свободно менять IP-адреса без перенастройки.

В результате получаем компактный, изящный набор правил. А как известно, красивые самолеты летают быстро.

Пользуясь случаем, благодарю моего друга Максима Румянцева (MaXXIc) за колоссальную помощь и руководство в данном вопросе. Без его участия данная работа и статья были бы невозможны.

4 комментарии

  • Smith

    написал Smith

    Среда, 10 Февраль 2016 14:10

    What are the rules should i configure iptables with? How can i protect a port which is always open?

    Пожаловаться
  • Анатолий

    написал Анатолий

    Пятница, 12 Февраль 2016 12:29

    Так мило читать комментарии, когда русские люди пытаются писать на английском :)

    Пожаловаться
  • Vint

    написал Vint

    Пятница, 23 Декабрь 2016 15:03

    Зачем создавать отдельные правила DROP на порты 21 и 22, если у вас и так, по-умолчанию, основным правилом стоит :INPUT DROP? Т.е. все запросы к серверу запрещены, кроме тех которые явно разрешены!

    Пожаловаться
  • Julio

    написал Julio

    Воскресенье, 23 Апрель 2017 19:05

    Для минимизации ошибок при вводе правил вручную можно автоматизировать процесс настройки фаервола можно с помощью скрипта конфигурирования iptables .

    Пожаловаться
Авторизуйтесь, чтобы получить возможность оставлять комментарии

Другие материалы в этой категории:

Go to top