![IPTables でポートを開くことができない](https://rvso.com/image/83693/IPTables%20%E3%81%A7%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E9%96%8B%E3%81%8F%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84.png)
RHEL 6 サーバーで Jenkins を実行しようとしています。Jenkins はインストールされていますが、ファイアウォール ルールによりアクセスできません。 で iptables を停止するとservice iptables stop
、ポート 8080 でブラウザーから Jenkins にアクセスできます。サービスを再起動すると、アクセスできなくなります。
ポート 8080 のトラフィックを許可するルールを iptables に追加するさまざまな方法を試しましたが、効果はありませんでした。
iptables -L -n
以下は、INPUT セクションの最初の行に Jenkins/port 8080 ルールがある現在の出力です。
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5353
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:5353
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:443
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:123
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:161
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:161
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:389
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:389
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:636
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:636
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8140
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:8140
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:111
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:111
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:111
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:111
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:2049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2049
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:2049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:2049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4046
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4046
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4046
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:4046
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4045
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4045
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4047
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4047
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:514
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:514
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:717
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:717
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:6000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2435
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:2435
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4526
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4526
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2659
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:2659
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:1521
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:53
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:5353
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:5353
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5353
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:123
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:161
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:161
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:389
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:389
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:636
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:636
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:8140
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8140
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:111
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:111
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:111
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:111
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:2049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:2049
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:2049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4046
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4046
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:4046
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:4046
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:4045
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4045
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:4047
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4047
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:4049
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:514
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:514
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:6000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:717
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:717
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:2435
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2435
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:4526
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4526
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:2659
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:2659
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:1521
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
答え1
Gazareth さん、iptables INPUT キュー ルールの他に OUTPUT キュー ルールを設定していることに気付いたのですが、8080/TCP ポートは OUTPUT キューで許可/設定されていません。
あなたが追加したように:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
以下の内容も追加する必要があります:
iptables -I OUTPUT -p tcp --sport 8080 -j ACCEPT
iptables はステートフル ファイアウォール ルールを維持できるため、2 つの異なるキューを維持する代わりに、次の操作を行うこともできます。
iptables -I INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
手動で行う場合は、ルールをキューの先頭に配置するために -I を使用し、バッチ ファイルで実行する場合は通常、iptables -A を実行することに注意してください。
答え2
デフォルトの Jenkins インストールは、ポート 8080 と 8443 で実行されます。通常、HTTP/HTTPS サーバーは、それぞれポート 80 と 443 で実行されます。ただし、これらのポートは Unix/Linux システムでは特権ポートと見なされ、それらを使用するプロセスは root が所有する必要があります。Jenkins を root として実行することは推奨されません。独自のユーザーとして実行する必要があります。
したがって、トラフィックをポート 80/443 から 8080/8443 に転送する必要があります。iptables がこれら 4 つのポートすべてでトラフィックを許可していることを確認する必要があります。
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
iptables-save > /etc/sysconfig/iptables
あるいは、
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080