UFW blockiert den Verkehr im NAT

UFW blockiert den Verkehr im NAT

Ich habe mit libvirt einen VM-Gast mit der Standard-NAT-Bridge erstellt. (Host und Gast Ubuntu 14.04 Server) Nachdem ich Zulassungsregeln für SSH erstellt und ufw aktiviert habe – auf dem Gast – kann ich keine Verbindung mehr zum Gast herstellen.

Aus dem Syslog (des Gastes):

6. Okt. 17:36:51 Ubuntu-Kernel: [ 5969.693057] [UFW BLOCK] 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 FENSTER=29200 RES=0x00 SYN URGP=0

Status von ufw (auf dem Gast):

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 ist die IP des Hosts, die des Gasts ist 192.168.122.152. Ich habe keine Ahnung, warum ufw die zulässige IP des Hosts/NAT blockiert.

Wenn ich ufw auf dem Gast deaktiviere, kann ich problemlos vom Host aus eine Verbindung per SSH herstellen.

edit: zur Klarstellung, dies sind Logs des Gastes. NAT-Routing funktioniert. Das Problem scheint auf der VM-Gastseite zu liegen.

Antwort1

nach langem Herumprobieren habe ich endlich die Lösung gefunden:

anstatt:

Anywhere                   ALLOW IN    192.168.122.0/24 22/tcp

die richtige Regel müsste lauten:

 22/tcp                     ALLOW IN    192.168.122.0/24

ich habe fälschlicherweise den Quellport statt des Zielports angegeben. Dies wurde durch die Verwendung der Kurzform des ufw allow-Befehls verursacht:

ufw allow from 192.168.122.0/24 port 22  proto tcp  

richtige Form:

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

verwandte Informationen