집에 LAN이 있습니다. NAT 뒤에 위치하며 외부적으로 동적 IP 주소를 사용합니다. 내 집 LAN에서는 192.168.1.x IP 주소를 사용합니다.
또한 IP 주소가 185.xxx인 VPS가 있습니다. 지금 하고 싶은 것은 OpenVPN을 사용하여 홈 LAN과 VPS 사이에 터널을 설정하여 VPS가 홈 LAN의 공유 파일에 액세스할 수 있도록 하는 것입니다.
OpenSSL을 사용하여 OpenVPN과 모든 인증서 등을 설정했습니다. 내가 달릴 때
openvpn --config server.conf
VPS 및
openvpn --config client.conf
내 LAN의 PC에서 VPN 연결이 설정되고 VPS와 PC 모두 10.8.xx IP 주소를 가진 TUN 장치를 얻습니다. 지금까지는 두 대의 컴퓨터가 연결된 것으로 보이며 오류 메시지가 표시되지 않습니다.
그런데 어떻게 진행해야 할지 모르겠습니다.
이 내 꺼야 server.conf
:
server 10.8.0.0 255.255.255.0
verb 3
key /etc/openvpn/server/server.key
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
dh /etc/openvpn/server/dh.pem
keepalive 10 120
persist-key
persist-tun
comp-lzo
route 192.168.1.0 255.255.255.0
dhcp-option DNS 192.168.1.1
user nobody
group nobody
proto udp
port 1194
dev tun1194
status openvpn-status.log
이 내 꺼야 client.conf
:
client
nobind
dev tun
redirect-gateway def1 bypass-dhcp
remote 185.x.x.x 1194 udp
comp-lzo yes
redirect-gateway def1
key /etc/openvpn/client.key
cert /etc/openvpn/client.crt
ca /etc/openvpn/ca.crt
VPS에서 내 LAN으로 트래픽을 보낼 수 있도록 클라이언트와 서버를 어떻게 구성해야 합니까? (예: VPS에 SMB/CIFS 공유 마운트, 예: 192.168.1.2)
이상적으로는 가능하다면 VPN 연결이 내 홈 라우터를 DHCP 서버로 사용하는 것입니다. 를 사용해 보았지만 dhcp-option
아무런 효과가 없었습니다. 또한 VPS에서 LAN으로 트래픽을 라우팅하지 않는 것 같습니다. 즉, ping 192.168.1.2
VPS에서는 이를 수행할 수 없습니다(이것이 가능하기를 바랐습니다).
또한 VPS에서 실행되는 VPN 서버에 내부적으로 한 대 이상의 PC를 연결하고 세 번째 PC도 내 홈 LAN에 액세스하도록 할 수 있습니까? 이와 같이:
Some PC on the internet <---> VPS <---> VPN tunnel <---> Home LAN
답변1
서브넷 간 라우팅을 설정하려면 해당 서브넷을 보급해야 합니다. 이 옵션을 사용해 보세요 push "route 192.168.1.0 255.255.255.0"
. 특히 OpenVPN 문서를 참조하세요.https://community.openvpn.net/openvpn/wiki/BridgingAndRouting.
사이트 간 OpenVPN 터널(=라우팅을 통한 지점 간)의 클라이언트 및 서버 OpenVPN tun 인터페이스는 선언한 정확한 IP 주소를 사용합니다.
답변2
나는 약간의 진전을 이루었습니다. 서버에서 이 구성을 사용하십시오.
server 10.8.0.0 255.255.255.0
verb 3
key /etc/openvpn/server/server.key
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/server.crt
dh /etc/openvpn/server/dh.pem
keepalive 10 120
persist-key
persist-tun
comp-lzo
route 192.168.1.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "dhcp-option DNS 192.168.1.1"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 1.0.0.1"
push "redirect-gateway def1 bypass-dhcp"
user nobody
group nobody
proto udp
port 1194
dev tun1194
status openvpn-status.log
그리고
client
nobind
dev tun
redirect-gateway def1 bypass-dhcp
remote 185.x.x.x 1194 udp
comp-lzo yes
redirect-gateway def1
#iroute 192.168.1.0 255.255.255.0
key /etc/openvpn/client.key
cert /etc/openvpn/client.crt
ca /etc/openvpn/ca.crt
클라이언트에서 OpenVPN 연결을 설정한 후 다음 라우팅 테이블을 얻습니다.
섬기는 사람:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway.netcup. 0.0.0.0 UG 100 0 0 ens3
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun1194
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun1194
185.x.x.x 0.0.0.0 255.255.252.0 U 100 0 0 ens3
192.168.1.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun1194
고객:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
default gateway 0.0.0.0 UG 0 0 0 eth0
10.8.0.1 10.8.0.5 255.255.255.255 UGH 0 0 0 tun0
10.8.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
128.0.0.0 10.8.0.5 128.0.0.0 UG 0 0 0 tun0
link-local 0.0.0.0 255.255.0.0 U 1118 0 0 eth0
185.x.x.x gateway 255.255.255.255 UGH 0 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
그러나 아직 ping 192.168.1.1
서버에서는 접근이 불가능합니다. 물론 클라이언트에서 IP 전달을 활성화했습니다.
sysctl -w net/ipv4/ip_forward=1
또한 클라이언트에서 iptables 구성을 시도했습니다.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE