선택되고 안전한 라우팅을 사용하여 OpenVPN tun0 인터페이스의 경로 및 iptables 수정

선택되고 안전한 라우팅을 사용하여 OpenVPN tun0 인터페이스의 경로 및 iptables 수정

보안을 극대화하기 위해 타사 VPN을 사용하도록 라우터를 설정했습니다. 제가 사용하고 있는 ISP가 OpenVPN 프로토콜을 포함하여 알려진 모든 VPN 프로토콜을 차단했기 때문에 OpenVPN이 검열 ISP 방화벽에서 지문을 숨길 수 있도록 http 프록시를 사용하도록 라우터를 구성해야 합니다.


즉 , 연결된 장치에서 무제한 인터넷을 사용할 수 있도록 하기 위해 타사 상용 VPN과 OpenVPN tcp 구성 파일을 사용하고 있습니다.

OpenVPN 클라이언트가 서버에 연결하려면 http-proxy가 필요하므로 먼저 라우터에 http-proxy를 설정한 다음 OpenVPN 클라이언트를 인터넷에 연결합니다.

http-proxy와 OpenVPN 클라이언트는 모두 다음 환경에서 실행됩니다.같은OpenWRT 라우터,아니요별도의 장치!

즉, OpenVPN 서버 측의 많은 상업용 VPN 제공업체가 클라이언트가 연결을 설정한 후 클라이언트에 경로 및 게이트웨이 설정을 푸시하기 때문에 라우터 프로세서를 포함한 전체 클라이언트 LAN 인터페이스는 클라이언트 리디렉션 인터넷 트래픽을 사용해야 하며 결과적으로 wan에서 직접 인터넷을 가져와야 하는 라우터에서 실행되는 프록시 프로세스는 tun0 인터페이스 인터넷을 사용해야 하며 몇 초 후에 실패하고 결과적으로 openvpn 클라이언트가 너무 늦게 실패합니다.

앞서 언급한 문제를 방지하기 위해 추가했습니다.당기지 않는명령을클라이언트.ovpn파일.

저는 상용 VPN을 사용하고 있으니 참고해주세요OpenVPN 서버에 액세스할 수 없습니다.! 그리고 내 라우터는iptables(fw3)nftables(fw4)가 아니므로 client.ovpn 파일은 다음과 같습니다.

` 클라이언트 dev tun0 proto tcp 원격 XX.YY.ZZ.RR 443 nobind auth-user-pass cred.txt

persist-tun
......
http-proxy 192.168.55.1 1080 auto
http-proxy-retry
route-nopull

`

위 구성은 매력처럼 OpenVPN 서버(상용 서버)에 연결하고 내 OpenWRT 라우터 장치에 tun0 인터페이스를 생성합니다.

문제 없이 tun0 장치를 통해 웹사이트를 추적할 수 있습니다.

#traceroute -i tun0 www.yahoo.com
traceroute to www.yahoo.com (87.248.119.251), 30 hops max, 46 byte packets
 1  *  10.124.148.1 (10.124.148.1)  1357.499 ms  195.523 ms
 2  vlan112.as02.stk1.se.m247.ro (146.70.16.241)  199.262 ms  190.672 ms  *

즉, OpenVPN 서버에서 경로 및 방화벽 설정을 가져오지 않기 때문에 이 tun0 인터페이스가 생성되자마자 자체 경로 및 iptables 규칙을 만들어야 합니다.

하지만 더 설명하기 전에 내 라우터 로컬 IP 주소가 192.168.55.1이고 br-lan(lan 브리지) 장치가 DHCP 풀 주소 192.168.55.65-192.168.55.126 또는 더 좋게 말하면(255.255)에서 IP 주소를 가져오고 있다는 점을 언급해야 합니다. .255.192/26) 범위.

내 의도와 목표는 다음을 수행하도록 라우터를 설정하는 것입니다.

[a] br-lan의 모든 장치(범위 192.168.55.65-192.168.55.126)라우터 자체를 제외하고 192.168.55.1tun0 장치에서 ssh,dns,icmp,tcp,udp...를 포함한 모든 인터넷 트래픽을 가져와야 합니다.

[b] 보안상의 이유로 tun0 인터페이스가 없거나 tun0 인터페이스에서 응답이 없는 경우 라우터를 제외한 br-lan 장치(범위 192.168.55.65-192.168.55.126) 장치의 모든 인터넷 트래픽이 인터넷에서 차단되어야 합니다. 이는 언급된 모든 장치가 tun0이 작동하고 응답하는 경우에만 인터넷에 액세스할 수 있어야 함을 의미합니다.가중치가 부여된 경로 대체 경로와 같은 다른 대안은 없습니다.허용됩니다.

[c] 모든 br-lan 장치포함라우터, 프린터, PC, NAS 등은 제한 없이 동일한 서브넷에서 서로 찾아 통신할 수 있어야 합니다.

다음과 같은 경로를 가능하게 하기 위해 client.ovpn 구성 파일에 삽입할 수 있는 OpenVPN 명령이 있다는 것을 알고 있습니다.

풀 필터는 "리디렉션 게이트웨이"를 무시합니다.또는경로 192.168.55.64 255.255.255.192 하지만 위의 명령으로 인해 몇 번이나 잠겼고 라우터 웹페이지에 액세스할 수 없었으며 그 중 어느 것도 예상대로 작동하지 않았습니다.

또한 tun0 생성 후 다음 스크립트를 수동으로 실행했지만 인터넷 트래픽이 br-lan 장치의 tun0을 통과하지 못했습니다.

다음 파일에 ovpn 테이블을 만들었습니다.

/etc/iproute2/rt_tables
#reserved values
#
128     prelocal
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
1       ovpn

그리고

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

iptables -A FORWARD -i br-lan -o tun0 -s 192.168.55.64/26 -j ACCEPT
iptables -A FORWARD -i tun0 -o br-lan -j ACCEPT

iptables -A INPUT -i tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

ip route add default dev tun0 table ovpn
ip route add 192.168.55.64/26 dev br-lan table ovpn

ip rule add from 192.168.55.64/26 table ovpn

해결책을 찾기 위해 많이 검색했지만 tun0을 간단한 세미완 인터페이스로 처리해야 한다고 확신합니다.

다음은 추가 수동 라우팅이 없는 간단한 라우팅 테이블입니다.

#route -n  
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.8.1     0.0.0.0         UG    0      0        0 phy1-sta0
10.124.148.0    0.0.0.0         255.255.254.0   U     0      0        0 tun0
192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 phy1-sta0
192.168.55.0    0.0.0.0         255.255.255.0   U     0      0        0 br-lan

그리고 더

#ip route show
default via 192.168.8.1 dev phy1-sta0 proto static src 192.168.8.118
10.124.148.0/23 dev tun0 proto kernel scope link src 10.124.148.113
192.168.8.0/24 dev phy1-sta0 proto kernel scope link src 192.168.8.118
192.168.55.0/24 dev br-lan proto kernel scope link src 192.168.55.1

언급된 목표에 대한 힌트나 솔루션을 알려 주시면 감사하겠습니다. 저는 라우팅 및 iptables에 대해 멍청합니다.

그런데 나는 다음과 같은 필수 구성을 만드는 방법을 모릅니다.if_tun0_up.sh그리고if_tun0_down.shclient.ovpn 파일에서 자동으로 경로를 생성하고 지우도록 자동화되었습니다.

만들 수 있다는 것다양한 LAN 장치(br-lan)라우터를 제외하고VPN 공급자로부터 인터넷 트래픽을 확보합니다.

보안 및 차단LAN 사용자가 제한된 액세스를 할 수 없도록안전하지 않은인터넷. 자동화생성하고 삭제하는 작업경로 및 iptables 규칙~와 함께 열리는그리고폐쇄tun0 인터페이스.

답변1

완전한 대답은 아니지만 방향을 잡을 수 있습니다. client.ovpn에서 client.ovpn의 다음 명령문을 사용하여 VPN을 통해 이동할 네트워크를 지정합니다. 예:

route 10.0.0.0 255.255.255.0 vpn_gateway

상용 공급자를 사용하고 있으므로 tun0 장치는 풀에서 IP 주소를 가져오므로 LAN 장치에 연결할 수 있도록 설정하지 않는 것이 좋습니다. 대부분의 경우 원하는 서비스를 위해 열려 있는 포트가 없는 방화벽 IP입니다. 클라이언트 VPN입니다. VPN을 통해 LAN에 연결할 수 있게 하려면 자체 VPN 서버가 있는 사이트 간 VPN이 필요합니다.

관련 정보