Problemas con conexiones Pasivas VSFTPD con IPTABLES

Imagen de mikeMTY

Forums: 

Que tal, estoy haciendo unas pruebas con IPTABLES sobre un server con suse11, estoy corriendo VSFTPD como FTP server, bloquie todo el acceso entrante y saliente,solo deje habiertos los puertos al VSFTPD, ICMP y SSH de la siguiente manera

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 172.21.44.0/24 ftpsuse11
ACCEPT tcp -- 172.21.44.0/24 ftpsuse11 tcp dpt:ftp
ACCEPT udp -- 172.21.44.0/24 ftpsuse11 udp dpt:ftp
ACCEPT tcp -- 172.21.44.0/24 ftpsuse11 tcp dpt:ftp-data
ACCEPT udp -- 172.21.44.0/24 ftpsuse11 udp dpt:ftp-data
ACCEPT tcp -- 172.21.44.0/24 ftpsuse11 tcp spts:1024:65535 dpt:ssh
ACCEPT udp -- 172.21.44.0/24 ftpsuse11 udp spts:1024:65535 dpt:ssh
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- ftpsuse11 172.21.40.0/21
ACCEPT tcp -- ftpsuse11 172.21.44.0/24 tcp spt:ftp
ACCEPT udp -- ftpsuse11 172.21.44.0/24 udp spt:ftp
ACCEPT tcp -- ftpsuse11 172.21.44.0/24 tcp spt:ftp-data
ACCEPT udp -- ftpsuse11 172.21.44.0/24 udp spt:ftp-data
ACCEPT tcp -- ftpsuse11 172.21.44.0/24 tcp spt:ssh dpts:1024:65535
ACCEPT udp -- ftpsuse11 172.21.44.0/24 udp spt:ssh dpts:1024:65535

Al intentar conectarme desde el explorador de windows con ftp://172.21.44.251 me manda el recuadro pidiendo el nombre de usuario y contraseña al introducirlos me manda el error "Ocurrio un error al intentar habrir la carpeta en el servidor FTP..." solo puedo conectarme usando FileZilla elijiendo la opcion de conexion ACTIVA,

intente tambien las reglas asi:
target prot opt source destination
ACCEPT tcp -- ftpsuse11 172.21.44.0/24 tcp spt:ftp dpts:1024:65535

en INPUT y OUTPUT para los puertos 21 y 20 en UDP y TCP...y nada sigue sin desplegarme los directorios del FTPserver, al parecer falta algo para poder establecer la conexion PASIVA por el IPTABLES, al borrar las reglas y permitir todo el acceso entrante y saliente puedo conectarme sin ningun problema; el archivo vsftpd.conf esta asi:

write_enable=YES
dirmessage_enable=YES
nopriv_user=ftpsecure
ftpd_banner="Welcome to FOOBAR FTP service."
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
anonymous_enable=NO
anon_world_readable_only=NO
syslog_enable=YES
connect_from_port_20=YES
data_connection_timeout=120
#pasv_enable=NO
pam_service_name=vsftpd
ssl_enable=NO

Alguien que me pueda ayudar con esto, ver que pasa con las conexiones PASIVAS? que me falta poner en el IPTABLES?

saludos y gracias

Probaste que funciona sin el

Probaste que funciona sin el firewall???

Cuando usas en iptables reglas por defecto DROP debes habrir 20:21 mas los puertos altos... ej 20000:65535 de esta manera puedes usar conexiones pasivas...

Si te falto algo en el vsftpd mira este como:
ftp_para_webmasters

Salud2s...

ecualug
______________________
!!!AdminRed_Debian!!!

ecualug
______________________
!!!AdminRed_Debian!!!

sin firewall si funciona

Imagen de mikeMTY

