Dado que en un ambiente de hosting los webmaster necesitan subir cosas a su web, Nessus sugirió sFTP, ni modo... Debemos activar los booleanos ssh_chroot_rw_homedirs, httpd_enable_homedirs, fenced_can_ssh (no descarto otro que no recuerde ahora..)
El archivo de configuración /etc/ssh/sshd_config lo deje así:
# override default of no subsystems
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match Group apache
ChrootDirectory /data/web
ForceCommand internal-sftp
AllowTcpForwarding no
Creamos el usuario "webmaster" asignandolo al grupo apache el cual no debería tener shell y en mi caso con un home particular por ejemplo "incoming".
useradd -g apache -d /incoming -s /sbin/nologin webmaster
Nótese que éste comando crea el directorio /incoming conteniendo:
[root@rusia incoming]# ls -lZa
drwx------. adminer apache system_u:object_r:default_t:s0 .
dr-xr-xr-x. root root system_u:object_r:root_t:s0 ..
-rw-r--r--. webmaster apache system_u:object_r:default_t:s0 .bash_logout
-rw-r--r--. webmaster apache system_u:object_r:default_t:s0 .bash_profile
-rw-r--r--. webmaster apache system_u:object_r:default_t:s0 .bashrc
-rw-r--r--. webmaster apache system_u:object_r:default_t:s0 .kshrc
Importante: Al final de todo el proceso y verificar que todo lo requerido funcione eliminé este directoio feo "/incoming" de la raiz y en /etc/passwd editar:
webmaster:x:613:48::/hosting/web1:/sbin/nologin
Luego bajo el directorio "Document Root" donde el webmaster subira sus htmls (en mi caso /hosting/web1/) deberá tener los propietarios y contextos:
/hosting : drwxr-xr-x. root root system_u:object_r:home_root_t:s0
/hosting/web1/ : drwxr-xr-x. root root unconfined_u:object_r:user_home_dir_t:s0
/hosting/web1/public_html : drwxr-xr-x+ wemaster apache unconfined_u:object_r:user_home_dir_t:s0
/hosting/web1/public_html/* : webmaster apache unconfined_u:object_r:user_home_t:s0
Donde * son los directorios, archivos y cosas html
Finalmente revisar mediante un cliente sftp subiendo un file de nombre piedra.html por ejemplo.
Esta piedra.html tendra el contexto : adminer apache system_u:object_r:user_home_t:s0, el cual es válido e interpretado por apache normalmente.
Este escenario esta basado en http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/ considerando RHEL6 con selinux enforcing.
No hay comentarios.:
Publicar un comentario