Vamos a aprender en Debian versión: 10.1.0 a enjaular usuarios en ftp en la ruta:
«etc/vsftpd.chroot_list»
Cuando se añadan los usuarios en esa dirección no podrán salir de su directorio «home».
Antes de hacer nada es aconsejable actualizar el sistema poniendo en la terminal.
sudo apt-get update y sudo apt-get upgrade
Para instalar ftp en debian con vsftpd hay que poner:
sudo apt-get install vsftpd
Para se supone que soy el administrador del sistema no es aconsejable hacerlo desde mi cuenta, por eso voy a crear 2 usuarios que se llamaran «uno» y «dos«.
Hay 2 formas de hacerlo:
1º forma: para que el usuario pueda entrar (y no nos de error al intentar acceder) en ftp hay que quitarle permisos de escritura (w) (si le quitamos el permiso de escritura al administrador no podrá escribir, por eso es aconsejable a otras cuentas)
2º forma: también se puede hacer cambiándole a cada usuario a un grupo
En este ejemplo voy a enseñar la 1º forma (si a alguien le interesa la 2º forma y no sabe hacerlo por el motivo que sea, que lo diga y cuando vaya teniendo tiempo lo pondría).
Para comprobar si el vsftpd está funcionando correctamente hay que poner
systemctl status vsftpd
Voy a poner una ip de ejemplo para ello entramos en la parte superior derecha y le damos a «opciones» (IMPORTANTE: esto solo es para poner una ip nueva manualmente, también se puede pasar de este punto y seguir con el siguiente paso).
A continuación, vamos a «red» y le damos al signo «+«.
Elegimos la pestaña ipv4, elegimos «manual» y en direcciones añadimos la ip de «dirección, mascara de red, puerta de enlace» y le damos a añadir.
Como se puede comprobar sale la ip que teníamos anteriormente, para que se cambie a la ip que hemos cambiado manualmente solo hay que pulsar en el perfil 1 y se cambia.
Al pinchar en «perfil 1» se puede comprobar que está activado dicho perfil.
Ahora para comprobar la ip como el comando «ifconfig» ya no funciona en debian 9 y 10 ahora se usa el «iproute2» que es el sustituto de «ifconfig»
Con el comando ip «iproute2» hay varias formas de ver la ip, yo voy a usar «sudo ip a» para ver la ip que hemos puesto nosotros (hay que fijarse en lo que está en rojo que pone 10.15.20.25/24 y eso significa que ya tenemos la ip cambiada).
Ahora hay que quitarle permisos a un usuario para entrar por ftp, para ello en la consola ponemos «cd /home» para ir a donde están todos los usuarios creados.
Por la interfaz:
Por comandos:
Ahora hay que mirar que permisos tienen las carpetas de home para ello vamos a usar el comando «ls -l» en la terminal.
Lo que nos interesa es la w (escritura) para ello se lo voy a quitar al usuario «uno» para que no tenga permisos de escritura poniendo «sudo chmod a-w uno«.
sudo= se pone para ser administrador en la terminal.
chmod = sirve para cambiar los permisos de rwx (leer, escribir, ejecutar).
a-w = con esto le estoy diciendo que le quite los permisos de escritura.
uno = el usuario al que le vamos a quitar los permisos de escritura.
Después de quitar los permisos de escritura poniendo otra vez «ls -l» se puede comprobar que se han quitado los permisos del usuario «uno«.
Ahora hay que entrar en /etc y buscar el documento «vsftpd.conf» que está en y para ello ponemos en la consola: sudo nano /etc/vsftpd.conf para ir directamente a esa dirección y abrir el documento vsftpd.conf con el comando nano.
En la lista vemos:
«anonymous_enable=no» hay que dejarlo en «NO» porque no queremos entrar como usuarios anónimos
«Local_enable=YES» = Hay que dejarlo activado porque si lo dejamos en «NO», entonces desactiva los usuarios locales
Hay que centrarse en estas directivas y hay que desactivarlas (menos la de «default follows).
Para desactivar las directivas es tan simple como quitarle la «#» y lo dejamos como en la imagen de abajo:
chroot_local_user=NO = Si está activada, a los usuarios locales se les cambia el directorio raíz a su directorio home.
chroot_list_enable=YES = indica que los usuarios locales pueden conectarse al servidor estando en «YES». (los que no estén en la lista «etc/vsftpd.chroot_list» se pueden mover libremente).
Pulsamos «control + o» para guardar lo que hemos modificado y «control +x» para salir de /etc/vsftpd.conf (antes de hacer cambios aconsejo hacer una copia del archivo «vsftpd.conf» por si se modifica algo sin querer para poder restaurarlo).
Todo lo anterior no tendría sentido si no reiniciamos el vsftpd, para ello en la terminal hay que poner:
systemctl restart vsftpd
En el caso de que quisiera entrar ahora con el usuario «dos» me saldría el error «500»
No me dejaría entrar y para ello le tengo que quitar al usuario «dos» los permisos de escritura (Si alguien se confunde y quiere dejar los permisos como estaban antes hay que poner «chmod 755 dos«)
sudo chmod a-w dos
Vamos a proceder a enjaular al usuario «uno» y ver que el usuario «dos» se puede mover por todo el sistema.
En la imagen de abajo como hemos visto antes pone: «chroot_list_file=/etc/vsftpd.chroot_list» se refiere que en esa ruta van a estar los usuarios enjaulados.
Como podemos comprobar en la imagen de abajo solo se visualiza en /etc el archivo «vsftpd.conf» y como no está creada la crearemos nosotros.
Para crear un documento en gnu/Linux lo más fácil es ir al directorio y luego crear el documento, para ello vamos a poner en la terminal:
cd /etc y vamos directamente al directorio /etc
Ahora en la terminal hay que poner: sudo touch vsftpd.chroot_list para crear un documento que tenga ese nombre.
En la terminal ahora ponemos el comando «ls» y saldrá con el archivo que hemos creado en /etc.
Ahora entramos en el documento creado poniendo:
sudo nano vsftpd.chroot_list
Y añadimos al usuario que queremos que esté enjaulado, en este caso es al usuario «uno«.
Para guardar y salir pulsamos «control + o » y «control + x«.
Vamos a entrar por ftp con el usuario «dos» para ver que se puede mover por todo el sistema y luego con el usuario «uno» para ver que esta enjaulado.
Con el usuario «dos».
Estoy dentro del usuario «dos».
Como se puede comprobar en la imagen de abajo he puesto:
El comando «pwd» que sirve para saber donde estoy y me dice que estoy en «/home/dos» (mi directorio)
El comando «cd ..» que sirver para moverse atrás en las carpetas, después he puesto pwd y me die que estoy en /home (ya me ha dejado salir de mi directorio).
He puesto otra vez el comando «cd ..» para moverme atrás y he puesto «pwd» y me dice que estoy en la raíz de gnu/Linux (en «/»)
Como se puede comprobar me ha dejado moverme entre las carpetas
Con el usuario «uno».
Estoy dentro del usuario «uno»
Como se puede comprobar he puesto el comando para saber dónde estoy «pwd» y solamente se ve la raíz «/» , al usar el comando «cd ..» también sale «/» y como se puede comprobar no me deja salir de mi directorio home.
Gracias por mirarlo y si te ha gustado sígueme para animarme a poner más a menudo.
Pd: en el caso de que alguien este aprendiendo y me haya saltado algun paso y no sea capaz hacerlo que lo diga y con mucho gusto le ayudaré donde se haya trabado, y si alguien ve que me he saltado algún paso y faltan cosas por poner, que lo diga y con mucho gusto también lo modificaré.
I just couldn’t leave your site before suggesting that I really loved
the usual information a person supply to your visitors?
Is gonna be again ceaselessly to check out new posts
Me gustaMe gusta
Thank you
Me gustaMe gusta