pero pues por que me borra todas las reglas al momento que le doy restore, ps susede lo mismo, coloque las reglas de la siguiente manera:

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 172.21.44.0/24 ftpsuse11
ACCEPT tcp -- 172.21.44.0/24 ftpsuse11 tcp spts:1024:65535 dpt:ssh
ACCEPT udp -- 172.21.44.0/24 ftpsuse11 udp spts:1024:65535 dpt:ssh
ACCEPT tcp -- 172.21.44.0/24 ftpsuse11 tcp spts:1024:65535 dpt:ftp
ACCEPT udp -- 172.21.44.0/24 ftpsuse11 udp spts:1024:65535 dpt:ftp
ACCEPT tcp -- 172.21.44.0/24 ftpsuse11 tcp spts:1024:65535 dpt:ftp-data
ACCEPT udp -- 172.21.44.0/24 ftpsuse11 udp spts:1024:65535 dpt:ftp-data

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- ftpsuse11 172.21.40.0/21
ACCEPT udp -- ftpsuse11 172.21.44.0/24 udp spt:ssh dpts:1024:65535
ACCEPT tcp -- ftpsuse11 172.21.44.0/24 tcp spt:ssh dpts:1024:65535
ACCEPT tcp -- ftpsuse11 172.21.44.0/24 tcp spt:ftp dpts:1024:65535
ACCEPT udp -- ftpsuse11 172.21.44.0/24 udp spt:ftp dpts:1024:65535
ACCEPT tcp -- ftpsuse11 172.21.44.0/24 tcp spt:ftp-data dpts:1024:65535
ACCEPT udp -- ftpsuse11 172.21.44.0/24 udp spt:ftp-data dpts:1024:65535

y me paso lo mismo, solo puedo conectarme en modo activo con el FileZilla... que estara pasando con las conexiones pasivas????...

Yo no he trabajado iptables

Yo no he trabajado iptables sobre suse pero mi manera de usar las reglas DROP para FTP las uso asi:

Ej:

## Flush de reglas
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F

## Regla defecto
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

## Trafico loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

EXTIF = eth0
FTPPort = 20:21,20000:65535
FTPRed = 192.168.10.0/24
iptables -A INPUT -i $EXTIF -s $FTPRed -p tcp -m multiport --dports $FTPPort -j ACCEPT
iptables -A OUTPUT -o $EXTIF -d $FTPRed -p tcp -m multiport --sports $FTPPort -j ACCEPT

Salud2s...

ecualug
______________________
!!!AdminRed_Debian!!!

ecualug
______________________
!!!AdminRed_Debian!!!

En el VSFTPD puedes definir

Imagen de deathUser

En el VSFTPD puedes definir el rango de puertos que vas a usar para las conexiones pasivas, ese rango es el que debes abrir lo del source port FTP no me parece, ya que si no me equivoco las conexiones iniciales se hacen por los puertos 20 y 21 y el resto por los puertos altos, así que pon la regla sin especificar el source port.

bye
:)

hice algo similar a lo que

Imagen de mikeMTY

hice algo similar a lo que sigiere skypower :)

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 172.21.44.0/24 172.21.44.251 multiport dports ftp-data:ftp,1024:65535
ACCEPT udp -- 172.21.44.0/24 172.21.44.251 multiport dports ftp-data:ftp,1024:65535

Chain OUTPUT (policy DROP)
ACCEPT tcp -- 172.21.44.251 172.21.44.0/24 multiport sports ftp-data:ftp,1024:65535
ACCEPT udp -- 172.21.44.251 172.21.44.0/24 multiport sports ftp-data:ftp,1024:65535

funciono muy bien para conexiones pasivas y activas, pero me queda una duda, no se pierder un poco el consepto de seguridad al dejar abiertos tantos puertos 1024 a 65535????

Por eso es que te sugeri que

Por eso es que te sugeri que usaras 20000:65535 o 30000:65535 para evitar un poco eso...
ya que estos servicios entan en ese rango...1024:65535
8080 y 3128 (proxy)
5222:5223(jabber)
5280(ejabberd)
6112:6200(bnet)
10000(webmin)
20000(usermin)
etc....

Salud2s...

ecualug
______________________
!!!AdminRed_Debian!!!

ecualug
______________________
!!!AdminRed_Debian!!!

En mi post anterior te

Imagen de deathUser

En mi post anterior te decía que puedes configurar en el vsftpd para indicarle que rango de puertos abrir para el modo pasivo, eso lo haces con algo como lo que sigue:


pasv_min_port=10100
pasv_max_port=10199

De esa manera luego abres solo ese rango en el firewall algo como:


ACCEPT tcp -- 172.21.44.0/24 172.21.44.251 multiport dports ftp-data:ftp,10100:10199
ACCEPT udp -- 172.21.44.0/24 172.21.44.251 multiport dports ftp-data:ftp,10100:10199

Suerte ...

bye
:)

Problema Resuelto

Imagen de mikeMTY

perfecto ya pude limitar los puertos para conexiones pasivas hice como me comento deathUser, tube unos pequeños problemas pero mi falla era muy simple estaba poniendo:

pasv_max_port=10190
pasv_min_port=10199 :):):)

en lugar de :

pasv_min_port=10190
pasv_max_port=10199

ja sule suceder no? gracias y ya quedo resuelto el problema....

saludossss