デフォルトの 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