Publicação de FTP [RESOLVIDO]

1. Publicação de FTP [RESOLVIDO]

Daniel Felipe Pimenta Vieira
dvieira

(usa CentOS)

Enviado em 09/10/2014 - 17:53h

Boa tarde amigos,
Sou novo aqui e preciso muito da ajuda de vocês.

Estou configurando um novo firewall de borda com o iptables e centos.

Tenho o seguinte senario.

Firewall.Iptables --- DMZ --- Servidor FTP

*Redes Firewall.Iptables
eth0=DMZ
eth1=LinkExterno1 (Link Default)
eth2=LinkExterno2 (Secundario)

Preciso Publicar o servidor FTP no link secundario, so que quando crio as regras a requisição chega no servidor mas quando retorna ele tenta passar pelo Link Default de internet e não pelo secundario, ja configurei o ip route e ip rule mas não adianta.

Sera que alguem poderia me ajudar por favor.


  


2. Re: Publicação de FTP [RESOLVIDO]

leonardo Souza
lejoso

(usa Debian)

Enviado em 09/10/2014 - 19:31h

Vocẽ vai ter usar ip route pra resolver esta questão.
Tem um tópico que já auxiliei um usuário aqui do forum, e que seu problema se enquadra na mesma questão.

http://www.vivaolinux.com.br/topico/Conntrack/Marcando-Pacotes-com-DNAT/

Outra questão a parte é que voce tem que carregar no kernel os modulos ftp. O ftp é um serviço um pouco chato, mas qualquér dúvida pode postar que tentarei lhe ajudar.
Seguem comandos ra carregar os modulos ftp no kernel:

modprobe nf_nat_ftp
modprobe nf_conntrack_ftp



Att,

Lejoso


dvieira escreveu:

Boa tarde amigos,
Sou novo aqui e preciso muito da ajuda de vocês.

Estou configurando um novo firewall de borda com o iptables e centos.

Tenho o seguinte senario.

Firewall.Iptables --- DMZ --- Servidor FTP

*Redes Firewall.Iptables
eth0=DMZ
eth1=LinkExterno1 (Link Default)
eth2=LinkExterno2 (Secundario)

Preciso Publicar o servidor FTP no link secundario, so que quando crio as regras a requisição chega no servidor mas quando retorna ele tenta passar pelo Link Default de internet e não pelo secundario, ja configurei o ip route e ip rule mas não adianta.

Sera que alguem poderia me ajudar por favor.





3. Re: Publicação de FTP [RESOLVIDO]

Daniel Felipe Pimenta Vieira
dvieira

(usa CentOS)

Enviado em 15/10/2014 - 15:57h

Boa tarde amigo,
obrigado pela resposta, mas ainda nao consegui.

estou com a configuração no iptables:

iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i $placa-externa -j CONNMARK --set-mark 1
iptables -t mangle -A POSTROUTING -j CONNMARK --save-mark
iptables -t nat -A PREROUTING -i $placa-externa -p tcp --dport 21 -j DNAT --to-destination 192.168.200.15:21
iptables -t mangle -A PREROUTING -s 192.168.200.15 -j MARK --set-mark 1
iptables -t mangle -I PREROUTING -p tcp --dport 21 -i $placa-externa -j CONNMARK --set-mark 0x1
iptables -t mangle -I PREROUTING -m connmark --mark 0x1 ! -i $placa-externa -j MARK --set-mark 0x1

ip rule esta:

0: from all lookup local
3: from all fwmark 0x1 lookup t-externa1
3: from all fwmark 0x2 lookup t-externa2
32764: from $gateway2 lookup t-externa2
32765: from $gateway1 lookup t-externa1
32766: from all lookup main
32767: from all lookup default

ip route esta:
default via $gateway2 dev externa2 metric 1
default via $gateway1 dev externa1 metric 2



4. Re: Publicação de FTP [RESOLVIDO]

leonardo Souza
lejoso

(usa Debian)

Enviado em 17/10/2014 - 18:55h

Apaga todas de mark e deixa somente as duas

iptables -t mangle -A PREROUTING -i eth2 -p tcp --dport 21 -j CONNMARK --set-mark 0x2
iptables -t mangle -A PREROUTING ! -i eth2 -m connmark --mark 0x2 -j MARK --set-mark 0x2


5. Re: Publicação de FTP [RESOLVIDO]

Daniel Felipe Pimenta Vieira
dvieira

(usa CentOS)

Enviado em 20/10/2014 - 15:09h

Obrigado pela ajuda amigo,

Agora esta autenticando so nao consigo baixar nenhum arquivo para testar. Teria alguma ideia?



6. Re: Publicação de FTP [RESOLVIDO]

leonardo Souza
lejoso

(usa Debian)

Enviado em 24/10/2014 - 17:17h

Verifica se os moduos ftp estão carregados no kernel.

