TOP

Servidor VSFTPD CentOS 6.3

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

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.

anon_upload_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

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.


Y comprobaremos con un sniffer que la contraseña está encriptada y no se puede decodificar.


1 comentarios:

  1. 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

Publicar un comentario