natting servidor ftp dentro de lan com porta de gateway 1965

2

Eu quero encaminhar o acesso no meu gateway (ip interno: 192.168.4.4) da porta externa 1965 para um servidor FTP dentro do meu lan (192.168.4.2)

Assim, em outro termo, alguém acessando com FTP meu gateway: 1965 será redirecionado para 192.168.4.2:21

Eu fiz isso no passado com kernels linux mais antigos, e funcionou.

Parece que, desde os kernels 4.9, as coisas mudaram e não consigo atualizar meu script iptables.

ip forwarding e nf conntracking estão habilitados:

net.ipv4.ip_forward = 1
net.netfilter.nf_conntrack_helper = 1

e os módulos necessários são carregados:

nf_nat_ftp             16384  0
nf_conntrack_ftp       20480  3 nf_nat_ftp
nf_nat                 24576  5 xt_nat,nf_nat_redirect,nf_nat_ftp,nf_nat_masquerade_ipv4,nf_nat_ipv4
nf_conntrack           94208  9 nf_conntrack_ftp,nf_conntrack_ipv4,xt_helper,nf_nat_ftp,xt_CT,nf_nat_masquerade_ipv4,xt_conntrack,nf_nat_ipv4,nf_nat

iptable_raw            16384  1
iptable_nat            16384  1
nf_nat_ipv4            16384  1 iptable_nat
iptable_filter         16384  1
ip_tables              28672  3 iptable_filter,iptable_raw,iptable_nat

minha configuração do iptables (gerada pelo iptables-save, com contadores)

Fiz alterações principalmente em raw que não eram necessárias em kernels 4.1 para mascarar o FTP.

Eu entendi que agora você tem que usar o CT helper.

Por questões de legibilidade, cortei todas as regras de registro e tudo o que não estava relacionado ao ftp (samba, ssh,…)

raw

PREROUTING [21:1052] -A PREROUTING -p tcp -m tcp --dport 21 -j CT --helper ftp [20:1128] -A PREROUTING -p tcp -m tcp --dport 1965 -j CT --helper ftp

nat

PREROUTING [20:1128] -A PREROUTING -i wan -p tcp -m tcp --dport 1965 -j DNAT --to-destination 192.168.4.2:21

POSTROUTING [0:0] -A POSTROUTING -s 192.168.0.0/16 -o wan -j MASQUERADE [22:1248] -A POSTROUTING -d 192.168.4.2/32 -j SNAT --to-source 192.168.4.4

filtro

INPUT [564393:501714526] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT [0:0] -A INPUT -m helper --helper ftp -j ACCEPT [0:0] -A INPUT -p tcp -m tcp --dport 1965 -j ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

FORWARD [0:0] -A FORWARD -p tcp -m tcp --sport 20 --dport 1965 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT [20:1128] -A FORWARD -d 192.168.4.2/32 -i wan -p tcp -m tcp --dport 21 -j ACCEPT [0:0] -A FORWARD -p tcp -m tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT [0:0] -A FORWARD -p tcp -m tcp --sport 20 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Obrigado pela leitura.

    
por Jérome Boham 13.05.2017 / 17:31

0 respostas