UFW блокирует трафик в NAT
Я создал гостевую виртуальную машину с libvirt с NAT-мостом по умолчанию. (Сервер Host и Guest Ubuntu 14.04) После создания разрешающих правил для SSH и включения ufw - на гостевой - я больше не могу подключаться к гостевой.
Из системного журнала (гостя):
6 октября 17:36:51 ядро ubuntu: [ 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 ОКНО =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 блокирует разрешенный IP-адрес хоста /NAT.
Если я отключу UFW на гостевой, я могу подключиться с хоста через SSH без проблем.
редактировать: для уточнения, это логи гостя. NAT-маршрутизация работает. Проблема, кажется, на стороне гостя VM.
1 ответ
После долгих проб и ошибок я наконец нашел решение:
вместо:
Anywhere ALLOW IN 192.168.122.0/24 22/tcp
правильное правило должно быть:
22/tcp ALLOW IN 192.168.122.0/24
я ошибочно указал порт источника вместо порта назначения. Это было вызвано использованием краткой формы команды allow ufw:
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