UFW 阻止 NAT 中的流量

UFW 阻止 NAT 中的流量

我已經使用 libvirt 和預設 NAT 橋創建了一個 VM guest 虛擬機器。 (主機和來賓 Ubuntu 14.04 伺服器)為 SSH 建立允許規則並在來賓上啟用 ufw 後,我無法再連接到來賓。

來自(來賓的)系統日誌:

10 月 6 日 17:36:51 ubuntu 內核:[ 5969.693057] [UFW 塊] IN=eth0   
OUT=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是Host的IP,Guest是192.168.122.152。我不知道為什麼 ufw 會阻止主機/NAT 允許的 IP。

如果我在來賓上停用 ufw,我可以透過 SSH 從主機進行連接,不會出現任何問題。

編輯:為了澄清,這些是客人的日誌。 NAT 路由正在工作。問題似乎出在虛擬機器來賓端。

答案1

經過多次嘗試和錯誤我終於找到了解決方案:

代替:

Anywhere                   ALLOW IN    192.168.122.0/24 22/tcp

正確的規則應該是:

 22/tcp                     ALLOW IN    192.168.122.0/24

我錯誤地指定了來源連接埠而不是目標連接埠。這是由於使用 ufwallow 命令的縮寫形式引起的:

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

相關內容