Creé una máquina virtual invitada con libvirt con el puente NAT predeterminado. (Servidor host e invitado Ubuntu 14.04) Después de crear reglas de permiso para SSH y habilitar ufw, en el invitado, ya no puedo conectarme con el invitado.
Desde syslog (del invitado):
6 de octubre 17:36:51 kernel de ubuntu: [5969.693057] [BLOQUEO UFW] IN=eth0 SALIDA=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 VENTANA=29200 RES=0x00 SYN URGP=0
Estado de ufw(sobre el invitado):
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 es la IP del Anfitrión, el Invitado es 192.168.122.152. No tengo idea de por qué ufw bloquea la IP permitida del Host/NAT.
Si desactivo ufw en el invitado, puedo conectarme desde el host a través de SSH sin problemas.
Editar: para aclarar, estos son registros del invitado. El enrutamiento NAT está funcionando. El problema parece estar en el lado invitado de la VM.
Respuesta1
Después de muchas pruebas y errores finalmente encontré la solución:
en lugar de:
Anywhere ALLOW IN 192.168.122.0/24 22/tcp
la regla correcta debería ser:
22/tcp ALLOW IN 192.168.122.0/24
Especificé por error el puerto de origen en lugar del puerto de destino. Esto fue causado por el uso de la forma abreviada del comando ufw enable:
ufw allow from 192.168.122.0/24 port 22 proto tcp
forma correcta:
ufw allow from 192.168.122.0/24 to any port 22 proto tcp