영역 간 방화벽 전달이 작동하지 않음

영역 간 방화벽 전달이 작동하지 않음

NAT 네트워킹을 사용하도록 구성된 여러 VM을 실행하는 centos 7 kvm 하이퍼바이저가 있습니다.

이러한 VM은 해당 서비스를 실행하며, 그중 SSH가 관리 목적으로 가장 중요합니다. Firewalld를 사용하여 VM에 전달되는 하이퍼바이저의 포트를 할당하고 싶습니다.

내 하이퍼바이저에는 다음과 같은 인터페이스가 있습니다.

3: wlp8s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 94:0c:6d:c4:b8:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.30/24 brd 192.168.1.255 scope global dynamic wlp8s1
       valid_lft 2627sec preferred_lft 2627sec
    inet6 2a02:a03f:268e:3e00:960c:6dff:fec4:b812/64 scope global noprefixroute dynamic
       valid_lft 345640sec preferred_lft 345640sec
    inet6 fe80::960c:6dff:fec4:b812/64 scope link
       valid_lft forever preferred_lft forever
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 52:54:00:64:af:d6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever

wlp8s1내 홈 네트워크에 연결된 무선 인터페이스는 virbr0kvms 내부 네트워크 인터페이스입니다.

IPV4 전달이 활성화되었습니다:

firewall-cmd --zone=external --add-forward-port=port=2022:proto=tcp:toport=22:toaddr=192.168.122.13

나는 2개의 영역을 사용하고 있습니다: externaldmz:

dmz
  interfaces: virbr0
external
  interfaces: wlp8s1

VM 중 하나는 다음과 같은 네트워크 구성을 가진 데이터베이스 서버입니다.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:df:79:1e brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.13/24 brd 192.168.122.255 scope global dynamic eth0
       valid_lft 2634sec preferred_lft 2634sec
    inet6 fe80::5054:ff:fedf:791e/64 scope link
       valid_lft forever preferred_lft forever

포트 22에서 수신 대기 중인 sshd를 실행 중입니다.

# systemctl status sshd
sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2016-05-22 20:08:45 CEST; 45min ago
...

# ss -ntl
State       Recv-Q Send-Q              Local Address:Port                             Peer Address:Port
LISTEN      0      128                             *:22                                          *:*
LISTEN      0      128                            :::22                                         :::*

그래서 나는 다음 튜토리얼과 공식 문서를 시도했고, 이로 인해 (하이퍼바이저에서) 다음 명령 체인이 표시되었습니다.

# firewall-cmd --zone=external --add-port=2022/tcp
success
# firewall-cmd --zone=external --add-forward-port=port=2022:proto=tcp:toport=22:toaddr=192.168.122.13
success

하지만 아쉽게도 (내 홈 네트워크에 연결된 노트북에서):

$ ssh 192.168.1.30 -p 2022
ssh: connect to host 192.168.1.30 port 2022: Connection refused

내가 테스트한 것들:

ssh 192.168.1.30 -p 2022내 노트북에서 발행하는 동안 Tcp 덤프가 발생합니다 .

하이퍼바이저에서:

# tcpdump -i wlp8s1 port 2022
21:02:50.661181 IP laptop.38052 > hypervisor.down: Flags [S], seq 885834855, win 29200, options [mss 1460,sackOK,TS val 4732781 ecr 0,nop,wscale 7], length 0

VM에서는 패킷이 수신되지 않습니다.

하이퍼바이저에서 VM으로 SSH를 통해 연결할 수 있습니다.

Firewalld 전달 명령을 다음과 같이 변경하면:

firewall-cmd --zone=external --add-forward-port=port=2022:proto=tcp:toport=22:toaddr=192.168.1.30

포트 2022를 사용하여 하이퍼바이저에 SSH로 연결할 수 있습니다. 이는 영역과 관련이 있다는 의미일까요?


제가 테스트할 수 있는 도움이나 추가 사항은 크게 감사하겠습니다! 감사해요!


추신

방화벽이 손상되었음을 나타내는 이와 유사한 질문을 발견했습니다. 방화벽을 사용한 Fedora 21 포트 전달(firewall-cmd); 정말 어떻게 작동하나요? 아니면 그렇습니까?

하지만 제가 제공한 추가 정보를 바탕으로 여기에서 해결책을 찾을 수 있기를 바랍니다 :).

답변1

몇 가지 구성을 확인해 볼 수도 있습니다. 커널 ex net.ipv4.ip_forward=1=> 에서 IP 전달을 켰습니까 /etc/sysctl.conf?

또한 가장 무도회를 활성화하려면 다음과 같은 명령을 실행해야 할 수도 있습니다.

firewall-cmd --zone=external --add-masquerade

관련 정보