lsmod | grep -i ftp

Caso não, carregu - os:

modprobe nf_nat_ftp
modprobe nf_conntrack_ftp

Outra coisa é o modo do ftp. No server tem que ver se aceita no modo ativo, passivo ou em ambos.
A mesma coisa no lado do client, tem que estar em um modo que o servidor ftp aceite.
Outra possibilidade é ver no iptables se está liberando as conexões novas, relatadas e estabelecidas.

iptables -I FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

Lejoso



7. Re: Publicação de FTP [RESOLVIDO]

Daniel Felipe Pimenta Vieira
dvieira

(usa CentOS)

Enviado em 28/10/2014 - 10:31h

Muito Obrigado pela ajuda.
Consegui resolver o problema.
Coloquei as regras que me indicou e corrigi o ip route e ip rule e agora esta funcionanado.

Ficou assim:
IP ROUTE - IP RULE

# Configuração Link Internet 1
ip route add xxx.xxx.xxx.xxx/xx dev eth2 src IPxxx.xxx.xxx.xxx table link1
ip route add default via GWxxx.xxx.xxx.xxx table link1

# Configuração Link Internet 2
ip route add xxx.xxx.xxx.xxx/xx eth1 src IPxxx.xxx.xxx.xxx table link2
ip route add default via GWxxx.xxx.xxx.xxx table link2

# GW padrao Link Internet 1
ip rule add from GWxxx.xxx.xxx.xxx table link1

# GW Padrão Link Internet 2
ip rule add from GWxxx.xxx.xxx.xxx table link2

# Marcando os pacotes
ip rule add fwmark 1 prio 3 table link1
ip rule add fwmark 2 prio 2 table link2

# Balanceando os links
ip route add default scope global nexthop via GWxxx.xxx.xxx.xxx dev eth1 weight 2 nexthop via GWxxx.xxx.xxx.xxx dev eth2 weight 1

IPTABLES

# Politicas padrão do Iptables
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Iptables tabela Filter
# INPUT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -s $REDE-DMZ -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
# FORWARD
iptables -A FORWARD -s $REDE-DMZ -i eth0 -j ACCEPT
iptables -A FORWARD -i eth2 -d $IP-DMZ-SERVER -j ACCEPT
iptables -A FORWARD -i eth2 -d $IP-DMZ-SERVER1 -j ACCEPT
iptables -A FORWARD -i eth2 -d $IP-DMZ-SERVER2 -j ACCEPT
iptables -A FORWARD -i eth2 -d $IP-DMZ-SERVER3 -j ACCEPT
iptables -A FORWARD -i eth2 -d $IP-DMZ-SERVER4 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

# Iptables tabela Nat
# PREROUTING
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 1723 -j DNAT --to-destination $IP-DMZ-SERVER:1723
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 1701 -j DNAT --to-destination $IP-DMZ-SERVER:1701
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 21 -j DNAT --to-destination $IP-DMZ-SERVER1:21
iptables -t nat -A PREROUTING -i eth2 -p tcp -m multiport --dports 3130,34567,34599 -j DNAT --to-destination $IP-DMZ-SERVER2
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 80 -j DNAT --to-destination $IP-DMZ-SERVER3:80
iptables -t nat -A PREROUTING -i eth2 -p tcp --dport 443 -j DNAT --to-destination $IP-DMZ-SERVER4:443
# POSTROUTING
iptables -t nat -A POSTROUTING -s $REDE-DMZ -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $REDE-DMZ -o eth2 -j MASQUERADE

# Iptables tables Mangle - Marcação dos pacotes que entram pelo Link Internet 1
# PREROUTING
iptables -t mangle -I PREROUTING -i eth2 -p tcp --dport 21 -j CONNMARK --set-mark 0x2
iptables -t mangle -I PREROUTING 2 -i eth2 -p tcp --dport 80 -j CONNMARK --set-mark 0x2
iptables -t mangle -I PREROUTING 3 -i eth2 -p tcp --dport 3130 -j CONNMARK --set-mark 0x2
iptables -t mangle -I PREROUTING 4 -i eth2 -p tcp --dport 34567 -j CONNMARK --set-mark 0x2
iptables -t mangle -I PREROUTING 5 -i eth2 -p tcp --dport 34599 -j CONNMARK --set-mark 0x2
iptables -t mangle -I PREROUTING 6 -i eth2 -p tcp --dport 1723 -j CONNMARK --set-mark 0x2
iptables -t mangle -I PREROUTING 7 -i eth2 -p tcp --dport 1701 -j CONNMARK --set-mark 0x2
iptables -t mangle -I PREROUTING 8 -i eth2 -p tcp --dport 443 -j CONNMARK --set-mark 0x2
iptables -t mangle -A PREROUTING ! -i eth2 -m connmark --mark 0x2 -j MARK --set-mark 0x2








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts