iptables の設定に問題があります (LDAP トラフィックがブロックされています)

iptables の設定に問題があります (LDAP トラフィックがブロックされています)

私のアプリケーション サーバーは、組織全体のファイアウォールで保護されたネットワーク上にあり、サーバーも を使用していますfail2ban。とはいえ、 で追加の保護レイヤーを設定したいと考えていますiptables。構成に少し問題があります。

要件:

  1. 全員のアクセスを拒否し、特定の IP 範囲へのアクセスを許可する (4.3.4.0/16)
  2. アプリケーションでの LDAP 機能の継続 ( ldap_connectPHP で使用)
  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、サービスを再起動します。

問題点:

すでにログインしている場合は、アプリケーションを参照して使用できます (以下の 1 つの例外を除く)。ログインしていない場合は、LDAP 認証がハングします。

2 番目の問題は、新しい構成では外部コンテンツにアクセスできないことです。HTTPS を使用して別のマシンからデータを取得します。これは、外部マシンの IP への送信トラフィックを許可するルールを追加するだけで済むのでしょうか?

答え1

LDAP サーバーが非標準ポートを使用している可能性がありますか?

LDAPサーバーがどのポートをリッスンしているかは、netstat -tlpn

2つ目の問題は、新しい設定では外部コンテンツにアクセスできないことです。

これらのルールを適用した後、このマシンからネットワーク リソースに接続できないということだと思います。 要求はおそらく送信されていますが (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

関連情報