後ろに開こうとしているすべてのkubernetesリソースを配布しますport 443
。私はホワイトリストテーブルに追加しましたが、まだオフになっています。ポート80でも同じことが起こりました。すべてのテーブルの更新、すべてのkubernetesリソースの削除、および最初からファイアウォールの設定(ホワイトリストを含むport 80
)今後ついにCubernetesの展開がport 80
再開されました。
今、すべてをやり直すよりもなぜ開くことができないのか理解したいと思いますport 443
。私はKUBE-FIREWALL
基本的にすべてをブロックするテーブル(以下を参照)があることを発見しました。
私の主な質問は次のとおりです。
KUBE-FIREWALLルールは私のテーブルTCPよりも優先順位が高くなりますか?それでは、優先順位をどのように変更できますか?
入力する
Chain INPUT (policy DROP)
target prot opt source destination
cali-INPUT all -- anywhere anywhere /* cali:Cz_u1IQiXIMmKD4c */
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
KUBE-EXTERNAL-SERVICES all -- anywhere anywhere ctstate NEW /* kubernetes externally-visible service portals */
KUBE-FIREWALL all -- anywhere anywhere
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
ACCEPT icmp -- anywhere anywhere icmp echo-request ctstate NEW
UDP udp -- anywhere anywhere ctstate NEW
TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW
REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable
REJECT tcp -- anywhere anywhere reject-with tcp-reset
REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable
カリー入力
Chain cali-INPUT (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere /* cali:msRIDfJRWnYwzW4g */ mark match 0x10000/0x10000
cali-wl-to-host all -- anywhere anywhere [goto] /* cali:y4fKWmWkTnYGshVX */
MARK all -- anywhere anywhere /* cali:JnMb-hdLugWL4jEZ */ MARK and 0xfff0ffff
cali-from-host-endpoint all -- anywhere anywhere /* cali:NPKZwKxJ-5imzORj */
ACCEPT all -- anywhere anywhere /* cali:aes7S4xZI-7Jyw63 */ /* Host endpoint policy accepted packet. */ mark match 0x10000/0x10000
KUBE - ファイアウォール
Chain cali-INPUT (1 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere /* cali:msRIDfJRWnYwzW4g */ mark match 0x10000/0x10000
cali-wl-to-host all -- anywhere anywhere [goto] /* cali:y4fKWmWkTnYGshVX */
MARK all -- anywhere anywhere /* cali:JnMb-hdLugWL4jEZ */ MARK and 0xfff0ffff
cali-from-host-endpoint all -- anywhere anywhere /* cali:NPKZwKxJ-5imzORj */
ACCEPT all -- anywhere anywhere /* cali:aes7S4xZI-7Jyw63 */ /* Host endpoint policy accepted packet. */ mark match 0x10000/0x10000
claus@vmd33301:~$ sudo iptables -L KUBE-FIREWALL
Chain KUBE-FIREWALL (2 references)
target prot opt source destination
DROP all -- anywhere anywhere /* kubernetes firewall for dropping marked packets */ mark match 0x8000/0x8000
伝送制御プロトコル
Chain TCP (1 references)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ベストアンサー1
編集2
何もリッスンしていないのでポートは閉じています。 :)
編集1
リストの順序は重要ですが、KUBE-FIREWALLは表示されたパッケージのみを削除します。mark match 0x8000/0x8000
ルールの終わりにあるものを見逃しました。したがって、しなければならない働く私の考えでは、caliルールの1つ(またはfailure2ban?)がポート443を宣言しているようです。完全なiptables出力なしでわかる方法はありません。
---元の答えは次のとおりです---
はい、TCPはリストで低いため、優先順位が低くなります。 KUBE-FIREWALLチェーンはTCPチェーンの前に評価されるだけでなく、残りのトラフィックをすべて削除するルールで終わります。したがって、TCPルールは評価されません。
次のコマンドを使用して、KUBE-FIREWALLチェーンの上にTCPチェーンエントリポイントを挿入するか、次のコマンドを使用してiptables -I INPUT ...
特定の行番号(行2の上に挿入)の上に挿入できます。iptables -I INPUT 2 ...
iptables コマンドに --line-numbers を追加すると、行番号を表示できます。 ( iptables -nvL --line-numbers
)