Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

1. Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Gustavo Aguiar Menezes
gustavo-agm

(usa Debian)

Enviado em 18/12/2012 - 15:37h


Então, o problema é o seguinte:

-> tenho um servidor firewall/dns/ftp.
-> nele estou rodando Debian, SQUID3, IPTABLES e PROFTPd.
-> Até agora tudo funcionou normalmente, todas as regras e ACL's.

Mas não consigo criar a regra para que seja possível o acesso do meu servidor FTP, pelas máquinas de fora da minha rede interna. O acesso ao servidor está funcionando normalmente dentro do acesso local.

O redirecionamento para a porta 2121 (que estou utilizando) no router que antecede o servidor, está sendo feito normalmente. Já fiz diversas regras, e nat's mas não tive sucesso.

:: Rede interna eth4.
:: Rede externa eth5.

Se alguém souber como fica a regra para que eu possa acessar o servidor FTP de fora da minha interna, por favor, preciso disso o mais rápido possível.

Agradeço desde já.

Qualquer informação necessária só perguntar.



  


2. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 18/12/2012 - 15:47h

bom eu não tive problemas
pois eu modem que antecede o Firewall eu deixo com uma DMZ para o firewall
e no firewall eu só abro a porta e já esta ok para acesso externo

Bom no modem esta ok o redirecionamento ?
se sim
posta ai suas regras de firewall




3. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 18/12/2012 - 16:04h

Talvez sejam por causa dos módulos... dê uma olhada:

http://www.vivaolinux.com.br/artigo/Iptables-Seguranca-total-para-sua-rede/?pagina=3


4. minha regra

Gustavo Aguiar Menezes
gustavo-agm

(usa Debian)

Enviado em 19/12/2012 - 09:56h


#!bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Limite contra ping da morte DoS
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j$
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j D$

#Liberando portas SSH a partir de qualquer interface
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#NAT GLOBAL
iptables -t nat -A POSTROUTING -o eth4 -j MASQUERADE

#LIBERANDO PORTA VNC PARA TODOS
iptables -A FORWARD -p tcp --dport 5900 -j ACCEPT
iptables -A INPUT -p udp --dport 5900 -j ACCEPT
iptables -A OUTPUT -p udp --dport 5900 -j ACCEPT

#Abre a rede local
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

#Jogando o tráfego da porta 80 para o squid 3 TRANSPARENT
iptables -t nat -A PREROUTING -i eth5 -p tcp --dport 80 -j REDIRECT --to-p$

#Liberando portas
iptables -A INPUT -p tcp --dport 3128 -i eth5 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth5 -j ACCEPT
iptables -A INPUT -p tcp --dport 183 -i eth5 -j ACCEPT
iptables -A INPUT -p udp --dport 3128 -i eth5 -j ACCEPT

#FTP externo
iptables -t filter -A INPUT -i eth4 -p tcp -m multiport --dports 2121,20 -$
iptables -t filter -A INPUT -i eth4 -p udp -m multiport --sports 2121,20 -$
iptables -A INPUT -i lo-j ACCEPT
iptables -A INPUT -i eth5 -j ACCEPT
iptables -I INPUT -p tcp --dport 2121 -j ACCEPT
iptables -I INPUT -p tcp --dport 20 -j ACCEPT
iptables -I INPUT -p udp --dport 2121 -j ACCEPT
iptables -I INPUT -p udp --dport 20 -j ACCEPT
#iptables -I INPUT -p tcp -m multiport --dports 49152:49162 -j ACCEPT
iptables -I FORWARD -p tcp --dport 2121 -j ACCEPT

#FTP acesso interno
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 20 -j ACCEPT
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s eth5 -d 192.168.0.90 --dport 53 -j ACCEPT

#iptables -t nat -A PREROUTING --proto tcp -i eth4 --dport 2121 -j DNAT -$

#Masquerade
iptables -t nat -A POSTROUTING -d 192.168.0.90 -j MASQUERADE

#Liberando DNS
iptables -A INPUT -p tcp -m multiport --sports 53,5353 -j ACCEPT
iptables -A INPUT -p udp -m multiport --sports 53,5353 -j ACCEPT



5. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 19/12/2012 - 10:03h

