acesso extrenal ao servidor ssh usando regras iptables

2

Eu tenho um roteador executando DD-WRT . Na minha rede eu tenho um dispositivo NAS que executa um servidor OpenSSH . Eu quero ser capaz de acessar o servidor OpenSSH de fora da LAN .

Isso é feito adicionando regras ao iptables

O roteador foi configurado:

  1. Cliente OpenVPN
  2. DDNS

Supondo:

  • <routerIp> do IP do roteador interno

  • <routerPort> da porta no roteador para ouvir o tráfego de entrada

  • <nasIP> do IP do NAS interno

  • <nasPort> a porta do servidor OpenSSH no NAS

Também tenho atualmente <routerPort> == <nasPort>

Eu tenho que:

  1. abra uma porta no roteador
  2. direcione o tráfego que chega a essa porta para o NAS .

As regras que devem realizar essa tarefa, mas não estão funcionando, são:

iptables -A FORWARD -i tun1 -p tcp -d <nasIP> --dport <nasPort> -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d <routerIp> --dport <routerPort> -j DNAT --to-destination <nasIP>:<nasPort>

Referências:

EDIT de acordo com a resposta de RalfFriedl:

Alterou as regras para:

iptables -A FORWARD -i tun1 -p tcp -d <nasIP> --dport <nasPort> -j ACCEPT
iptables -t nat -A PREROUTING -i tun1 -p tcp --dport <nasPort> -j DNAT --to-destination <nasIP>:<nasPort>

mas também não funcionou

Como posso obter o IP externo?

EDIT saída de ip a :

1: lo:  mtu 65536 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: imq0:  mtu 1500 qdisc fq_codel qlen 30
    link/void 
3: imq1:  mtu 16000 qdisc fq_codel qlen 11000
    link/void 
4: eth0:  mtu 1492 qdisc htb qlen 1000
    link/ether dc:ef:09:f2:87:e9 brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.3/24 brd 192.168.100.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::deef:9ff:fef2:87e9/64 scope link 
       valid_lft forever preferred_lft forever
5: eth1:  mtu 1500 qdisc fq_codel master br0 qlen 1000
    link/ether dc:ef:09:f2:87:e8 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::deef:9ff:fef2:87e8/64 scope link 
       valid_lft forever preferred_lft forever
6: teql0:  mtu 1500 qdisc noop qlen 100
    link/void 
19: ip6tnl0@NONE:  mtu 1452 qdisc noop 
    link/tunnel6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
20: br0:  mtu 1500 qdisc noqueue 
    link/ether dc:ef:09:f2:87:e8 brd ff:ff:ff:ff:ff:ff
    inet 169.254.255.1/16 brd 169.254.255.255 scope global br0:0
       valid_lft forever preferred_lft forever
    inet 192.168.2.1/24 brd 192.168.2.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::deef:9ff:fef2:87e8/64 scope link 
       valid_lft forever preferred_lft forever
21: ath0:  mtu 1500 qdisc noqueue master br0 
    link/ether 0a:b1:2c:d4:5e:f0 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::8b1:2cff:fed4:5ef0/64 scope link 
       valid_lft forever preferred_lft forever
22: ath0.1:  mtu 1500 qdisc noqueue 
    link/ether 08:b1:2c:d4:5e:f0 brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.1/24 brd 172.16.1.255 scope global ath0.1
       valid_lft forever preferred_lft forever
    inet6 fe80::ab1:2cff:fed4:5ef0/64 scope link 
       valid_lft forever preferred_lft forever
23: ath1:  mtu 1500 qdisc noqueue master br0 
    link/ether dc:ef:09:f2:87:eb brd ff:ff:ff:ff:ff:ff
    inet6 fe80::deef:9ff:fef2:87eb/64 scope link 
       valid_lft forever preferred_lft forever
24: tun1:  mtu 1500 qdisc fq_codel qlen 100
    link/[65534] 
    inet 10.128.250.xxx/16 brd 10.128.255.xxx scope global tun1
       valid_lft forever preferred_lft forever
    
por T81 19.08.2018 / 11:51

2 respostas

1

Sua segunda regra contém -d <routerIp> , mas, de acordo com sua descrição, é o IP do roteador interno.

Pacotes de fora não chegam ao IP interno. Se o seu IP externo é estático, você pode inserir o seu IP externo, caso contrário, basta especificar a interface externa, que parece ser tun1 , caso contrário você também deve adaptar sua primeira regra.

    
por 19.08.2018 / 12:45
1

Como RalfFriedl apontou corretamente, já que estou me conectando a um provedor de VPN, devo fazer o login no site e adicionar a porta que desejo usar em meu perfil.

Depois disso, as regras são:

iptables -A FORWARD -i tun1 -p tcp -d <nasIP> --dport <nasPort> -j ACCEPT
iptables -t nat -I PREROUTING -i tun1 -p tcp --dport <nasPort> -j DNAT --to-destination <nasIP>

algo que já fiz dezenas de vezes no passado ...

    
por 19.08.2018 / 15:56