linux:ssh:chroot

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
linux:ssh:chroot [11/11/2019 03:52] – [umask en conexiones SFTP enjauladas] matelinux:ssh:chroot [08/05/2024 02:29] (actual) – [chroot (enjaulado)] mate
Línia 1: Línia 1:
 = chroot (enjaulado) = chroot (enjaulado)
-los usuarios se quedan encerrados en un directorio y no pueden salir de ahí (excepciones con ''mount --bind'')+los usuarios se quedan encerrados en un directorio y no pueden salir de ahí (excepciones con ''mount %%--%%bind'')
 <code bash sshd_config> <code bash sshd_config>
 # override default of no subsystems # override default of no subsystems
Línia 22: Línia 22:
   * http://www.esdebian.org/wiki/enjaulado-sftp   * http://www.esdebian.org/wiki/enjaulado-sftp
  
 +== ssh chroot
 +  * paso a paso: [[https://www.tecmint.com/restrict-ssh-user-to-directory-using-chrooted-jail/]]
 +  * <code bash>mkdir -p /home/test
 +ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
 +mkdir -p /home/test/dev/
 +cd /home/test/dev/
 +mknod -m 666 null c 1 3
 +mknod -m 666 tty c 5 0
 +mknod -m 666 zero c 1 5
 +mknod -m 666 random c 1 8
 +chown root:root /home/test
 +chmod 0755 /home/test
 +ls -ld /home/test
 +mkdir -p /home/test/bin
 +cp -v /bin/bash /home/test/bin/
 +ldd /bin/bash
 +mkdir -p /home/test/lib64
 +cp -v /lib64/{libtinfo.so.5,libdl.so.2,libc.so.6,ld-linux-x86-64.so.2} /home/test/lib64/
 +useradd tecmint
 +passwd tecmint
 +mkdir /home/test/etc
 +cp -vf /etc/{passwd,group} /home/test/etc/</code>
 +  * ''vi /etc/ssh/sshd_config'':<code>#define username to apply chroot jail to
 +Match User tecmint
 +#specify chroot jail
 +ChrootDirectory /home/test</code>
 +  * <code bash>systemctl restart sshd</code>
 +  * test de conexión. Sin comandos externos.
 +  * añadir $HOME y otros comandos:<code bash>mkdir -p /home/test/home/tecmint
 +chown -R tecmint:tecmint /home/test/home/tecmint
 +chmod -R 0700 /home/test/home/tecmint
 +cp -v /bin/ls /home/test/bin/
 +cp -v /bin/date /home/test/bin/
 +cp -v /bin/mkdir /home/test/bin/
 +ldd /bin/ls
 +cp -v /lib64/{libselinux.so.1,libcap.so.2,libacl.so.1,libc.so.6,libpcre.so.1,libdl.so.2,ld-linux-x86-64.so.2,libattr.so.1,libpthread.so.0} /home/test/lib64/
 +</code>
 == quick reference == quick reference
-  - crear grupo : ''groupadd sftpusers'' +  - crear grupo : <code bash>groupadd sftpusers</code> 
-  - añadir usuario: ''useradd -g sftpusers -d /incoming -s /sbin/nologin guestuser; passwd guestuser'' +  - añadir usuario: <code bash>useradd -g sftpusers -d /incoming -s /sbin/nologin guestuser; passwd guestuser</code> 
-    * o modificar uno existente: ''usermod -g sftpusers -d /incoming -s /sbin/nologin john'' +    * o modificar uno existente: <code bash>usermod -g sftpusers -d /incoming -s /sbin/nologin john</code> 
-  - modificar ''/etc/ssh/sshd_config'':<code bash>+  - modificar **/etc/ssh/sshd_config**:<code bash>
 #Subsystem      sftp    /usr/libexec/openssh/sftp-server #Subsystem      sftp    /usr/libexec/openssh/sftp-server
 Subsystem       sftp    internal-sftp</code> Subsystem       sftp    internal-sftp</code>
-  - añadir al final del fichero ''/etc/ssh/sshd_config'':<code bash>+  - añadir al final del fichero **/etc/ssh/sshd_config**:<code bash>
 Match Group sftpusers Match Group sftpusers
         ChrootDirectory /sftp/%u         ChrootDirectory /sftp/%u
         ForceCommand internal-sftp</code>         ForceCommand internal-sftp</code>
-    * en este caso, el directorio usado para almacenar los usuarios de SFTP es ''/sftp/<user>/'' +    * en este caso, el directorio usado para almacenar los usuarios de SFTP es **/sftp/<user>/** 
-  - comprobar que esté habilitado el login por contraseña en ''/etc/ssh/sshd_config'':<code bash>+  - comprobar que esté habilitado el login por contraseña en **/etc/ssh/sshd_config**:<code bash>
 PasswordAuthentication no</code> PasswordAuthentication no</code>
-  - crear el directorio home : en este caso ''mkdir -p /sftp/guestuser/incoming'' +  - crear el directorio home : en este caso <code bash>mkdir -p /sftp/guestuser/incoming</code> 
-  - asignar permisos (respetar el root:root de ''/sftp/'' ''/sftp/guestuser/''): ''chown guestuser:sftpusers /sftp/guestuser/incoming'' +  - asignar permisos (respetar el root:root de **/sftp/** **/sftp/guestuser/**): <code bash>chown guestuser:sftpusers /sftp/guestuser/incoming</code> 
-  - reiniciar el servicio: ''service sshd restart''+  - reiniciar el servicio: <code bash>service sshd restart</code> 
 /via: [[https://www.thegeekstuff.com/2012/03/chroot-sftp-setup]] /via: [[https://www.thegeekstuff.com/2012/03/chroot-sftp-setup]]
  
  • linux/ssh/chroot.1573473152.txt.gz
  • Darrera modificació: 11/11/2019 03:52
  • per mate