Cara dê uma organizada no seu script, tem regras de forward depois de input depois de forward novamente, tente seguir esta ordem:

# AJUSTES

# REGRAS DE NAT

# REGRAS DE INPUT

# REGRAS DE OUTPUT

# REGRAS DE FORWARD


6. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Gustavo Aguiar Menezes
gustavo-agm

(usa Debian)

Enviado em 19/12/2012 - 10:23h

Mas esse é o único problema?
Se eu arrumar as regras, conseguirei acessar o meu servidor de fora?
Pois é com as regras que estou preocupado.


7. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 19/12/2012 - 11:36h

Um script bem organizado muda muita coisa, além de que, o iptables segue uma lógica para as regras, então, precisa primeiro organizar tudo.


8. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Gustavo Aguiar Menezes
gustavo-agm

(usa Debian)

Enviado em 19/12/2012 - 12:25h

Então eu devo organizar de acordo com o tipo de chain.. INPUT, FORWARD, OUTPUT, NAT ea ssim vai?
Mesmo tendo funções diferentes?


9. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 19/12/2012 - 13:50h

Isso, pois cada chain serve para uma coisa, se vc ver no exemplo que postei anteriormente, vc vai ver como funciona primeiro ajustamos, depois criamos os redirecionamentos (NAT), depois liberamos as entradas (INPUT), depois as saidas (OUTPUT) e depois as passagens de uma rede para outra (FORWARD)...

Por isso precisamos de uma organização no script do iptables, pq se não vc libera uma coisa antes do que deve ser liberada e tal...


10. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Gustavo Aguiar Menezes
gustavo-agm

(usa Debian)

Enviado em 19/12/2012 - 14:58h

Pronto, dei uma arrumada, ficou assim.
Não sei se arrumei da forma mais exata, mas...

#!bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT


#FTP externo
iptables -t filter -A INPUT -i eth4 -p tcp -m multiport --dports 2121,20 -j ACCEPT
iptables -t filter -A INPUT -i eth4 -p udp -m multiport --sports 2121,20 -j ACCEPT

#NAT

#Masquerade
iptables -t nat -A POSTROUTING -d 192.168.0.90 -j MASQUERADE

#iptables -t nat -A PREROUTING --proto tcp -i eth4 --dport 2121 -j DNAT --to 192.168.0.90:2121

#NAT GLOBAL
iptables -t nat -A POSTROUTING -o eth4 -j MASQUERADE

#Jogando o tráfego da porta 80 para o squid 3 TRANSPARENT
iptables -t nat -A PREROUTING -i eth5 -p tcp --dport 80 -j REDIRECT --to-pORT 3128

#INPUT

#Limite contra ping da morte DoS (input)
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP

#Liberando portas SSH a partir de qualquer interface
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#Liberando Porta VNC
iptables -A INPUT -p udp --dport 5900 -j ACCEPT

#Abre a rede local (input)
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -d 192.168.0.0/24 -j ACCEPT

#Liberando portas
iptables -A INPUT -p tcp --dport 3128 -i eth5 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth5 -j ACCEPT
iptables -A INPUT -p tcp --dport 183 -i eth5 -j ACCEPT
iptables -A INPUT -p udp --dport 3128 -i eth5 -j ACCEPT

#FTP externo (input)
iptables -A INPUT -i lo-j ACCEPT
iptables -A INPUT -i eth5 -j ACCEPT
iptables -I INPUT -p tcp --dport 2121 -j ACCEPT
iptables -I INPUT -p tcp --dport 20 -j ACCEPT
iptables -I INPUT -p udp --dport 2121 -j ACCEPT
iptables -I INPUT -p udp --dport 20 -j ACCEPT
#iptables -I INPUT -p tcp -m multiport --dports 49152:49162 -j ACCEPT
iptables -I FORWARD -p tcp --dport 2121 -j ACCEPT


#Liberando DNS
iptables -A INPUT -p tcp -m multiport --sports 53,5353 -j ACCEPT
iptables -A INPUT -p udp -m multiport --sports 53,5353 -j ACCEPT

#OUTPUT

#Liberando Porta VNC (output)
iptables -A OUTPUT -p udp --dport 5900 -j ACCEPT

