Is it a fake website?

16 marzo 2006

Servidor SSH CHROOTED

En un entorno donde se trabaja en un dominio windows bajo samba, y las cuentas de los usuarios se encuentran en un directorio ldap, configuraremos un servidor sftp para que los usuarios accedan a su unidad de red.

Finalidad:

- Usuarios con chroot
- Acceso a sftp
- Validación con PAM
- Seguridad

1. Haremos una separación de acceso según usuarios.
Usuarios administrativos, puerto aleatorio, por ejemplo 22022
Usuarios del servicio sftp, puerto 22
Para ello utilizaremos la versión ssh comercial para el 22.
La distribucion openssh en el 22022.

2. Cambiamos el puerto de openssh para el acceso administrativo.
Editamos /etc/ssh/sshd_config y cambiamos #Port 22 por #Port 22022

Y reiniciamos el demonio sshd.
Al hacer un netstat -ntl comprobamos que tenemos levantado el nuevo puerto.

3. Instalación de ssh comercial.
Dentro de este producto, existen unas versiones no comerciales con un uso
limitado pero que nos sirve para nuestros fines.
Elegimos un mirror adecuado y nos bajamos la última versión disponible. En el momento de
realizar este pequeño manual, la versión que me he descargado es:
ssh-3.2.9.1.tar.gz

4. Lo instalamos en una ruta diferente para no confundirlo con el openssh que ya tenemos funcionando. Las opciones de instalación serán:
#./configure --prefix=/etc/ssh-comercial -with-threads --without-pgp
y lo instalamos.

5. Instalamos el demonio de inicio. En la propia distribucion de ssh, existe un directorio denominado startup y directorios de varios S.Os, elegimos el nuestro y colocamos el demonio de arranque en nuestro S.O modificándolo según las rutas donde hemos instalado el ssh.

6. Configuramos el pam, y lo dejamos de esta forma;
#cat /etc/pam.d/sshd2

auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_smb_auth.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password sufficient /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so

Con este paso lo que estamos haciendo es que la validación cuando se acceda
al sftp sea la que el usuario tiene en el dominio.

Para ver más información sobre la configuración pam, se puede consultar este manual.

7. Realizamos algunos ajustes en el fichero de configuración del ssh comercial.

para que nos funcione el pam
#AllowedAuthentications keyboard-interactive

#AuthKbdInt.Optional pam

Aquí ponemos los usuarios que seran chrooteados
#ChRootUsers anonymous,ftp,guest

Deshabilitamos por seguridad algunas opciones que no nos hacen falta
#AllowX11Forwarding no
#AllowTcpForwarding no

#PermitRootLogin no

Activamos el subsistema sftp
#subsystem-sftp internal://sftp-server

Instalación finalazada.
A partir de ahora, el sistema funcionará, un usuario accediendo con un programa sftp se autentificará con sus credenciales del dominio, y cargará su unidad de red de trabajo habitual.
El único punto a tener en cuenta, es que el objeto homedirectory del posixaccount tenga una entrada válida y sea propiedad del usuario. La shell será /dev/null.

No hay comentarios: