Skip to content

Commit 59fcf3c

Browse files
Creación de usuarios y chroot
1 parent 3ca38b9 commit 59fcf3c

3 files changed

Lines changed: 57 additions & 49 deletions

File tree

67.4 KB
Loading

docs/source/servidor-web/Untitled-1.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,6 @@ En sshd_config
6060
Include /etc/ssh/sshd_config.d/*
6161

6262
En sshd_config.d/pepito.conf
63-
ChrootDirectory %h
63+
ChrootDirectory %h
6464
ForceCommand internal-sftp -u 0027
6565
PasswordAuthentication yes

docs/source/servidor-web/creacion-usuarios.rst

Lines changed: 56 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,38 @@ Requisitos:
1010

1111
Ejemplo para el usuario ``manuel``:
1212

13+
Con los siguientes comandos, crearemos los directorios para el usuario.
14+
15+
Después, crearemos el usuario. Con la opción ``--no-create-home`` indicamos que NO queremos utilizar la ruta por defecto en ``/home/`` ni copiar desde ``/etc/skel`` los archivos para poblarlo. Indicamos también que su shell (intérprete de comandos) será ``/bin/false``, que es una shell inexistente que no permite el inicio SSH.
16+
17+
A continuación, con los directorios creados debemos configurar los permisos de estos.
18+
19+
.. important::
20+
21+
*This path, and all its components, must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.*
22+
23+
No solo el propio directorio donde enjaularemos al usuario, sino todos los componentes de la ruta deben ser propiedad de root para que chroot funcione.
24+
25+
Fuente: `Manual de *sshd_config*. <https://linux.die.net/man/5/sshd_config>`_
26+
27+
También cambiaremos la propiedad de los ficheros y directorios. La raiz del directorio *chrooteado* será de root, y los subdirectorios y archivos del usuario.
28+
29+
1330
.. code-block:: console
1431
1532
mkdir /var/www/manuel/
1633
mkdir /var/www/manuel/web
1734
mkdir /var/www/manuel/ficheros
35+
mkdir /var/www/manuel/ficheros/logs
36+
# También se podría con:
37+
# mkdir -p /var/www/manuel/ficheros/logs
38+
# mkdir /var/www/manuel/www
1839
adduser --no-create-home --home /var/www/manuel --shell /bin/false manuel
19-
chmod -R 770 /var/www/manuel/
40+
chmod 755 /var/www/manuel/
2041
chown -R manuel:manuel /var/www/manuel/
42+
chown root:root /var/www/manuel/
43+
chmod -R 770 /var/www/manuel/*
44+
2145
2246
Activar SFTP
2347
==============
@@ -76,8 +100,8 @@ El archivo de configuración del sitio será de la siguiente manera:
76100
ServerAdmin webmaster@localhost
77101
DocumentRoot /var/www/manuel/web
78102
79-
ErrorLog ${APACHE_LOG_DIR}/manuel-error.log
80-
CustomLog ${APACHE_LOG_DIR}/manuel-access.log combined
103+
ErrorLog /var/www/manuel/ficheros/logs/manuel-error.log
104+
CustomLog /var/www/manuel/ficheros/logs/manuel-access.log combined
81105
AssignUserID manuel manuel
82106
83107
</VirtualHost>
@@ -91,22 +115,47 @@ Activamos el sitio y recargamos el servicio:
91115
systemctl reload apache2
92116
93117
94-
Gestión de permisos
95-
=====================
118+
Gestión de permisos y chroot
119+
============================
96120

97121
En el archivo ``/etc/ssh/sshd_config`` cambiamos/activamos:
98122

99123
.. code-block::
100124
101-
ForceCommand internal-sftp -u 0027
125+
Match User *
126+
Include /etc/ssh/sshd_config.d/*
127+
128+
129+
Crearemos un archivo nuevo en ``sshd_config.d/manuel.conf``, donde incluiremos:
130+
131+
.. code-block::
132+
133+
ChrootDirectory %h
134+
ForceCommand internal-sftp -u 0027
135+
PasswordAuthentication yes
102136
103137
Reiniciamos el servicio:
104138

105139
.. code-block:: console
106140
107141
systemctl restart ssh
108142
109-
Podremos acceder a la web utilizando el navegador:
143+
Acceso y comprobación
144+
=======================
145+
146+
Utilizando el programa FileZilla, o cualquier otro compatible con SFTP el usuario podrá subir y gestionar sus ficheros:
147+
148+
.. image :: ../images/servidor-web/web-15.png
149+
:width: 500
150+
:align: center
151+
:alt: Filezilla Chrooteado
152+
|br|
153+
154+
.. important::
155+
156+
Debemos añadir ``sftp://`` antes del host para conectarnos.
157+
158+
Después de haber subido los archivos, podremos acceder a la web utilizando el navegador:
110159

111160
.. image :: ../images/servidor-web/web-14.png
112161
:width: 500
@@ -121,46 +170,5 @@ Podremos acceder a la web utilizando el navegador:
121170

122171
.. sudo usermod -a -G manuel root
123172
124-
sudo groupadd sftp_users
125-
sudo usermod -a -G sftp_users manuel
126-
127-
En sshd_config:
128-
129-
Match User sftp_users
130-
ChrootDirectory /var/www/user
131-
ForceCommand internal-sftp
132-
X11Forwarding no
133-
AllowTcpForwarding no
134-
PasswordAuthentication yes
135-
136-
137-
https://devanswers.co/configure-sftp-web-server-document-root/#5-method-two-better-security-and-sftp-user-management
138-
139-
chmod 755 /var/
140-
chmod 755 /var/www/
141-
chmod 755 /var/www/manuel
142-
143-
chown root:root /var/
144-
chown root:root /var/www/
145-
chown root:root /var/www/manuel
146-
147-
148-
chown -R root:sftp_users /var/www/manuel/*
149-
sudo find /var/www/manuel/ -type d -exec chmod 775 {} \;
150-
sudo find /var/www/manuel/ -type d -exec chmod 775 {} \;
151-
sudo find /var/www/manuel/ -type f -exec chmod 664 {} \;
152-
153-
sudo find /var/www/manuel -type d -exec chmod g+s {} \;
154-
155-
156-
cd /var/www/
157-
90 ls -lah
158-
91 cd manuel/
159-
92 ls -lah
160-
93 chmod 755 -R -
161-
94 chmod 755 -R .
162-
163-
164173
165-
Pruebas con "MARTA"
166174

0 commit comments

Comments
 (0)