iptables를 사용하여 포트 포워딩과 함께 보조 네트워크 인터페이스 트래픽을 tun0 (OpenVPN)으로 리디렉션

Bahador

인터넷에서 서비스에 액세스 할 수 있도록 포트 포워딩을 수행해야하는 NAS 서버가 있습니다. 그러나 내 ISP가 포트를 차단하고 있으므로 저렴한 Ubuntu VPS를 구입하여 그곳에서 OpenVPN 서버를 실행 한 다음 어떻게 든 전체 NAS 트래픽과 필요한 포트를 그곳으로 리디렉션했습니다.

내 설정은 다음과 같습니다.

                                        +--------------------------------+
                                        |            Raspi               |
                      (192.168.0.101/24)|                                |(192.168.1.1/24)
 (192.168.0.1/24) AP<>=================={wlan0                       eth0}================<>NAS (192.168.1.102/24)
                                        |   \                        /   |
                                        |    +----------------------+    |
                                        |    |     iptables and     |    |
                                        |    |    routing engine    |    |
                                        |    +-----------+----------+    |
                                        |                |               |
                                        |             {tun0}             |
                                        |            10.8.0.6            |
                                        +--------------------------------+

내 VPS IP를 사용하여 내 Raspberry Pi에 SSH로 연결할 수 있으므로 VPS 측이 올바르게 구성되어 있습니다. 그것이 작동하도록 만들기 위해 내가 거기에서 한 일입니다.

iptables -t nat -A PREROUTING -d A.B.C.D -p tcp --dport 22 -j DNAT --to-dest 10.8.0.6:22
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 22 -j SNAT --to-source 10.8.0.1

내 OpenVPN 서버 구성 :

port X
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3

나는 또한했다 :

sysctl -w net.ipv4.ip_forward=1

넣어 DEFAULT_FORWARD_POLICY="ACCEPT"으로 /etc/default/ufw도 추가

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0] 
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

...에

/etc/ufw/before.rules

OpenVPN 클라이언트 구성 :

client
dev tun
proto udp
remote A.B.C.D X
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3

<ca>
XXX
</ca>
<cert>
YYY
</cert>
<key>
ZZZ
</key>

eth0 트래픽을 tun0으로 리디렉션하고 터널을 통해 포트 Y 및 Z를 전달하려면 어떻게해야합니까?

다른 포트의 경우 포트 22와 마찬가지로 VPS를 재구성해야한다는 것을 알고 있습니다.

Bahador

다음 명령을 사용하여 내 Raspi의 트래픽을 리디렉션했습니다.

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o tun0 -j MASQUERADE

내 NAS에서 경로를 추적하면 터널을 통과합니다. 이제이 터널의 포트만 전달하면됩니다.

업데이트 (전체 프로젝트 해결) :

몇 시간 동안 검색 한 후 마침내 올바른 포트 전달 명령을 찾았습니다. 내 Raspi에서 다음 명령을 실행했습니다.

iptables -t nat -I PREROUTING -p tcp -i tun0 -d 10.8.0.6 --dport <port> -j DNAT --to 192.168.1.102:<port>
iptables -I FORWARD -p tcp -i tun0 -d 192.168.1.102 --dport <port> -j ACCEPT

또한이 스레드의 시작 부분에서 포트 22에 대해 처음에 수행 한대로 내 VPS에서 다음 명령을 수행합니다.

iptables -t nat -A PREROUTING -d 217.160.14.45 -p tcp --dport <port> -j DNAT --to-dest 10.8.0.6:<port>
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport <port> -j SNAT --to-source 10.8.0.1

이제 ISP의 방화벽을 우회했고 VPS 측에서 포트 포워딩을 사용하여 NAS와 그 서비스에 액세스 할 수 있습니다. 이것을 튜토리얼로 사용할 수 있습니다. :)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관