자체 호스팅 오프사이트 OpenVPN 서버에 연결하려고 하는 Linux 클라이언트가 있습니다. 나는 이것에 대해 한동안 머리를 부딪쳐 왔습니다.
Linux 클라이언트(Ubuntu 16.04 서버 및 소수의 openvpn 클라이언트 도커를 사용하여 시도)와 연결을 시도하는 동안 Windows 클라이언트는 잘 연결되고 올바르게 작동합니다(모든 트래픽이 라우팅되고 서브넷을 통해 액세스 가능 등). 서버 뒤에는 다음이 포함됩니다.
TUN/TAP device tun0 opened
TUN/TAP TX queue length set to 100
do_ifconfig, tt->did_ifconfig_ipv6_setup=0
/usr/bin/ip link set dev tun0 up mtu 1500
/usr/bin/ip addr add dev tun0 10.8.0.101/26 broadcast 10.8.0.127
/usr/bin/ip route add 0.0.0.0/1 via 10.8.0.1
Error: Nexthop has invalid gateway.
ERROR: Linux route add command failed: external program exited with error status: 2
/usr/bin/ip route add 128.0.0.0/1 via 10.8.0.1
Error: Nexthop has invalid gateway.
ERROR: Linux route add command failed: external program exited with error status: 2
Initialization Sequence Completed
이는 트래픽이 VPN을 통과하는 것을 방지합니다. (물론) iptables 는 ifconfig
올바르지 않은 것처럼 보이지만(도커 컨테이너에서 테스트됨):
# ip route
default via 172.17.0.1 dev eth0
10.8.0.64/26 dev tun0 proto kernel scope link src 10.8.0.101
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.7
클라이언트 ovpn을 Windows 컴퓨터로 이동하면 완벽한 연결이 가능합니다. 나는 서버를 설정했다이 설치 스크립트다음의 도움으로 고정 IP를 수동으로 추가했습니다.이 가이드다음과 같은 서버 측 설정을 생성합니다.
./server.conf
port 42069
proto udp
dev tun
user nobody
group nogroup
persist-key
persist-tun
keepalive 10 120
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
push "redirect-gateway def1"
crl-verify crl.pem
ca ca.crt
cert server_fWRfyP6vszBv9CaM.crt
key server_fWRfyP6vszBv9CaM.key
tls-auth tls-auth.key 0
dh dh.pem
auth SHA256
cipher AES-128-CBC
tls-server
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
status openvpn.log
verb 3
client-config-dir /etc/openvpn/staticclients
./staticclients/[클라이언트 이름]
ifconfig-push 10.8.0.101 255.255.255.192
클라이언트 측 구성은 다음과 같습니다.
[클라이언트 이름].ovpn
remote *** 42069
client
proto udp
dev tun
resolv-retry infinite
nobind
persist-key
remote-cert-tls server
verify-x509-name server_fWRfyP6vszBv9CaM name
auth SHA256
auth-nocache
cipher AES-128-CBC
tls-client
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
setenv opt block-outside-dns
verb 3
<ca>
-----BEGIN CERTIFICATE-----
...
도움을 주시면 감사하겠습니다. 필요에 따라 자세한 내용을 제공해 드리겠습니다.
답변1
서브넷을 255.255.255.192(/26)에서 255.255.255.0(/24)로 변경하면 ./staticclients/[clientname]
문제가 해결되었습니다.