OpenVPN 구성

OpenVPN 구성

집에 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.2VPS에서는 이를 수행할 수 없습니다(이것이 가능하기를 바랐습니다).

또한 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

관련 정보