En este post, trataremos el tema de como enjaular nuestros usuarios locales en un servidor Linux, para lo que a contiuación explico paso por paso:
1.- Instalamos el paquete vsftpd.
[root@repoiusa01 vsftpd]# yum install vsftpd.x86_64
2.- Obtenemos un respaldo del archivo de configuración vsftpd.conf
[root@repoiusa01 vsftpd]# cd /etc/vsftpd/
[root@repoiusa01 vsftpd]# cp vsftpd.conf vsftpd.conf.original
3.- El archivo vsftpd.conf lo vaciamos y agregamos las siguientes lineas:
[root@repoiusa01 vsftpd]# > vsftpd.conf
4.-
[root@repoiusa01 vsftpd]# vi vsftpd.conf
# This file was configured for the FTP service for Iusa # # 29 de Noviembre 2013 # Allow anonymous FTP? (Beware – allowed by default #if you comment this out). anonymous_enable=NO # Uncomment this to allow local users to log in. local_enable=YES #Uncomment this to enable any form of FTP write command. write_enable=YES # Default umask for local users is 077. You may wish to change this to 022, # if your users expect that (022 is used by most other ftpd’s) local_umask=022 # Activate directory messages – messages given to remote users when they # go into a certain directory. dirmessage_enable=YES # Activate logging of uploads/downloads. xferlog_enable=YES #Make sure PORT transfer connections originate from port 20 (ftp-data). connect_from_port_20=YES # If you want, you can have your log file in standard ftpd xferlog format xferlog_std_format=YES # Run standalone? vsftpd can run either from an inetd or as a standalone # daemon started from an initscript. listen=YES # This string is the name of the PAM service vsftpd will use. pam_service_name=vsftpd #Enable user list for FTP userlist_enable=YES #Enabled Tcp Wrapper tcp_wrappers=YES # You may specify an explicit list of local users to chroot() to their home # directory. If chroot_local_user is YES, then this list becomes a list of # users to NOT chroot(). chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list |
5.- Validamos el servicio de SELINUX si esta habilitado
[root@repoiusa01 vsftpd]# getenforce
Enforcing
6.- Validamos el siguiente parametro de ftp si se encuentra en off
ftp_home_dir –> off
NOTA: Si se encuentra en off hay que colocarlo en on
[root@repoiusa01 vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write –> off allow_ftpd_full_access –> off allow_ftpd_use_cifs –> off allow_ftpd_use_nfs –> off ftp_home_dir –> on ftpd_connect_db –> off ftpd_use_passive_mode –> off httpd_enable_ftp_server –> off tftp_anon_write –> off |
7.- Procedemos a cambiar el valor indicado
[root@repoiusa01 vsftpd]# setsebool -P ftp_home_dir on
8.- Validamos nuevamente que el valor ftp_home_dir en on
[root@repoiusa01 vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write –> off allow_ftpd_full_access –> off allow_ftpd_use_cifs –> off allow_ftpd_use_nfs –> off ftp_home_dir –> on ftpd_connect_db –> off ftpd_use_passive_mode –> off httpd_enable_ftp_server –> off tftp_anon_write –> off |
9.- Creamos nuestro usuario para ftp, usuario userftp con y se le asigna un password.
[root@repoiusa01 vsftpd]# groupadd -g 517 userftp
[root@repoiusa01 vsftpd]# useradd -m -c “Usuario para FTP” -s /bin/bash -d /home/userftp -g 517 -u 517 userftp
10.- Creamos el archivo chroot_list en /etc/vsftpd/y agregamos los usuarios que querramos enjaular
root@repoiusa01 vsftpd]# echo “userftp” > chroot_list
Ojo, si queremos agregar un usuario màs hacerlo de la siguiente manera
[root@repoiusa01 vsftpd]# echo “userftp2” >> chroot_list
NOTA: Previamente debe estar creado el usuario
11.- Iniciamos el servicio de vsftpd
[root@repoiusa01 vsftpd]# service vsftpd start
Starting vsftpd for vsftpd: [ OK ]
12.- Y la prueba de fuego es conectarse con un cliente ftp puede ser con el comando ftp de linux o con un cliente como filezilla.
Introduccimos los datos de nuestro usuario FTP:
Voila, nos conectamos y podemos observar que solo estamos limitado al home del usuario:
Bueno, eso es todo amigos. Espero y les siva como a mi me sirvio.