기본 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