
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이 Switch cisco 3650 layer3에 연결되어 있었습니다. 스위치 레이어 3은 방화벽(CentOS 6.2 설치 오징어 및 해안벽 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에 있는 어떤 컴퓨터에도 핑하거나 액세스할 수 없습니다. 내가 뭘 잘못했나요?
답변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로 확인하세요.