web-dev-qa-db-ja.com

Centos 7のポートの転送

私はCentOS 7サーバーで作業しており、JBossを希望どおりに動作させようとしています。私はJava 8とJBoss(wildly)8を実行しています。これらをインストールしてデフォルトのポートで動作させていますが、JBossをポート80で動作させたいのです。ルートとして実行すると、ポート80で動作するようになりますが、これは良い考えではないことを知っているため、ルートとして実行する必要はありません。

ポート80を8080に転送してみましたが、機能しません。ステップが欠けているように思いますが、何が欠けているのかわかりません。

Firewall-cmdを使用しています。両方のポート(80と8080)を開いて、パブリックゾーンのマスカレードを有効にしました。このコマンドを使用してポートを転送しました

firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080.  

私が見逃しているものはありますか?

9
zzzsys

私はこれを可能にする方法を見つけました:

firewall-cmd --zone=public --add-masquerade --permanent
firewall-cmd --zone=public --add-forward-port=port=443:proto=tcp:toport=3001 --permanent
10
just_user

firewall-cmdのadd-forward-portは、PREROUTING NATチェーンにルールを追加します。これは、外部で生成されたパケットにのみ適用されます。ローカルホストに接続しようとしている場合(または、サーバーのローカルIP)サーバーのポート80で失敗します。これらのパケットはPREROUTINGを通過しないためです。

外部ソースからポート80に接続している場合、firewall-cmdリストしたものは正しく動作するはずです。インターフェイスが実際に「パブリック」ゾーンにあることを確認することをお勧めします。

次のコマンドを実行して、ルールのパケット数を取得し、実際にヒットしていることを確認することもできます。

iptables -t nat -vnL | grep 8080 -B1

試行ごとにパケット数が増加する場合、ファイアウォールは適切に機能しており、ファイアウォールを超えていくつかの問題があります(おそらくJBOSSのACL?)。パケットが試行ごとに増加しない場合、ファイアウォールルールはまったくヒットしていないため、間違ったゾーンにいるか、ポート転送ルールに優先する他のルールがあることを示しています。

0
alienth