1. Creamos el usuario.
useradd -m ftpuser
2. Le asignamos un password
passwd ftppassword
3. Necesitamos asignarle un shell al usuario que no le permita ejecutar comandos pero si que le permita hacer login. Por lo que le vamos a asignar /bin/false
usermod -s /bin/false ftpuser
4. Hay que asegurarnos que el shell que le asignamos se encuentre en el grupo de los shells autorizados a hacer login. Así que corremos el próximo comando, editamos el archivo /etc/shells y añadimos /bin/false (si es que no se encuentra).
vi /etc/shells /bin/bash /bin/csh /bin/hash /bin/jsh /bin/ksh /bin/pfcsh /bin/pfksh /bin/pfsh /bin/remsh /bin/rksh /bin/rsh /bin/sh /bin/ssh /bin/tcsh /bin/zsh /bin/ftpaccess /sbin/sh # add this line /bin/false
*Nota: Si el archivo de /etc/shells no existe puedes crearlo pero tienes que asegurarte que incluyas todos los shells en tu sistema pues los shells que no estén aquí no podrán hacer login al sistema.
5. Vamos a restringir el usuario a su home folder mediante este comando:
5. Vamos a restringir el usuario a su home folder mediante este comando:
ftpconfig -d /home/ftpuser
6. Tenemos que editar el archivo de ftpaccess para decirle que usuario vamos a estar limitando.
vi /etc/ftpd/ftpaccess
Obtendrás esto:
# ident "@(#)ftpaccess 1.1 01/06/26 SMI"
#
# FTP server configuration file, see ftpaccess(4).
#
class realusers real *
class guestusers guest *
class anonusers anonymous *
loginfails 3
passwd-check trivial warn
private no
keepalive yes
shutdown /etc/ftpd/shutdown.msg
# email user@hostname
guestuser ftpuser
# timeout idle 300
banner /etc/ftpd/banner.msg
greeting brief
message /etc/ftpd/welcome.msg login
message .message cwd=*
readme README* login
readme README* cwd=*
chmod no anonymous
delete no anonymous
overwrite no anonymous
rename no anonymous
umask no anonymous
compress yes realusers guestusers anonusers
tar yes realusers guestusers anonusers
...
Hay que asegurarnos que la línea de "class guestusers guest *" se encuentre en el archivo, que la línea de "guestuser username" no este comentada y que en vez de username diga el nombre del usuario que queremos limitar "guestuser ftpuser". Salvamos el archivo.
7. Ahora corremos este comando para permitir el uso del file ftpaccess.
in.ftpd -a
Ya terminamos. Ahora solo resta hacer dos pruebas.
Prueba 1: Conexión mediante FTP para asegurarnos que no pueda acceder nada mas que su Home Folder.
ftp 1.1.1.1.1
Connected to 1.1.1.1.1
Name (1.1.1.1.1:root): ftpuser
331 Password required for ftpuser.
Password:
230 User ftpuser logged in. Access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/" is current directory.
ftp> cd ..
250 CWD command successful.
ftp> pwd
257 "/" is current directory.
ftp>
Podemos ver que mi directorio actual dice "/" en vez de "/home/ftpuser".
Prueba 2: Conexión mediante Putty.
Intente conectarse al servidor mediante Putty con las credenciales del usuario de ftp. Al poner las credenciales Putty se cerrará evitando que el usuario pueda ejecutar comandos directo en el command line. Esto es gracias al shell /bin/false.
Terminamos!
Prueba 2: Conexión mediante Putty.
Intente conectarse al servidor mediante Putty con las credenciales del usuario de ftp. Al poner las credenciales Putty se cerrará evitando que el usuario pueda ejecutar comandos directo en el command line. Esto es gracias al shell /bin/false.
Terminamos!
No comments:
Post a Comment