UFW는 NAT에서 트래픽을 차단합니다.

UFW는 NAT에서 트래픽을 차단합니다.

기본 NAT 브리지를 사용하여 libvirt를 사용하여 VM 게스트를 만들었습니다. (호스트 및 게스트 Ubuntu 14.04 서버) SSH에 대한 허용 규칙을 만들고 게스트에서 ufw를 활성화한 후 더 이상 게스트에 연결할 수 없습니다.

(게스트의) syslog에서:

10월 6일 17:36:51 우분투 커널: [ 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 WINDOW=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 허용 명령의 짧은 형식을 사용했기 때문에 발생했습니다.

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

관련 정보