UFWはNATのトラフィックをブロックします

UFWはNATのトラフィックをブロックします

デフォルトの NAT ブリッジを使用して、libvirt で VM ゲストを作成しました。(ホストとゲスト Ubuntu 14.04 サーバー) SSH の許可ルールを作成し、ゲストで ufw を有効にした後、ゲストに接続できなくなりました。

syslog (ゲストの) から:

10月6日 17:36:51 ubuntuカーネル: [ 5969.693057] [UFW BLOCK] IN=eth0   
出力=MAC=52:54:00:ea:b5:2e:fe:54:00:ea:b5:2e:08:00 SRC=192.168.122.1
DST=192.168.122.152 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=5379 DF PROTO=TCP
SPT=34376 DPT=22 ウィンドウ=29200 RES=0x00 SYN URGP=0

ufw のステータス (ゲスト上):

root@ubuntu:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
Anywhere                   ALLOW IN    148.251.139.136 22/tcp
Anywhere                   ALLOW IN    148.251.139.133 22/tcp
Anywhere                   ALLOW IN    141.7.0.0/16 22/tcp
Anywhere                   ALLOW IN    192.168.122.0/24 22/tcp
Anywhere                   ALLOW IN    192.168.122.1 22/tcp

148.251.139.136 はホストの IP で、ゲストは 192.168.122.152 です。ufw がホスト/NAT の許可された IP をブロックする理由はわかりません。

ゲストで ufw を無効にすると、問題なくホストから SSH 経由で接続できます。

編集: 明確にするために、これらはゲストのログです。NAT ルーティングは機能しています。問題は VM ゲスト側にあるようです。

答え1

何度も試行錯誤した結果、ようやく解決策を見つけました。

の代わりに:

Anywhere                   ALLOW IN    192.168.122.0/24 22/tcp

正しいルールは次のようになります。

 22/tcp                     ALLOW IN    192.168.122.0/24

誤って宛先ポートではなく送信元ポートを指定しました。これは、ufw allow コマンドの短縮形を使用したために発生しました。

ufw allow from 192.168.122.0/24 port 22  proto tcp  

正しい形式:

ufw allow from 192.168.122.0/24 to any port 22 proto tcp

関連情報