vsftpd es codigo abierto, para abrir conexiones ftp
sistema operativo: centos 6.5 64.bit
no lo recuerdo, pero es muy probable que cuando lo escribí me basara en la info que aparece en alcancelibre.org
pregunten la duda que les avecine.
no olviden, muy importante. cuando vallan ha experimentar en sistemas de codigo abierto, deben de fumarse un porro gigante, o puede que no lo disfruten, bueno estan advertidos.
abrasoss!!!
-------------------------------------------------------------------------------------------------------------------
#alternativas:
#vsftpd "este manual trata de el, funciona bien con centos"
#pure-ftpd "leí que es muy seguro"
#proftpd "lo usa zpanel"
#instalarlo
yum -y install vsftpd
#ingresar en modo escritura al archivo de configuracion:
nano /etc/vsftpd/vsftpd.conf.
#desactivar usuario anonimo:
anonymous_enable=NO
#activar modo activo
port_enable=YES
#activar modo pasivo
pasv_enable=YES
#puertos para modo pasivo
#en el archivo de configuracion
#ingresar el rango, ejemplo entre el puerto 5030 a 5040
pasv_min_port=5030
pasv_max_port=5040
#puerto ftp-data
connect_from_port_20=YES
#por defecto escucha en el puerto 21
#pero se puede cambiar por cualquiera
listen_port=21
#por defecto cada usuario esta enjaulado en su carpeta dentro de home,
#si un usuario en particular va a tener acceso a otras carpetas:
#descomentar las siguientes lineas, osea borrar el signo gato que es el "#",
#y el texto tiene que quedar pegado a la izquiera, sin espacios entremedio.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#despues agregar ese usuario a lista de usuario permitidos:
nano /etc/vsftpd/chroot_list
#dentro de chroot_list escribir el nombre del usuario ,"el archivo no tendra nada"
# ejemplo para el usuario juji:
juji
#guardar con "ctrl" y "o"
#salir con "ctrl" y "x"
#si quieres que ese usuario de ftp se abra el el directorio /var/www/html
#deves escribir esto, conciderando que el usuario en el ejemplo es username
adduser --home /var/www/html username
#ahora darle una contraseña a este usuario llamado username
passwd username
#cambiar permiso a la carpeta /var/www/html para entrar a ella con ftp
#permiso absoluto 777, lectura escritura y ejecutar.
chmod -R 777 /var/www/html
#modificar los iptables para abrir los puertos 20, que es el escucha, el 21, y los de modo pasivo.
#agregar:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20:21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5030:5040 -j ACCEPT
#comentar la linea -A INPUT -j REJECT --reject-with icmp-host-prohibited
#con un signo "#" adelante:
ejemplo : #-A INPUT -j REJECT --reject-with icmp-host-prohibited
#guardar apretando las teclas "ctrl" y "o" al mismo tiempo
#salir con "ctrl" y "x"
#ahora en consola:
getsebool -a | grep ftp
#si aparece "ftp_home_dir –> off", entonces:
setsebool -P ftp_home_dir on
#hay una linea que por defecto dise local_umask=022
#es el permiso que tendran los usuarios,
#con 022 es de solo lectura, yo probe cambiandola con local_umask=664,
local_umask=664
#Ejecute lo siguiente para activar el servicio en todos los niveles de ejecución:
chkconfig vsftpd on
#hasta aqui en teoria, si aparte de hace esto abriste los puertos en tu router o modem,
#deveria estar funcionando.
#SI QUIERES UNA CONECCION SSL CIFRADA CONTINUA LEYENDO
#abrir el directorio tls
cd /etc/pki/tls/
#una vez dentro, en consola escribe
openssl req -x509 -nodes -days 1825 -newkey rsa:2048
-keyout private/vsftpd.key
-out certs/vsftpd.crt
#ahora te solicitara los siguientes datos, en este orden:
# Código de dos letras para el país.
# Estado o provincia.
# Ciudad.
# Nombre de la empresa o bien la razón social.
# Unidad o sección responsable del certificado.
# Nombre del anfitrión (FQDN) o bien dominio con comodín.
# Dirección de correo electrónico de la persona responsable del certificado.
# El archivo del certificado (vsftpd.crt) y el de la firma digital (vsftpd.key),
# deben tenerpermisos de sólo lectura para el usuario root:
chmod 400 certs/vsftpd.crt private/vsftpd.key
# abrir vsftpd.conf:
nano /etc/vsftpd/vsftpd.conf
#cuando se abra al final del documento agregar:
#escribir lo que esta entre "desde aqui-->" y "<-- hasta aquí"
desde aquí -->
# Habilita el soporte de TLS/SSL
ssl_enable=YES
# Deshabilita o habilita utilizar TLS/SSL con usuarios anónimos
allow_anon_ssl=NO
# Obliga a utilizar TLS/SSL para todas las operaciones, es decir,
# transferencia de datos y autenticación de usuarios locales.
# Establecer el valor NO, hace que sea opcional utilizar TLS/SSL.
force_local_data_ssl=YES
force_local_logins_ssl=YES
# Se prefiere TLSv1 sobre SSLv2 y SSLv3
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
# Rutas del certificado y firma digital
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
# Los desarrolladores de FileZilla decidieron con la versión 3.5.3 que
# eliminarían el soporte para el algoritmo de cifrado 3DES-CBC-SHA,
# con el argumento de que este algoritmo es una de los más lentos.
# Sin embargo con ésto rompieron compatibilidad con miles de
# servidores FTP que utilizan FTPES. La solución temporal, mientras
# los desarrolladores de FileZilla razonan lo absurdo de su
# decisión, es utilizar la siguiente opción:
ssl_ciphers=HIGH
# Filezilla además requiere desactivar la siguiente opción que puede
# romper compatibilidad con otros clientes. Cabe señalar que Filezilla
# se ha convertido en un desarrollo políticamente incorrecto por dejar
# de respetar los estándares.
require_ssl_reuse=NO
<-- hasta aquí
#en consola resetear el servicio vsftpd
service vsftpd restart
#******aclaraciones importantes*******
#si el usuario se crea con la linea de comandos:
adduser --home /var/www/html username
#no es necesario que este en chroot_list
#si seguiste los pasos configurar la seguridad cifrada con ssl
#al conectarte deve ser con cifrado ftp explicito sobre tls.
#y desde el navegador no podras hacerlo.
sistema operativo: centos 6.5 64.bit
no lo recuerdo, pero es muy probable que cuando lo escribí me basara en la info que aparece en alcancelibre.org
pregunten la duda que les avecine.
no olviden, muy importante. cuando vallan ha experimentar en sistemas de codigo abierto, deben de fumarse un porro gigante, o puede que no lo disfruten, bueno estan advertidos.
abrasoss!!!
-------------------------------------------------------------------------------------------------------------------
#alternativas:
#vsftpd "este manual trata de el, funciona bien con centos"
#pure-ftpd "leí que es muy seguro"
#proftpd "lo usa zpanel"
#instalarlo
yum -y install vsftpd
#ingresar en modo escritura al archivo de configuracion:
nano /etc/vsftpd/vsftpd.conf.
#desactivar usuario anonimo:
anonymous_enable=NO
#activar modo activo
port_enable=YES
#activar modo pasivo
pasv_enable=YES
#puertos para modo pasivo
#en el archivo de configuracion
#ingresar el rango, ejemplo entre el puerto 5030 a 5040
pasv_min_port=5030
pasv_max_port=5040
#puerto ftp-data
connect_from_port_20=YES
#por defecto escucha en el puerto 21
#pero se puede cambiar por cualquiera
listen_port=21
#por defecto cada usuario esta enjaulado en su carpeta dentro de home,
#si un usuario en particular va a tener acceso a otras carpetas:
#descomentar las siguientes lineas, osea borrar el signo gato que es el "#",
#y el texto tiene que quedar pegado a la izquiera, sin espacios entremedio.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#despues agregar ese usuario a lista de usuario permitidos:
nano /etc/vsftpd/chroot_list
#dentro de chroot_list escribir el nombre del usuario ,"el archivo no tendra nada"
# ejemplo para el usuario juji:
juji
#guardar con "ctrl" y "o"
#salir con "ctrl" y "x"
#si quieres que ese usuario de ftp se abra el el directorio /var/www/html
#deves escribir esto, conciderando que el usuario en el ejemplo es username
adduser --home /var/www/html username
#ahora darle una contraseña a este usuario llamado username
passwd username
#cambiar permiso a la carpeta /var/www/html para entrar a ella con ftp
#permiso absoluto 777, lectura escritura y ejecutar.
chmod -R 777 /var/www/html
#modificar los iptables para abrir los puertos 20, que es el escucha, el 21, y los de modo pasivo.
#agregar:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20:21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5030:5040 -j ACCEPT
#comentar la linea -A INPUT -j REJECT --reject-with icmp-host-prohibited
#con un signo "#" adelante:
ejemplo : #-A INPUT -j REJECT --reject-with icmp-host-prohibited
#guardar apretando las teclas "ctrl" y "o" al mismo tiempo
#salir con "ctrl" y "x"
#ahora en consola:
getsebool -a | grep ftp
#si aparece "ftp_home_dir –> off", entonces:
setsebool -P ftp_home_dir on
#hay una linea que por defecto dise local_umask=022
#es el permiso que tendran los usuarios,
#con 022 es de solo lectura, yo probe cambiandola con local_umask=664,
local_umask=664
#Ejecute lo siguiente para activar el servicio en todos los niveles de ejecución:
chkconfig vsftpd on
#hasta aqui en teoria, si aparte de hace esto abriste los puertos en tu router o modem,
#deveria estar funcionando.
#SI QUIERES UNA CONECCION SSL CIFRADA CONTINUA LEYENDO
#abrir el directorio tls
cd /etc/pki/tls/
#una vez dentro, en consola escribe
openssl req -x509 -nodes -days 1825 -newkey rsa:2048
-keyout private/vsftpd.key
-out certs/vsftpd.crt
#ahora te solicitara los siguientes datos, en este orden:
# Código de dos letras para el país.
# Estado o provincia.
# Ciudad.
# Nombre de la empresa o bien la razón social.
# Unidad o sección responsable del certificado.
# Nombre del anfitrión (FQDN) o bien dominio con comodín.
# Dirección de correo electrónico de la persona responsable del certificado.
# El archivo del certificado (vsftpd.crt) y el de la firma digital (vsftpd.key),
# deben tenerpermisos de sólo lectura para el usuario root:
chmod 400 certs/vsftpd.crt private/vsftpd.key
# abrir vsftpd.conf:
nano /etc/vsftpd/vsftpd.conf
#cuando se abra al final del documento agregar:
#escribir lo que esta entre "desde aqui-->" y "<-- hasta aquí"
desde aquí -->
# Habilita el soporte de TLS/SSL
ssl_enable=YES
# Deshabilita o habilita utilizar TLS/SSL con usuarios anónimos
allow_anon_ssl=NO
# Obliga a utilizar TLS/SSL para todas las operaciones, es decir,
# transferencia de datos y autenticación de usuarios locales.
# Establecer el valor NO, hace que sea opcional utilizar TLS/SSL.
force_local_data_ssl=YES
force_local_logins_ssl=YES
# Se prefiere TLSv1 sobre SSLv2 y SSLv3
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
# Rutas del certificado y firma digital
rsa_cert_file=/etc/pki/tls/certs/vsftpd.crt
rsa_private_key_file=/etc/pki/tls/private/vsftpd.key
# Los desarrolladores de FileZilla decidieron con la versión 3.5.3 que
# eliminarían el soporte para el algoritmo de cifrado 3DES-CBC-SHA,
# con el argumento de que este algoritmo es una de los más lentos.
# Sin embargo con ésto rompieron compatibilidad con miles de
# servidores FTP que utilizan FTPES. La solución temporal, mientras
# los desarrolladores de FileZilla razonan lo absurdo de su
# decisión, es utilizar la siguiente opción:
ssl_ciphers=HIGH
# Filezilla además requiere desactivar la siguiente opción que puede
# romper compatibilidad con otros clientes. Cabe señalar que Filezilla
# se ha convertido en un desarrollo políticamente incorrecto por dejar
# de respetar los estándares.
require_ssl_reuse=NO
<-- hasta aquí
#en consola resetear el servicio vsftpd
service vsftpd restart
#******aclaraciones importantes*******
#si el usuario se crea con la linea de comandos:
adduser --home /var/www/html username
#no es necesario que este en chroot_list
#si seguiste los pasos configurar la seguridad cifrada con ssl
#al conectarte deve ser con cifrado ftp explicito sobre tls.
#y desde el navegador no podras hacerlo.