OpenVPN 서버에서 동일한 장치에서 실행되는 OpenVPN 클라이언트로 트래픽을 리디렉션합니다.

OpenVPN 서버에서 동일한 장치에서 실행되는 OpenVPN 클라이언트로 트래픽을 리디렉션합니다.

홈 네트워크 외부에 있을 때 Pihole 설치를 사용하기 위해 연결하는 데 사용하는 OpenVPN 서버를 실행하는 Raspberry Pi 서버가 있습니다. 이것은 문제없이 작동합니다.

                     |          HOME NETWORK/Pihole  |
(Remote client)     --   (Open VPN Server )        ---         Internet

또한 OpenVPN 클라이언트를 통해 Pi 장치에서 연결할 수 있는 원격 VPN 서비스가 있습니다. 나는 또한 성공적으로 테스트했습니다.

                    |          HOME NETWORK/Pihole  |
                           (Open VPN Client )       -            VPN provider

최종 설치가 다음과 같이 보이도록 이 두 서비스를 결합하고 싶습니다.

                 |          HOME NETWORK /Pihole           |
(Remote client) -- (Open VPN Server) -- (Open VPN Client) --- Remote VPN service

질문에 설명된 것과 유사한 솔루션을 시도했습니다(활성 OpenVPN 클라이언트가 있는 Wireguard 서버), 그러나 결과는 비슷합니다. Open VPN 클라이언트(tun1)가 활성화되면 서버(tun0)에 액세스할 수 없습니다.

두 인터페이스 tun[01]이 모두 작동 중일 때 라우팅 테이블의 모습은 다음과 같습니다.

0.0.0.0/1 via 10.50.11.5 dev tun1
default via 192.168.1.1 dev wlan0 src 192.168.1.164 metric 303
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
10.50.11.1 via 10.50.11.5 dev tun1
10.50.11.5 dev tun1 proto kernel scope link src 10.50.11.6
128.0.0.0/1 via 10.50.11.5 dev tun1
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.164 metric 303
199.116.115.135 via 192.168.1.1 dev wlan0

이것은 연결을 시도할 때 openvpn 서버의 현재 출력입니다.

pi@raspberrypi:/etc/openvpn $ sudo more openvpn-status.log
OpenVPN CLIENT LIST
Updated,Sat Jun 29 23:30:41 2019
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
UNDEF,x.x.x.x:39159,860,442,Sat Jun 29 23:30:02 2019

오류 로그는 다음과 같습니다.

Sat Jun 29 23:34:47 2019 x.x.x.x:28162 TLS Error: incoming packet authentication failed from [AF_INET]172.58.87.22:28162
Sat Jun 29 23:34:48 2019 x.x.x.x:28162 Authenticate/Decrypt packet error: bad packet ID (may be a replay): [ #1 / time = (1561869285) Sat Jun 29 23:34:45 2019 ] -- see the man page entry for --no-replay and --replay-window for more
info or silence this warning with --mute-replay-warnings
Sat Jun 29 23:34:48 2019 x.x.x.x:28162 TLS Error: incoming packet authentication failed from [AF_INET]x.x.x.x:28162

분명히 클라이언트 연결이 끊어졌나요?

나는 또한 해결책을 시도했다OpenVPN 클라이언트와 서버가 동일한 컴퓨터에 있습니다. 클라이언트가 연결될 때 서버가 연결을 허용하지 않습니다.이 질문을 게시한 후 이 사실을 알았지만 소용이 없었습니다. 이것은 내 문제와 직접적인 관련이 있는 것 같지만 여전히 작동하지 않습니다.

답변1

iptables -I POSTROUTING -t nat -s 10.8.0.0/24 -o tun1 -j MASQUERADE

openvpn 클라이언트 연결(tun1)을 통해 openvpn 서버(10.8.0.0/24)에서 나가는 트래픽을 라우팅하려면 이 규칙이 필요합니다.

홈 네트워크 외부에서 openvpn 서버에 액세스하려면 다음 규칙을 사용해야 합니다.이것답변:

ip rule add from 192.168.1.164 lookup 10           # Pi server
ip route add default via 192.168.1.1 table 10    # LAN router

어디192.168.1.164당신의 Pi-IP입니다.
VPN 트래픽만 허용하는 것에 대한 대안은 다음과 같습니다.

iptables -A PREROUTING -t mangle -p udp --dport 1149 -j MARK --set-mark 1
ip rule add fwmark 1 table 10
ip route add default via 192.168.1.1 dev wlan0 dev table 10

관련 정보