#FORWARD

#LIBERANDO PORTA VNC PARA TODOS (forward)
iptables -A FORWARD -p tcp --dport 5900 -j ACCEPT

#Abre rede local (forward)
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

#FTP acesso interno (forward)
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 20 -j ACCEPT
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s eth5 -d 192.168.0.90 --dport 53 -j ACCEPT


11. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Phillip Vieira
phrich

(usa Slackware)

Enviado em 19/12/2012 - 15:02h

Cara, ainda tem "bagunça"... organize assim:


# AJUSTESTES #
variáveis
módulos
ativação de roteamento
etc

# REGRAS DE NAT #
regras de redirecionamento
mascaramento da rede interna para externa
etc

# REGRAS DE INPUT #
regras de entrada como ssh por exemplo

# REGRAS DE OUTPUT #
DNS
http
https
etc

# REGRAS DE FORWARD #
portas liberadas para rede interna
portas de FTP
etc


12. Re: Liberar porta para cessar PROFTPD de fora [RESOLVIDO]

Gustavo Aguiar Menezes
gustavo-agm

(usa Debian)

Enviado em 20/12/2012 - 11:11h

Já organizei da forma que você me falou.
Contudo o FTP ainda não está acessível de fora. O servidor chega a fazer a requisição de usuário e senha, mas ao logar, ele retorna o aviso de página não encontrada.

IPTABLES atual:

#!bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#NAT

#Masquerade
iptables -t nat -A POSTROUTING -d 192.168.0.90 -j MASQUERADE

#iptables -t nat -A PREROUTING --proto tcp -i eth4 --dport 2121 -j DNAT --to 192.168.0.90:2121

#NAT GLOBAL
iptables -t nat -A POSTROUTING -o eth4 -j MASQUERADE

#Jogando o tráfego da porta 80 para o squid 3 TRANSPARENT
iptables -t nat -A PREROUTING -i eth5 -p tcp --dport 80 -j REDIRECT --to-pORT 3128

#INPUT

#FTP externo
iptables -t filter -A INPUT -i eth4 -p tcp -m multiport --dports 2121,20 -j ACCEPT

#Limite contra ping da morte DoS (input)
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 1/s -j DROP

#Liberando portas SSH a partir de qualquer interface
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#Liberando Porta VNC
iptables -A INPUT -p udp --dport 5900 -j ACCEPT

#Abre a rede local (input)
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -d 192.168.0.0/24 -j ACCEPT

#Liberando portas
iptables -A INPUT -p tcp --dport 3128 -i eth5 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth5 -j ACCEPT
iptables -A INPUT -p tcp --dport 183 -i eth5 -j ACCEPT
iptables -A INPUT -p udp --dport 3128 -i eth5 -j ACCEPT

#FTP externo (input)
iptables -A INPUT -i lo-j ACCEPT
iptables -A INPUT -i eth5 -j ACCEPT
iptables -I INPUT -p tcp --dport 2121 -j ACCEPT
iptables -I INPUT -p tcp --dport 20 -j ACCEPT
iptables -I INPUT -p udp --dport 2121 -j ACCEPT
iptables -I INPUT -p udp --dport 20 -j ACCEPT
#iptables -I INPUT -p tcp -m multiport --dports 49152:49162 -j ACCEPT
iptables -I FORWARD -p tcp --dport 2121 -j ACCEPT

#Liberando DNS
iptables -A INPUT -p tcp -m multiport --sports 53,5353 -j ACCEPT
iptables -A INPUT -p udp -m multiport --sports 53,5353 -j ACCEPT

#OUTPUT

#Liberando Porta VNC (output)
iptables -A OUTPUT -p udp --dport 5900 -j ACCEPT

#FORWARD

#LIBERANDO PORTA VNC PARA TODOS (forward)
iptables -A FORWARD -p tcp --dport 5900 -j ACCEPT

#Abre rede local (forward)
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

#FTP acesso interno (forward)
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 20 -j ACCEPT
iptables -A FORWARD -p tcp -s eth5 -d 192.168.0.90 --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -s eth5 -d 192.168.0.90 --dport 53 -j ACCEP


Agradeço a ajuda até agora.




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts