|
Este artículo muestra como instalar vsftpd a partir de paquetes rpm, además de su configuración.
Procedimientos
1) Descargar el paquete RPM
Puedes bajar la última versión RPM de vsftpd de la colección rpm de
Red Hat/Fedora o de rpmfind.net. Para tu comodidad, te recomiendo que
lo bajes vía APT
Puedes descargar una copia usando de la siguiente manera:
apt-get install vsftpd
Eso es todo, Vsftpd esta oficialmente instalado. Ahora hagamos que funcione.
2) Inicio y prueba en modo "standalone"
vi /etc/vsftpd/vsftpd.conf
Agrega la siguiente línea, o si la línea ya existe asegurate que contenga lo siguiente:
listen=YES
Salva y cierra el archivo de configuración vsftpd.conf.
Ahora iniciemos vsftpd...
/usr/sbin/vsftpd
Si al intentar inciar el servicio, la pantalla te arroja el siguiente error:
# /usr/sbin/vsftpd
500 OOPS: vsftpd: does not run standalone, must be started from inetd
Tienes que configurar vsftpd para que corra con inetd/xinetd, si es el caso, ve directamente al paso 3)
Ahora intenta usar el servicio ftp de tu servidor. Una sesión ftp exitosa debe parecerse a ésta:
# ftp localhost
Connected to localhost (127.0.0.1).
220 (vsFTPd 1.2.1)
Name (localhost:root): alopez # (tendrás que usar un usuario de sistema para iniciar sesión)
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,47,193)
150 Here comes the directory listing.
drwxr-xr-x 21 501 501 4096 Feb 20 18:00 ulfix
226 Directory send OK.
ftp> quit
221 Goodbye.
Debes obtener una respuesta similar a la de arriba. Si prefieres
correr tu servidor ftp con inetd o xinetd, entonces continua con la
siguiente prueba. Personalmente recomiendo correr vsftpd con inetd o
xinetd.
3) Configuración para hacer operar vsftpd con inetd/xinetd:
Para configurar vsftpd para que opere con inetd o xinetd, haz lo siguiente:
Primero, vamos a editar archivo /etc/vsftpd/vsftpd.conf y establecer que vsftpd no corra en modo "standalone":
vi /etc/vsftpd/vsftpd.conf
Asegurate de que la siguiente directiva exista y este establecida a "NO":
listen=NO
Si estas corriendo inetd, haz lo siguiente:
vi /etc/inetd.conf
Si hay algunas lineas del servico ftp activas, comentalas o borralas y agrega la siguiente línea:
ftp stream tcp nowait root /usr/sbin/vsftpd vsftpd
Guarda y cierra el archivo.
Ahora reinicia inetd:
/etc/rc.d/init.d/inetd restart
Si utilizas xinetd, haz lo siguiente:
Usuarios de Red Hat/Fedora:
vi /etc/xinetd.d/vsftpd
# default: off
# description: The vsftpd FTP server serves FTP connections. It uses
# normal, unencrypted usernames and passwords for authentication.
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
nice = 10
}
Guarda y cierra el archivo.
Ahora detén y inicia xinetd...
/etc/rc.d/init.d/xinetd restart
Ahora probemos el servidor ftp con inetd/xinetd:
# ftp localhost
Connected to localhost (127.0.0.1).
220 (vsFTPd 1.2.1)
Name (localhost:root): alopez # (tendrás que usar un usuario de sistema para iniciar sesión)
331 Please specify the password.
Password:
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,47,193)
150 Here comes the directory listing.
drwxr-xr-x 21 501 501 4096 Feb 20 18:00 ulfix
226 Directory send OK.
ftp> quit
221 Goodbye.
Si obtienes una respuesta similar a la de arriba, felicidades, tu
servidor FTP esta vivo!. En los siguientes pasos cambiaremos la
configuración del servidor vsftpd para tener un mejor desempeño.
4) El archivo de configuración de vsftpd
El archivo de configuración debe estar localizado en
/etc/vsftpd/vsftpd.conf. Este archivo va a determinar como tu servidor
FTP va a operar. Notarás que el archivo vsftpd.conf contiene muchas
opciones de configuración, no voy a cubrir cada una de ellas, pero si
las más importantes:
anonymous_enable=NO/YES
Activa o desactiva el acceso FTP anónimo. Si no estas seguro de lo
que es un servidor FTP anónimo, lo mejor es establecer esta opción a
"NO".
local_enable=NO/YES
Esta opción activa o desactiva la caracteristica de que los usuarios
locales puedan acceder al servidor FTP, normalmente los servidores FTP
tendrán esta opción establecida a "YES". Se me ocurre que puedes
establecer esta opción a "NO" en el caso de que tengas un servidor FTP
estrictamente anónimo donde no requieres de sesiones de usuarios del
sistema.
write_enable=NO/YES
Activa o desactiva la opción para escribir en el servidor FTP. En la
mayoria de los casos, tendrás esta opcipon establecida a "YES".
local_umask=022 # O lo como quieras establecerla
La umask por defecto es 077. Aquí puedes establecer una umask personalizada si asi lo deseas.
xferlog_enable=YES
Esta opción activa el registro de los archivos se suben al servidor y las descargas realizadas.
ftpd_banner=Bienvenido al servidor FTP de ulfiX
Permite establecer un mensaje de bienvenida personalizado a los usuarios cuando se conectan al servidor.
chroot_list_enable=NO/YES
chroot_list_file=/etc/vsftpd.chroot_list
Esta directiva habilita la función "chroot" o jaulas de vsftpd. Con
"chroot_list_enable" establecida a "YES", vsftpd entonces busca un
archivo "chroot_list_file", del cual su ubicación es espeficicada en la
siguiente línea. Cualquier usuario que este listado en el archivo
/etc/vsftpd.chroot_list es automaticamente "enjaulado" a su directorio
home. Esto prohibe al usuario ir a un directorio fuera de su directorio
home FTP. Esto es muy útil en entornos FTP compartidos o como una
politica de privacidad y seguridad.
userlist_enable=NO/YES
userlist_deny=NO/YES
La opción "userlist_enable" le indica a vsftpd si consultará o no
consultará 2 archivos: vsftpd.ftpusers y vsftpd.user_list. Si está
opción es establecida a "YES", los 2 archivos funcionan como una lista
de usuarios que estan autorizados a conectarse al servidor FTP. Sin
embargo, cuando es usada en combinación con la opción
"userlist_deny=YES", los 2 archivos funcionan como una lista de
usuarios que NO están autorizados a conectarse al servidor FTP.
Esta opción es muy útil para negar completamente el acceso FTP a
usuarios criticos del sistema como "root", "apache" o "www". Una muy
buena capa de seguridad para tu servidor FTP.
5) Los archivos de configuración vsftpd.ftpusers y vsftpd.user_list
Estos dos archivos se enlazan dentro de las opciones
"userlist_enable" y "userlist_deny" en el archivo de configuración
/etc/vsftpd/vsftpd.conf. Cuando la opción "userlist_enable" es
establecida a "YES", estos 2 archivos funcionan como una lista de
usuarios que estan autorizados a conectarse al servidor FTP. Sin
embargo, cuando se combina con la opción "userlist_deny=YES" estos 2
archivos funcionan como una lista de usuarios que NO están
autorizados a conectarse al servidor FTP. Cuando la opción
"userlist_deny" es utilizada, la naturaleza de la denegacion de
servicio FTP que un usuario prohibido recibe difiere dependiendo de en
cual de los 2 archivos este listado.
Si un usuario esta listado en el archivo "vsftpd.user_list" y la
opción "userlist_deny" está activada, a los usuarios ni siquiera se les
preguntará por una contraseña cuando intenten conectarse al servidor
FTP. Son rechazados desde el principio.
Si un usuario es listado dentro de el archivo "vsftpd.ftpusers" y la
opción "userlist_deny" esta activada, a los usuarios se les preguntará
por una contraseña, pero nunca podrán iniciar sesión.
6) El archivo de configuración vsftpd.chroot_list
Cuando este achivo es usado con la opción "chroot_list" habilitada,
establece una lista de usuarios que serán enjaulados a su directorio
home. Estos usuaro no podrán cambiar de directorios fuera de su
directorio home. Esta es una buena opción cuando se trabaja en un
entorno FTP compartido donde se requiere de privacidad.
Cada vez que hagas cambios a los archivos de configuración, debes reiniciar vsftpd
Eso es todo. Existen muchas más opciones de configuración que puedes
agregar si así lo deseas, pero hasta este punto debes tener un servidor
FTP seguro y funcional. Sólo los usuarios registrados pueden escribir comentarios. Por favor valídate o regístrate. Powered by AkoComment 2.0! |