Usuarios web¶
En esta sección vamos a crear espacios web distintos administrados con su propia cuenta. En cada espacio cada usuario podrá subir su página web HTML+CSS+JS+PHP.
Cada usuario podrá gestionar su espacio web a través de un cliente SFTP (SSH para transferencia de ficheros)
Elementos que vamos a tratar:
- Creación de Usuarios
- Gestión de permisos
- Forzar cambio de password (opcional)
- SFTP
- Configuración de Servidores web
Creación de usuarios¶
Requisitos:
- La home del usuario será
/var/www/<nombre_usuario>
- No se podrá conectar por SSH
Utilizaremos el comando adduser
para crear los usuarios, crearemos un usuario para cada uno de los espacios web.
Estos usuario tendrán su home en /var/www/<nombre_usuario>/
, cuando se autentifiquen en el sistema se irán a este directorio.
Utilizaremos varias opciones de adduser para:
- Especificar su home sin copiarla de /etc/skel
- Como bash tendrá false para no permitir acceso ssh
Ejemplo de comando para el usuario bea
mkdir /var/www/bea/
mkdir /var/www/bea/web
mkdir /var/www/bea/ficheros
adduser --no-create-home --home /var/www/bea --shell /bin/false bea
chmod -R 770 /var/www/bea/
chown -R bea:bea /var/www/bea/
Dentro de ese directorio tendrán un directorio web
que será el DocumentRoot
de apache.
Subsitema SFTP¶
Para el corecto funcionamiento del SFTP y el login /bin/false debemos utilizar el internal-sftp de ssh
Cambia el fichero sshd_config
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Conexión con FileZilla¶
Ahora debes ser capaz de conectarte desde un cliente al espacioweb de Bea
ATENCIÓN: No debes poder acceder por ssh
Espacio web¶
Ahora configura un servidor virtual de apache para que Bea tenga su espacio web:
http://bea.iaw.com
ATENCIÓN: No funcionará por los permisos restrictivos de /var/www/bea
Configuración de permisos de apache¶
Necesitamos un módulo de apache que nos permite configurar usuario y grupo para cada instancia del servidor apache.
apache2-mpm-itk (just mpm-itk for short) is an MPM (Multi-Processing Module) for the Apache web server. mpm-itk allows you to run each of your vhost under a separate uid and gid—in short, the scripts and configuration files for one vhost no longer have to be readable for all the other vhosts.
apt-get install libapache2-mpm-itk
Ahora disponemos de la directiva AssignUserID
<VirtualHost *:80>
ServerAdmin ...
ServerName ....
...
DocumentRoot ...
Options -Indexes
AssignUserID myuser mygroup
</VirtualHost>
Verificación¶
Verifica que todo está funcionando y Bea puede subir los ficheros a su espacio web.
ATENCIÓN: Necesitamos permisos más restrctvos: nadie puede leer los ficheros de Bea, necesitamos quietar los permisos a otros.
Gestión de permisos¶
Para los usuarios del sistema vamos a configurar que el propietario de los ficheros tenga permisos completos, para el grupo leer y ejecutar y para otros nada
Se puede configurar a nivel sistema, pero nuestro usuarios no se van a conectar por ssh.
Lo configuraremos a nuvel sftp, tocando el fichero de configuración de sshd_config
Subsystem sftp internal-sftp
ForceCommand internal-sftp -u 0027
Crea fichero ahora y comprueba que tiene los permisos adecuados. Haz una conexión con Filezilla y verifica que los permisos se establecen bien.
Forzar cambio de password¶
OPCIONAL: Si queremos que los usuarios tengan que cambiar la contraseña usaremos
chage -d 0 luser
En este servidor no es necesario hacerlo.
CHROOT¶
Continuar...