Проблема с настройкой iptables (заблокирован трафик LDAP)

Проблема с настройкой iptables (заблокирован трафик LDAP)

Мой сервер приложений находится в сети, защищенной общеорганизационным брандмауэром, и мой сервер также использует fail2ban. Тем не менее, я хотел бы настроить дополнительный уровень защиты с помощью iptables. У меня возникли небольшие проблемы с конфигурацией.

Требования:

  1. Запретить доступ всем, а затем разрешить определенному диапазону IP-адресов (4.3.4.0/16)
  2. Продолжение функциональности LDAP в приложении (использование ldap_connectв PHP)
  3. Возможность извлечения внешнего контента через URL

Известно:

  • IP-адрес сервера приложений — 1.2.3.4.
  • Сервер LDAP разрешается в 1.2.100.200 и использует порт 636.
  • Статический IP моего ноутбука — 4.3.2.1.

Что я пробовал:

Начав с базовой iptablesконфигурации, разрешающей трафик через порты 22, 80 и 443, я добавил следующее.

# explicitly allow ssh access from my laptop
iptables -A INPUT -s 4.3.2.1 -d 1.2.3.4 -p tcp --dport 22 -j ACCEPT

# deny all traffic
iptables --policy INPUT DROP

# allow traffic from a specific IP range
iptables -A INPUT -s 4.3.4.0/24 -j ACCEPT

# allow traffic from LDAP server IP
iptables -A INPUT -s 1.2.100.200 -j ACCEPT
iptables -A INPUT -p tcp --dport 636 -j ACCEPT

Я сохраняю эту конфигурацию с помощью service iptables save, а затем перезапускаю службу.

Проблемы:

Если я уже вошел в систему, я могу просматривать и использовать приложение (за исключением одного момента, описанного ниже). Если я не вошел в систему, аутентификация LDAP зависает.

Вторая проблема в том, что я не могу получить доступ к внешнему контенту с новой конфигурацией. Я получаю данные с другой машины с помощью HTTPS. Это просто вопрос добавления правила, разрешающего исходящий трафик на IP внешней машины?

решение1

Может ли сервер LDAP использовать нестандартные порты?

Вы можете увидеть, какой порт прослушивает сервер LDAP черезnetstat -tlpn

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

Я предполагаю, что вы имеете в виду, что вы не можете подключиться к сетевым ресурсам с этой машины после применения этих правил. Запросы, вероятно, уходят (поскольку вы, по-видимому, не установили OUTPUTполитику по умолчанию DROP), но ответы удаленного сервера отбрасываются брандмауэром.

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

root@xxxxxxvld02 ~ $ iptables -nvL
Chain INPUT (policy ACCEPT 157 packets, 18048 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 63 packets, 6998 bytes)
 pkts bytes target     prot opt in     out     source               destination

В приведенном выше примере 157 packetsв INPUTцепочке указано количество пакетов, к которым в конечном итоге была применена политика по умолчанию (правила имеют собственные счетчики слева и не изменяют это число вверху).

Вероятно, вы захотите создать правило, которое явно разрешает трафик, связанный с уже существующими соединениями:

iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Связанный контент