iptables優先順位

iptables優先順位

後ろに開こうとしているすべての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)

おすすめ記事