私のアプリケーションサーバーは、組織全体のファイアウォールで保護されているネットワーク上にあり、私のサーバーもfail2ban
。iptables
構成に問題があります。特に、アプリケーションサーバーから外部コンテンツにアクセスする際に問題があります。
必要:
- 誰もがアクセスを拒否し、特定のIP範囲を許可します(4.3.2。*)
- アプリケーションサーバーから外部コンテンツを取得する機能
既知のもの:
- アプリケーションサーバーのIPは1.2.3.4です。
- 私のラップトップの固定IPは4.3.2.1です。
私が試したこと:
iptables
ポート22、80、443を介したトラフィックを許可する一般的な設定から始めて、以下を追加しました。
# allow traffic from a specific IP range
iptables -A INPUT -s 4.3.2.0/24 -j ACCEPT
# allow traffic over LDAP port
iptables -A INPUT -p tcp --dport 636 -j ACCEPT
# keep existing traffic
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# deny all traffic
iptables --policy INPUT DROP
を使用して設定を保存し、service iptables save
サービスを再起動します。
これはiptables -L -v -n --line-numbers
Chain INPUT (policy DROP 461 packets, 81259 bytes)
num pkts bytes target prot opt in out source destination
1 11835 1095K fail2ban-SSH tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
2 2972K 1083M ACCEPT all -- * * 4.3.2.0/24 0.0.0.0/0
3 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:636
4 3747K 436M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 89676 packets, 26M bytes)
num pkts bytes target prot opt in out source destination
Chain fail2ban-SSH (1 references)
num pkts bytes target prot opt in out source destination
1 11776 1092K RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
質問:
上記のルールセットを使用して外部コンテンツにアクセスすることはできません。デフォルトの出力ポリシーは承認なので、問題が何であるかよくわかりません。私はこれをアプリケーション自体でテストしただけでなく、単にコマンドを使用してlynxを使用してテストしました。https://some.site。デフォルトの入力ポリシーを受け入れるように変更すると、lynxはコンテンツを抽出できます。 INPUTポリシーがコンテンツの読み込みをブロックするのはなぜですか?
答え1
問題を解決しました。簡単な解決策です。単一の外部システム(1.1.1.99)からデータを取得していますが、そのIPが私のルールセットにないためブロックされました。
したがって、これを追加して保存することで問題が解決しました。
iptables -A INPUT -s 1.1.1.99 -j ACCEPT