그래서 저는 합리적으로 기본적인 OpenVPN 서버를 설정했는데 tun
서버가 연결된 모든 클라이언트와 통신할 수 있도록 서버를 가져오는 데 어려움을 겪고 있습니다.
현재 두 세트의 클라이언트가 있는데, 일부는 VPN을 사용하여 인터넷에 연결하지 않고(단지 다른 클라이언트와 대화하기 위해), 일부는 redirect-gateway
VPN을 통해 모든 트래픽을 전송하는 데 사용됩니다.
내가 설정한 방법을 사용하면 연결된 모든 클라이언트가 서버 및 다른 클라이언트와 통신할 수 있습니다. 그러나 서버에서는 redirect-gateway
VPN을 통해 모든 트래픽을 전송하는 데 사용하는 클라이언트에만 연결할 수 있습니다(예: 핑). 해당 구성을 사용하지 않는 클라이언트는 서버에 ping을 보낼 수 있지만 서버는 ping을 다시 보낼 수 없습니다(응답하지 않고 시간 초과됨).
VPN을 기본 게이트웨이로 사용하지 않는 경우에도 서버가 클라이언트와 계속 통신할 수 있도록 라우팅을 설정하려면 어떻게 해야 합니까?
관련 서버 구성은 다음과 같습니다.
port 1194
proto udp
dev tun
topology subnet
push "topology subnet"
server 10.7.0.0 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
client-config-dir /etc/openvpn/ccd
client-to-client
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nobody
persist-key
persist-tun
explicit-exit-notify 1
서버의 클라이언트 구성 디렉터리에 각 클라이언트에는 다음과 같은 파일이 있습니다(각각에 고정 IP를 제공하기 위한 것임).
ifconfig-push 10.7.0.10 255.255.255.0
로컬 클라이언트 구성의 관련 비트:
client
dev tun
proto udp
remote {server's public ip} 1194
float
keepalive 15 60
ns-cert-type server
key-direction 1
tun-mtu 1500
cipher AES-256-CBC
keysize 256
comp-lzo yes
nobind
인터넷 액세스를 위해 VPN을 사용하는 클라이언트가 redirect-gateway def1 bypass-dhcp
해당 구성에 추가됩니다.
내 서버의 방화벽을 사용하고 있습니다 ufw
. 관련 구성은 다음과 같습니다(/etc/ufw/before.rules에 있음).
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.7.0.0/8 -j SNAT --to-source {server's public ip}
OpenVZ VPS에서 실행 중이므로 을 사용할 수 없지만 MASQUERADE
위의 내용도 잘 작동하는 것 같습니다.
이것을 올바르게 설정하는 방법에 대한 아이디어가 있습니까? 미리 감사드립니다. 중요한 경우 서버는 CentOS를 실행하고 있습니다.