Instalación de un servidor VSFTPD
En este artículo aprenderemos a instalar y configurar un servidor de ftp que viene de serie con numerosas distriuciones:
vsftpd (Very Secure FTP Daemon). Como medida de seguridad adicional, aprenderemos a crear usuarios con acceso al
servidor que no pertenezcan al sistema. Finalmente, "enjaularemos" a esos usuarios y sólo les permitiremos el acceso adetrminados directorios.
Instalación del servidor vsftpd en Fedora
Descargamos en instalamos la última versión de vsftpd, bien mediante rpm:
# rpm -Uvh vsftpd-2.0.4-1.2.i386.rpm
Bien mediante yum:
# yum install vsftpd
Ambas opciones dejarán configurado con las funciones básicas un servidor de ftp en nuestro sistema. Para asegurar
el inicio del servidor con la carga del sistema, nosserviremos de chkconfig en Fedora Core:
# chkconfig -add vsftpd
# /etc/init.d/vsftpd restart
Por defecto, el servidor ftp "escucha" en el puerto 21, así que la siguiente orden nos confirmará la ejecución correcta
como demonio en el servidor:
# netstat -an|grep LISTEN|grep 21
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
Configuración de las bases de datos
La configuración de los usuarios que van a hacer usodel servidor de ftp ha de estar almacenada en una base de datos.
Las preferencias del autor se decantan por dos: Berkeley Database o MySQL. El manual se ocupará de una
configuración con Berkeley Database, aunque se darán las indicaciones básicas para una configuración con MySQL (se
requerirán ciertos conocimientos de MySQL para crear las bases de datos con los usuarios y sus contraseñas que noserán explicados aquí, por escapar estos al tema principal de este manual).
Lo primero a tener en cuenta será la instalación, si no lo tenemos ya, del soporte para las bases de datos que usemos
como almacenamiento de los usuarios. En el caso de usar Berkeley DB instalaremos el soporte que nos ofrece el
paquete db4-4.3:
# yum install db4 db4-utils
En caso de usar MySQL, instalaremos elpaquete pam_mysql y todo lo necesario para tener corriendo sin problemas
nuestro servidor de MySQL:
# yum install pam_mysql
Una vez instalado el soporte para las bases de datos, crearemos las tablas contenedoras de los usuarios que usarán el
servidor de ftp. Para crear la tabla bajo Berkeley DB, crearemos en primer lugar un archivo de texto plano donde
introduciremos, para cada usuario, un par delíneas que contendrán, en este orden, el nombre del usuario y la
contraseña. Por ejemplo, un archivo con dos usuarios quedaría como sigue:
user_001
passwd001
user_002
passwd002
Seguidamente, transformaremos el archivo al formato de Berkeley DB y bloquearemos cualquier acceso al fichero que
no sea el del usuario root (obviamente, el fichero de texto con las claves será borrado de formainmediata o guardado
en lugar muy seguro):
# db_load -T -t hash -f users_db /etc/vsftpd/users.db
# chmod 600 users.db
Si vamos a trabajar con MySQL, crearemos la tabla y los pares Usuario/Contraseña correspondientes,
recomendándose la introducción de las contraseñas con encrypt().
Configuración de PAM
vsftpd utilizará PAM como pasarela de autenticación hacia la base de datos. Nuestra misión serála creación de un archivo
de configuración que le indique a PAM cómo está estructurada esa base de datos y cuál es el mecanismo de acceso a la
misma. El archivo de configuración de PAM para vsftpd ha de situarse en la ruta /etc/pam-d/vsftpd y contendrá las líneas
siguientes en el caso de una base de datos Berkeley DB:
#%PAM-1.0
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/usersaccount required /lib/security/pam_userdb.so db=/etc/vsftpd/users
Nota: La versión de la librería pam_userdb.so utilizada al tiempo de escribir este manual añade la extensión .db al archivo
de Berkeley DB especificado de forma automática. Es por esto que la ruta que apunta a dicho archivo dentro de
/etc/pam.d/vsftpd deberá ir sin la extensión .db. Esto puede cambiar en versiones futuras de...
Regístrate para leer el documento completo.