Creé el usuario MY_USER. Establezca su directorio de inicio en / var / www / RESTRICTED_DIR, que es la ruta a la que debe estar restringido. Luego edité sshd_config y establecí:
Match user MY_USER
ChrootDirectory /var/www/RESTRICTED_DIR
Luego reinicié ssh. Hice MY_USER propietario (y propietario del grupo) de RESTRICTED_DIR, y lo modifiqué a 755. Obtengo
Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER
Si eliminé las 2 líneas de sshd_config, el usuario puede iniciar sesión correctamente. Por supuesto, puede acceder a todo el servidor. ¿Cuál es el problema? Incluso intenté poner RESTRICTED_DIR en la raíz (como leí en alguna parte que alguien resolvió este mismo problema haciéndolo). Sin suerte..
/
,/var
,/var/www
, y/var/www/RESTRICTED_DIR
todos debemos reúnen los requisitos de seguridad más arriba). Es un verdadero chroot (revise la página de manual): el directorio de inicio de su usuario debe existir dentro del chroot , al igual que/bin
todas las demás cosas que su usuario necesitará ...sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
/var/www
ruta directamente, lo que podría romper apache, sería mucho mejor colocar su directorio sftp en otra ruta, luego usar la asignación de URL en Apache para apuntar al otro directorio . Consulte la documentación aquí httpd.apache.org/docs/2.4/urlmapping.html enFiles Outside DocumentRoot
El directorio ChrootDirectory debe ser propiedad de root y tener modo 755:
Ok, ahora todos los archivos
/var/www/RESTRICTED_DIR
deben ser propiedad deMY_USER
, que deben pertenecer alwww-data
grupo, y tener el modo 775 para permitir permisos de grupo, como este:NOTA: Recuerde que es una buena práctica permitir el acceso solo a una carpeta htdocs si está configurando apache.
fuente
sudo usermod -a -G www-data MY_USER
como el grupo debería venir después-G
Después de resolver algunos problemas hoy, me di cuenta de que la raíz también debe poder escribir en los directorios.
Lo siguiente no funcionó:
Tan pronto como solucioné esto, mi chroot comenzó a funcionar.
fuente