CentOS 컴퓨터에 OpenVPN을 설치했습니다. 클라이언트는 VPN에 제대로 연결하고 해당 리소스에 액세스하여 서버의 LAN 주소를 핑할 수 있습니다. 그러나 OpenVPN 클라이언트가 OpenVPN 서버에 연결된 LAN의 컴퓨터에 액세스할 수 있기를 원합니다. 서버에서 IP 전달을 활성화하여 읽은 대로 수행해야 하는 경로를 푸시했지만 OpenVPN 클라이언트를 테스트할 때 서버 LAN에 있는 컴퓨터를 ping할 수도 없습니다.
방화벽을 비활성화한 후 문제는 사라졌고 클라이언트는 openvpn 서버 뒤의 LAN에 있는 컴퓨터를 정상적으로 핑할 수 있었습니다. openvpn 영역을 테스트처럼 허용하기 위해 Firewalld에 set-target을 설정하고 openvpn 서브넷의 모든 트래픽을 허용하는 규칙을 만들었지만 아무것도 변경되지 않았습니다. 작동하는 것처럼 보이는 유일한 방법은 방화벽을 완전히 중지하는 것입니다. 다른 사람 중에 이런 문제가 있어서 나를 올바른 방향으로 안내해 줄 수 있는 사람이 있나요?
이는 openvpn이 위치한 지역에 대한 Firewalld list 명령 출력의 복사본입니다.
Firewalld를 확인한 후에는 해당 포트를 허용하기 위해 http/https, openvpn 및 ssh 서비스를 선택하는 것 외에 이 시스템에는 풍부한 규칙이나 수동 포트 전달이 없습니다. 다음은 openvpn 영역에 대한 list 명령의 복사본입니다.
target: default
icmp-block-inversion: no
interfaces: enp8s0 enp9s0 tun0
sources:
services: http https openvpn ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
결국 다음 규칙을 추가해야 했습니다.
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i tun0 -o virbr2 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i virbr2 -o tun0 -j ACCEPT
유일한 문제는 이것이 작동하는 동안 옵션을 사용하여 추가하려고 하면 permanent
적용되지 않는다는 것입니다.direct.xml
고마워요, 제임스.