Respuestas:
SSH admite el encriptado de un usuario SFTP de forma nativa. Solo necesitas suministrar
ChrootDirectory
En su archivo de configuración sshd, y reinicie sshd.
Si solo estás haciendo sftp, entonces no tienes que hacer nada más. Desafortunadamente, esto no funciona para scp. Para el shell interactivo, deberá copiar los binarios y los nodos / dev en el chroot.
Un ejemplo de configuración, para un solo usuario, testuser:
Match User testuser
ChrootDirectory /home/testuser
ForceCommand internal-sftp
Algunas cosas a tener en cuenta, desde la página de manual de sshd_config:
Todos los componentes del nombre de ruta deben ser directorios propiedad de root que no sean escribible por cualquier otro usuario o grupo. Después del chroot, sshd (8) cambia el directorio de trabajo al directorio de inicio del usuario.
Busque ChrootDirectory en man sshd_config para obtener más información.
Subsystem sftp /usr/lib/openssh/sftp-server
línea aSubsystem sftp internal-sftp -f AUTH -l VERBOSE
Match
sección.
Un chroot es un método razonablemente simple. Dado que el sistema operativo ya tiene esta característica de seguridad, los escritores de demonios tienden a no intentar volver a implementarla.
Rssh viene con una guía sobre cómo configurar una cárcel chroot. Está en el CHROOT
archivo en la distribución de origen. En pocas palabras, debe tener:
/usr/bin/scp
, /usr/libexec/openssh/sftp-server
,/usr/bin/rssh_chroot_helper
{/usr,}/lib/lib*.so.[0-9]
) que usan, también copiadas/etc/passwd
(posiblemente no sea una copia sino que se derive del maestro)/dev/null
, /dev/tty
, y también una /dev/log
toma para la explotación forestal (y tiene que informar a su demonio syslog para escuchar en ese socket)Consejo adicional que no está en la documentación de rssh: si necesita que algunos archivos sean accesibles en una cárcel chroot, puede usar bindfs o Linux mount --bind
para crear jerarquías de directorios adicionales desde fuera de la cárcel. bindfs
permite que el directorio remontado tenga permisos más restrictivos, por ejemplo, solo lectura. ( mount --bind
no a menos que aplique un parche del núcleo; Debian ha incluido este parche desde East Lenny, pero la mayoría de las otras distribuciones no lo han hecho a partir de 2011.)
Es posible que desee mirar scponly (o más recientemente, rssh ); Es esencialmente un shell de inicio de sesión que solo se puede utilizar para iniciar scp o el subsistema sftpd. En la scponlyc
variante realiza un chroot antes de activar el subsistema en cuestión.