OpenVPN: 클라이언트가 서버에 연결되었지만 = 방화벽이지만 LAN 내의 데이터베이스에 액세스할 수 없습니다.
5개의 VLAN이 있습니다.
vlan 2: 192.168.12.0/24
vlan 3: 192.168.13.0/24
vlan 4: 192.168.14.0/24
vlan 5: 192.168.15.0/24
vlan 6: 192.168.100.0/24
모든 LAN은 스위치 Cisco 3650 레이어 3에 연결됩니다. Switch Layer3 연결 방화벽(CentOS 6.2에는 Squid 및 Shorewall 4가 설치되어 있음)
방화벽에는 eth0: 172.16.1.101이 모뎀: 172.16.1.1에 연결되어 있고 eth1: 192.168.99.99가 스위치 레이어 3: 192.168.99.100에 연결되어 있습니다.
VPN 클라이언트가 연결되어 있으며 IP 클래스는 192.168.10.0/24입니다. 이제 LAN에서 인터넷으로의 모든 트래픽이 문제 없이 정상입니다.
클라이언트가 openvpn을 사용하여 서버에 성공적으로 연결했지만 LAN에 있는 컴퓨터에 ping을 보내거나 액세스할 수 없는 경우. 내가 뭘 잘못했나요?
답변1
라우팅 또는 방화벽 문제일 수 있습니다. 먼저 VPN 클라이언트에서 서버/방화벽을 ping할 수 있는지 확인해야 합니다. eth1 및 tun1 주소를 ping할 수 있는지 확인하십시오.
이러한 확인이 실패하면 경로가 누락되었을 수 있습니다. 아마도 openVPN은 클라이언트가 내부 서브넷에 대한 경로를 설정하도록 강제하지 않을 수도 있습니다.
클라이언트에서는 Linux 클라이언트라고 가정하고 실행하여 route -n
원격 LAN용 게이트웨이가 있는지 확인해야 합니다.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
192.168.99.0 192.168.10.## 255.255.255.0 UG 0 0 0 tun1
...
192.168.10.##은 서버/방화벽의 tun1 인터페이스 주소여야 합니다.
라우팅이 있는 경우 최소한 tun1 iface 주소로 ping을 보낼 수 있어야 합니다.
더 빠른 디버깅을 위해 해안벽을 비활성화할 수 있습니다. 방화벽 규칙을 확인해야 하는 방식으로 VPN tun 인터페이스에서 LAN으로 또는 그 반대로 전달을 활성화해야 합니다.
IPTable을 사용하는 방법은 다음과 같습니다.
# iptables -A FORWARD -i tun+ -o eth1 -j ACCEPT
# iptables -A FORWARD -i eth1 -o tun+ -j ACCEPT
tun+는 "any tun"을 의미하므로 실제 tun 장치를 사용하고 ifconfig로 확인해야 합니다.