Instalación de un servidor FTP
En esta ocasión estaremos viendo los pasos de la instalación de un servidor FTP con el servicio VSFTPD.
16 August 2022
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