OpenVPN에서 로그아웃할 수 없습니다

OpenVPN에서 로그아웃할 수 없습니다

방금 Google Cloud 플랫폼에 Debian 머신을 설치했습니다. 이제 Debian 서버와 Windows 클라이언트가 생겼습니다. "일반적인" 방식으로 클라이언트에서 서버로 SSH를 통해 연결할 수 있습니다. 그런 다음 Debian에 OpenVPN 서버를 설치했습니다. 이제 OpenVPN을 통해 두 컴퓨터를 연결할 수 있습니다.

하지만 이제 내 모든 질문이 시작됩니다. VPN을 설정하면 두 장치 간에 통신할 수 있지만 다른 장치와는 통신할 수 없습니다!

VPN에 연결하면 클라이언트가 나머지 네트워크와의 통신을 중단합니다.

VPN에서 다음 주소를 원합니다. 172.16.0.1 서버 172.16.0.2 클라이언트

서버 측에서

    # netstat -nr -f inet
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         10.138.0.1      0.0.0.0         UG        0 0          0 ens4
    10.138.0.1      0.0.0.0         255.255.255.255 UH        0 0          0 ens4
    172.16.0.0      0.0.0.0         255.255.255.0   U         0 0          0 tun0
    
# cat  /proc/sys/net/ipv4/ip_forward
1


    # iptables -S
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT
    -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
    -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A FORWARD -s 10.8.0.0/24 -j ACCEPT

내가 무엇을 놓치고 있나요? 추가 정보가 필요하면 알려주시기 바랍니다. 감사해요

내 클라이언트 OpenVPN 구성 파일은 다음과 같습니다.

client
dev tun
proto udp
remote xxx.hopto.org 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
block-outside-dns
verb 3
<ca>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
xxx
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
xxx
-----END PRIVATE KEY-----
</key>
<tls-crypt>
-----BEGIN OpenVPN Static key V1-----
xxx
-----END OpenVPN Static key V1-----
</tls-crypt>

이것은 서버 측입니다.

$ cat /etc/openvpn/server/server.conf
local 10.138.0.2
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-crypt tc.key
topology subnet
server 172.16.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
user nobody
group nogroup
persist-key
persist-tun
verb 3
crl-verify crl.pem
explicit-exit-notify

연결 시 클라이언트로부터 추가 정보:

>ping 1.1.1.1

Esecuzione di Ping 1.1.1.1 con 32 byte di dati:
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.
Richiesta scaduta.

Statistiche Ping per 1.1.1.1:
    Pacchetti: Trasmessi = 4, Ricevuti = 0,
    Persi = 4 (100% persi),

>tracert 1.1.1.1

Traccia instradamento verso 1.1.1.1 su un massimo di 30 punti di passaggio

  1   150 ms   149 ms   150 ms  172.16.0.1
  2     *        *        *     Richiesta scaduta.
  3     *        *        *     Richiesta scaduta.
  4     *        *        *     Richiesta scaduta.
  5     *        *        *     Richiesta scaduta.

>nslookup unix.stackexchange.com 1.1.1.1
DNS request timed out.
    timeout was 2 seconds.
Server:  UnKnown
Address:  1.1.1.1

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.

2022년 3월 10일에 업데이트됨

이것은 VPN이 없는 추적기 로그입니다.

>tracert 1.1.1.1

Traccia instradamento verso one.one.one.one [1.1.1.1]
su un massimo di 30 punti di passaggio:

  1     1 ms     2 ms     2 ms  192.168.1.1
  2     3 ms     1 ms     3 ms  2.112.209.88.static.monaco.mc [88.209.112.2]
  3     3 ms     2 ms     2 ms  l5.pe01ftv.monaco-telecom.net [195.78.0.66]
  4     *        3 ms     3 ms  l1.pe01cst.monaco-telecom.net [195.78.0.65]
  5     6 ms     6 ms     8 ms  l500.pe01mrs.monaco-telecom.net [195.78.0.89]
  6     *        *        *     Richiesta scaduta.
  7     8 ms     7 ms     6 ms  be2065.ccr31.mrs02.atlas.cogentco.com [154.54.37.245]
  8    13 ms     *        *     149.6.154.130
  9    12 ms    12 ms    11 ms  one.one.one.one [1.1.1.1]

Traccia completata.

2022년 3월 18일에 업데이트됨

해결책을 찾기 위해 온라인으로 검색했습니다.

웹사이트에 있는데 내 구성과 해당 웹사이트의 구성 사이에 차이점이 있음을 발견했습니다.

다음 명령을 실행하십시오.

$ sudo systemctl cat openvpn-iptables.service

나는 다음과 같은 결과를 얻었음을 알았습니다.

ExecStart=/usr/sbin/iptables -t nat -A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to 10.138.0.2

웹사이트에서네트워크 주소 변환일부는 공개 주소로 지정됩니다. 이것이 문제가 될 수 있습니까?

답변1

문제는 이것이다:

push "redirect-gateway def1 bypass-dhcp"

man openvpnOpenVPN의 문서( 시작하기에 좋은 곳) 를 읽으면 다음 옵션의 기능을 이해할 수 있습니다.

--redirect-gateway flags…VPN을 통해 나가는 모든 IP 트래픽을 리디렉션하는 라우팅 명령을 자동으로 실행합니다. 이것은 클라이언트 옵션입니다.

그런 다음 두 가지 옵션 플래그에 대해 설명합니다.

def10.0.0.0/1128.0.0.0/1- 대신 및를 사용하여 기본 게이트웨이를 재정의하려면 이 플래그를 사용합니다 0.0.0.0/0. 이는 원래 기본 게이트웨이를 덮어쓰지만 지우지 않는다는 장점이 있습니다.

bypass-dhcp-- 로컬이 아닌 경우 터널을 우회하는 DHCP 서버에 대한 직접 경로를 추가합니다[...].

redirect-gateway옵션은 연결 시 서버에서 클라이언트로 전송됩니다. 클라이언트에게 보내라고 지시합니다.모든 트래픽VPN을 통해. 대상 네트워크의 데이터뿐만 아니라 모든 것.

이 옵션을 원하지 않는 것 같지만 대상 네트워크의 트래픽만 VPN을 통해 라우팅되어야 합니다.

관련 정보