私はCentOS7サーバーをfirewalldなしで、iptablesをインストールしました。
WildFly10が変更されたソケットバインディングで実行されていますhttpポート8080
から80
in standalone.xml
。
次のコマンドを使用して、iptablesで80ポートを開きます。
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
しかし、iptablesを停止するまで、サーバーはまだ到達不能です。
それを修正する方法は?
更新:
#iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-Host-prohibited
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 8080 -j ACCEPT
# netstat -nltp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10042/Java
あなたのルールはあなたが達成したいことに対して間違っています。 INPUT
チェーンは着信トラフィックを処理し、OUTPUT
チェーンは発信トラフィックを処理します。したがって、達成したいことには、次のようなルールが必要です(そして、OUTPUT
チェーンのルールは必要なく、削除できます)。
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
それ以外は、ルールの順序が重要であり、ルールリストは問題ないように見えます。たとえば、8行目にすべてを拒否するルールがある場合、何かを受け入れる次のルールは機能しません。したがって、最後にすべて拒否ルールを配置します。重複するルールもたくさんあります。それらを削除してiptablesをフラッシュするだけです。
Iptablesをよりよく理解するには、次のページを参照してください。