Introducción.
FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor.
Desde un equipo cliente se puede conectar a un servidor para descargar
archivos desde él o para enviarle archivos, independientemente del
sistema operativo utilizado en cada equipo.
Instalación.
Debemos teclear la siguiente orden para instalar el servidor:
yum -y install vsftpd
El archivo /etc/vsftpd/chroot_list es inexistente, por lo cual es conveniente crearlo antes de comenzar a trabajar con la configuración.
touch /etc/vsftpd/chroot_list
Iniciamos el servicio de VSFTPD
service vsftpd start
Para hacer que el servicio de vsftpd esté activo con el siguiente inicio del sistema se teclea lo siguiente:
chkconfig vsftpd on
Abrimos el puerto del FTP del cortafuegos desde "Servicios confiables"
Añadimos lo siguiente al archivo /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30300:30309 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 30300:30309 -j ACCEPT
Seguidamente escribimos esta línea en la consola de comandos.
setsebool -P ftpd_use_passive_mode 1
Si se desea que los usuarios anónimos puedan subir archivos al servidor FTP debemos configurar el archivo /etc/vsftpd/vsftpd.conf con los siguientes valores.
setsebool -P ftpd_use_passive_mode 1
Si se desea que los usuarios anónimos puedan subir archivos al servidor FTP debemos configurar el archivo /etc/vsftpd/vsftpd.conf con los siguientes valores.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_mkdir_write_enable=YES
Creamos el directorio donde podrán subir archivos los usuarios anónimos.
mkdir /var/ftp/upload
chown ftp:ftp /var/ftp/upload
chcon -R -t public_content_rw_t /var/ftp/upload
chown ftp:ftp /var/ftp/upload
chcon -R -t public_content_rw_t /var/ftp/upload
Añadimos estas líneas para configurar el SE Linux
setsebool -P ftpd_use_passive_mode 1
setsebool -P allow_ftpd_anon_write 1
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
Utilizamos cualquier editor de texto sobre el archivo /etc/vsftpd/vsftpd.conf:
gedit /etc/vsftpd/vsftpd.conf &
Establecemos jaulas para los usuarios
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
Añadimos la siguiente línea para limitar la cuota bajada de los anónimos.
anon_max_rate=524288
Asignamos la cuota para los usuarios locales.
local_max_rate=1048576
Conexiones Seguras.
Accedemos al directorio /etc/pki/tls/.cd /etc/pki/tls/
Generamos el certificado digital.
openssl req -x509 -nodes -days 1825 -newkey rsa:1024 -keyout private/vsftpd.key -out certs/vsftpd.crt
Lo rellenamos con los datos que nos piden.
Cambiamos los permisos del certificado para solo el usuario root.
chmod 400 certs/vsftpd.crt private/vsftpd.key
Abrimos el archivo /etc/vsftpd/vsftpd.conf.
gedit /etc/vsftpd/vsftpd.conf
Copiar todo este contenido en el archivo al final.
# Especificar cualquier rango arbitrario y estrecho, de puertos para
# Si ya definió el rango de puertos para conexiones pasivas omita las
# siguientes dos líneas.
pasv_min_port=30300
pasv_max_port=30309
# 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
Reiniciamos el servicio vsftpd.
service vsftpd restart
Para hacer pruebas, instalamos el Filezilla.
yum -y install filezilla
En el caso de que no podamos instalarlo porque no tenemos el repositorio preparado, primero nos instalamos el repositorio EPEL. Para ello escribimos la siguiente orden.
Una vez instalado, abrimos el Filezilla y le damos a Archivo -> Nuevo Sitio y ponemos los siguientes parámetros.
Nos saldrá el certificado que hemos creado anteriormente.
Que tal Angel,
Muy buen articulo me ayudo a instalarlo bien, sabes soy nuevo en este tema de linux y quiero preguntarte como se haria para agregar un usuario nuevo que puedas accesar con FTP externo por ejemnplo desde un equipo con windows
Gracias de anteamano