
私のアプリケーションサーバーは、組織全体のファイアウォールで保護されているネットワーク上にあり、私のサーバーもfail2ban
。iptables
私の設定に問題があります。
必要:
- 誰もがアクセスを拒否し、特定のIP範囲(4.3.4.0/16)を許可します。
- アプリケーションの連続LDAP機能(
ldap_connect
PHPで使用) - 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認証は中止されます。
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