Instalación de un servidor FTP


Aunque existen más opciones para compartir archivos, saber cómo implementarlo nos puede quitar dolores de cabeza. De igual forma agregaremos seguridad haciendo uso de certificados generados con OpenSSL.

Por sus siglas en inglés FTP: File Transfer Protocol (Protocolo de transferencia de archivos) es un servicio que nos permite compartir de forma muy sencilla información con un servidor. Estaremos configurando el servicio de FTP en distribuciones basadas en RedHat, en este caso será un sistema Alma Linux.

Primero realizaremos la instalación de los paquetes necesarios. Pueden hacer uso de “dnf” si así lo requieren:

yum update && yum install -y vsftp ftp

Ahora modificaremos el archivo de configuración:

vim /etc/vsftp/vsftp.conf

anonymous_enabled=NO

Descomentar dos líneas

ascii_upload_enabled=YES

ascii_download_enabled=YES

Modificar el banner

ftpd_banner=Pues bienvenido

En ocasiones es necesario modificar el archivo vsftp.allowedusers y agregar los usuarios permitidos

Luego de esto es necesario reiniciar el servicio:

systemctl restart vsftp

agregamos las reglas del firewall:

iptables -A OUTPUT -p tcp -o enp0s8 --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT

iptables -A INPUT -p tcp -i enp0s8 --sport 21 -m state --state ESTABLISHED -j ACCEPT

Para realizar las pruebas, nos podemos conectar con el cliente de cmd de windows:

ftp <ip_vsftp_server>

o desde el Filezilla

** Seguridad en la conexión por TLS **

Más información: https://webhostinggeeks.com/howto/setup-vsftpd-service-with-ssltls-on-linux/

Luego de haber realizado la instalación de VSFTPD, procedemos a generar la estructura de carpetas correspondiente:

mkdir -p /etc/vsftpd/ssl/private

Procederemos a generar tanto el certificado y la llave privada. Esto con la herramienta openssl:

openssl req -x509 -nodes -days 720 -newkey rsa:2048 -keyout /etc/vsftpd/ssl/private/vsftpd.key -out /etc/vsftpd/ssl/vsftpd.pem

Ahora asignamos los permisos 400 a dichos archivos

chmod 400 /etc/vsftpd/ssl/vsftpd.pem

chmod 400 /etc/vsftpd/ssl/pem/vsftpd.key

Por último, agregamos los siguientes parámetros al archivo de configuración vsftpd.conf

write_enable=YES

allow_writeable_chroot=YES

Más información: https://linuxhint.com/setup-vsftpd-ftp-server-on-debian10/

Lo mío

Configuración para SSL/TLS

    ssl_enable=YES
    allow_anon_ssl=NO
    force_local_data_ssl=YES
    force_local_logins_ssl=YES
    ssl_tlsv1=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
    rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
    rsa_private_key_file=/etc/vsftpdssl/private/vsftpd.key

Lo del sitio

Add follows to the bottom

    ssl_enable=YES
    allow_anon_ssl=NO
    force_local_data_ssl=YES
    force_local_logins_ssl=YES

    ssl_tlsv1=YES
    ssl_sslv2=NO
    ssl_sslv3=NO
    rsa_cert_file=/etc/vsftpd/ssl/vsftpd.pem
    rsa_private_key_file=/etc/vsftpd/ssl/private/vsftpd.key

Al terminar, reiniciamos los servicios de vsftpd:

systemctl restart vsftpd

Listo. Es necesario hacer una prueba de conexión desde un cliente FTP (FileZilla)

Link al capítulo del curso de servidores: https://youtu.be/PS4AXOazODk

Happy hacking