Redireciona o tráfego da interface de rede secundária junto com o encaminhamento de porta para tun0 (OpenVPN) usando iptables

2

Eu tenho um servidor NAS que eu deveria fazer o encaminhamento de porta para que ele possa tornar seus serviços acessíveis a partir da Internet. No entanto, meu ISP está bloqueando portas, então eu consegui comprar um Ubuntu VPS barato para rodar um servidor OpenVPN lá e então redirecionar de alguma forma todo o tráfego NAS e as portas necessárias para lá.

Minha configuração é a seguinte:

                                        +--------------------------------+
                                        |            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            |
                                        +--------------------------------+

O lado VPS está configurado corretamente, eu acho, como eu sou capaz de SSH em meu Raspberry Pi usando o meu IP VPS. Foi o que eu fiz lá para fazer funcionar:

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

Minha configuração do servidor 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

Eu também fiz:

sysctl -w net.ipv4.ip_forward=1

e coloque DEFAULT_FORWARD_POLICY="ACCEPT" em /etc/default/ufw e também adicionou

# 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

para

/etc/ufw/before.rules

Configuração do cliente 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>

Como faço para redirecionar o tráfego eth0 para tun0 e encaminhar as portas Y e Z pelo túnel?

Eu só sei que para as outras portas eu deveria reconfigurar meu VPS de acordo com a porta 22.

    
por Bahador 03.04.2016 / 01:06

1 resposta

1

Consegui redirecionar o tráfego no meu Raspi com o seguinte comando:

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

Quando eu desloco para fora do meu NAS, ele passa pelo túnel. Agora só preciso encaminhar portas neste túnel.

UPDATE (resolvendo todo o projeto):

Eu finalmente encontrei os comandos de encaminhamento de porta corretos depois de horas de pesquisa. Eu corri os seguintes comandos no meu 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

E também estes comandos no meu VPS, como eu fiz no começo para a porta 22 no começo deste tópico:

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

Portanto, agora ignorei o firewall do meu provedor e posso acessar meu NAS e seus serviços usando o encaminhamento de porta no lado do VPS. Você pode usar isso como um tutorial:)

    
por 04.04.2016 / 00:24