LinuxParty
NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Este tipo de configuración ssh chroot se conoce comúnmente como una cárcel chroot y en este artículo explicaremos su configuración paso a paso. Las cárceles fragmentadas son un medio para separar las operaciones específicas del usuario del resto del sistema Linux. Esta configuración cambia el directorio raíz aparente para el proceso de usuario en ejecución actual y su proceso secundario con un nuevo directorio raíz llamado cárcel chrooteada.
Paso 1: Crea el directorio de inicio de chroot.
[root@linuxnix ~]# mkdir -p /chroot/home/sahil [root@linuxnix ~]# ls -ld /chroot/home/sahil
drwxr-xr-x. 2 root root 4096 Jul 22 22:34 /chroot/home/sahil
[root@linuxnix ~]# chmod 700 /chroot/home/sahil
Necesitamos deshabilitar SELinux para que esta configuración funcione.
[root@linuxnix ~]# setenforce 0
Copiaremos ciertos archivos binarios y archivos de biblioteca en este directorio. Entonces, creemos los subdirectorios en los que colocaremos estos archivos binarios y de biblioteca.
[root@linuxnix ~]# cd /chroot [root@linuxnix chroot]# mkdir bin/ lib64/ lib/ dev/ [root@linuxnix chroot]# ls bin lib lib64 dev [root@linuxnix chroot]#
Ahora, bajo el directorio dev/, crearemos ciertos archivos de dispositivos de caracteres necesarios utilizando el comando mknod. En el siguiente comando, el indicador -m se usa para especificar los bits de permisos de archivo, c significa archivo de caracteres y los dos números son números mayores y menores a los que apuntan los archivos.
[root@linuxnix ~]# mknod /chroot/dev/null c 1 3 [root@linuxnix ~]# mknod /chroot/dev/zero c 1 5 [root@linuxnix ~]# mknod -m 666 /chroot/dev/tty c 5 0 [root@linuxnix ~]# mknod -m 666 /chroot/dev/ptmx c 5 2
Paso 2: Copie el binario bash en el directorio de inicio chrooteado
Dado que un entorno encarcelado está aislado del resto del sistema, no tendremos acceso a ningún comando de usuario, ni siquiera al shell bash, mientras estemos en el entorno encarcelado chroted. Entonces, para tener acceso al bash shell copiaremos el binario bash a nuestro directorio de inicio chrooteado junto con las bibliotecas compartidas requeridas por bash. Para saber qué bibliotecas compartidas necesita un binario, ejecutamos el comando ldd seguido de la ruta completa del binario.
[root@linuxnix chroot]# ldd /bin/bash linux-vdso.so.1 => (0x00007fff4f19a000) libtinfo.so.5 => /lib64/libtinfo.so.5 (0x0000003dfc200000) libdl.so.2 => /lib64/libdl.so.2 (0x0000003deee00000) libc.so.6 => /lib64/libc.so.6 (0x0000003dee600000) /lib64/ld-linux-x86-64.so.2 (0x0000003dede00000)
Ahora necesitaremos copiar los archivos de la biblioteca mencionados anteriormente junto con el archivo binario / bin / bash en los directorios apropiados en el directorio / chroot / home.
[root@linuxnix chroot]# cp -v /lib64/libtinfo.so.5 /chroot/home/lib64/ `/lib64/libtinfo.so.5' -> `/chroot/home/lib64/libtinfo.so.5' [root@linuxnix chroot]# cp -v /lib64/libdl.so.2 /chroot/home/lib64/ `/lib64/libdl.so.2' -> `/chroot/home/lib64/libdl.so.2' [root@linuxnix chroot]# cp -v /lib64/libc.so.6 /chroot/home/lib64/ `/lib64/libc.so.6' -> `/chroot/home/lib64/libc.so.6' [root@linuxnix chroot]# cp -v /lib64/ld-linux-x86-64.so.2 /chroot/home/lib64/ `/lib64/ld-linux-x86-64.so.2' -> `/chroot/home/lib64/ld-linux-x86-64.so.2' [root@linuxnix chroot]# [root@linuxnix chroot]# cp -v /bin/bash /chroot/home/bin/ `/bin/bash' -> `/chroot/home/bin/bash' [root@linuxnix chroot]#
Ahora necesitamos ejecutar el comando chroot seguido del nombre del directorio de inicio chroot para completar la configuración del entorno chroot.
[root@linuxnix ~]# cat chroot_library_copy.bash #!/bin/bash CHROOT='/chroot/home' #create chroot directory if it does not already exist## mkdir $CHROOT ##copy library for lib in $( ldd $* | awk '/lib/ {print $3}' | sed 's/://' | sort | uniq ) do
cp ${lib} ${CHROOT}/lib64 done if [ -f /lib64/ld-linux-x86-64.so.2 ]; then cp /lib64/ld-linux-x86-64.so.2 ${CHROOT}/lib64 fi [root@linuxnix ~]#
Ejecutemos este script ahora.
[root@linuxnix ~]# bash -x ./chroot_library_copy.bash /bin/{ls,cat,echo,rm,date,bash,uname,vi} + CHROOT=/chroot/home + mkdir /chroot/home mkdir: cannot create directory `/chroot/home': File exists ++ sort ++ uniq ++ awk '/lib/ {print $3}' ++ sed s/:// ++ ldd /bin/ls /bin/cat /bin/echo /bin/rm /bin/date /bin/bash /bin/uname /bin/vi + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libacl.so.1 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libattr.so.1 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libcap.so.2 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libc.so.6 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libdl.so.2 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libpthread.so.0 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/librt.so.1 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libselinux.so.1 /chroot/home/lib64 + for lib in '$( ldd $* | awk '\''/lib/ {print $3}'\'' | sed '\''s/://'\'' | sort | uniq )' + cp /lib64/libtinfo.so.5 /chroot/home/lib64 + '[' -f /lib64/ld-linux-x86-64.so.2 ']' + cp /lib64/ld-linux-x86-64.so.2 /chroot/home/lib64 [root@linuxnix ~]#
[root@linuxnix ~]# cp -v /bin/{ls,cat,echo,rm,date,bash,uname,vi} /chroot/home/bin `/bin/ls' -> `/chroot/home/bin/ls' `/bin/cat' -> `/chroot/home/bin/cat' `/bin/echo' -> `/chroot/home/bin/echo' `/bin/rm' -> `/chroot/home/bin/rm' `/bin/date' -> `/chroot/home/bin/date' cp: overwrite `/chroot/home/bin/bash'? y `/bin/bash' -> `/chroot/home/bin/bash' `/bin/uname' -> `/chroot/home/bin/uname' `/bin/vi' -> `/chroot/home/bin/vi' [root@linuxnix ~]#
Paso 4: Agregue el usuario que va a ser encarcelado.
Al agregar la cuenta de usuario a encarcelar, también crearemos un grupo llamado sshonly y lo agregaremos como un grupo secundario al usuario que vamos a crear.
[root@linuxnix ~]# groupadd sshonly [root@linuxnix ~]# useradd -G sshonly -c "Restricted User" sahil
[root@linuxnix ~]# passwd sahil
Changing password for user sahil. New password: BAD PASSWORD: it is WAY too short BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully
Haremos uso del grupo sshonly en el archivo sshd_config de modo que cualquier miembro de este grupo reciba un entorno ssh encarcelado.
Paso 5: Modifique el archivo / etc / ssh / sshd_config y reinicie el servicio sshd
Agregue las siguientes líneas al archivo / etc / ssh / sshd_config y luego reinicie el servicio sshd.
[root@linuxnix ~]# tail -n 5 /etc/ssh/sshd_config # Use Match Group and ChrootDirectory options to Chroot members of 'sshonly` after authentication Match Group sshonly ChrootDirectory /chroot AllowTcpForwarding no X11Forwarding no
[root@linuxnix ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
Paso 6: Probar y validar la configuración
Ahora que hemos completado la configuración, intentemos iniciar sesión como el usuario sahil y probarla.
[root@linuxnix ~]# ssh Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. The authenticity of host '172.31.27.196 (172.31.27.196)' can't be established. RSA key fingerprint is 60:d4:8e:1a:4d:f8:f4:a8:9e:d5:b7:3b:2d:c7:f2:90. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.31.27.196' (RSA) to the list of known hosts. Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.'s password: -bash-4.1$ ls -bash-4.1$ pwd /home/sahil
Conclusión
En este artículo demostramos paso a paso cómo configurar una cuenta ssh encarcelada de chroot. Esperamos que esta publicación sea útil y esperamos sus sugerencias y comentarios.

-
Linux
- Cómo instalar y habilitar el completado automático de Bash Linux
- ¿Y si Linus Torvalds hubiera aceptado la oferta de Steve Jobs?
- Optimizar imágenes desde la Terminal Linux
- ¿Quiere una distribución de Linux sencilla, estable y segura? Entonces SpiralLinux es para ti
- Pruebas de rendimiento en servidores VPS, ordenadores de Escritorio o Servidores Linux
- Las 8 mejores distribuciones ligeras de Linux para ordenadores antiguos
- Los 6 mejores cargadores de arranque (boot loaders) para Linux
- Se eliminará el soporte a largo plazo para el kernel de Linux ya que el mantenimiento sigue bajo presión
- Cómo borrar archivos MUY GRANDES (100-200 GB) en Linux
- La cuota de mercado de Linux en Steam sigue siendo superior a la de Apple macOS
- ¿Puedes ejecutar Linux en un Commodore 64?
- Cambiar la hora en Linux con Chrony
- Ahora puede actualizar Linux Mint 21.1 a Linux Mint 21.2, así es como
- Renombrar archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- Usa tmux para una terminal más poderosa para Linux