El siguiente tutorial es para configurar un servidor OpenSSH, específicamente SFTP con Chroot, bajo plataforma CentOS 5.x (o equivalente), en 64 bits.
A) Update de SSH
El uso de chroot para SSH, viene a partir de la versión 4.9, mientras que CentOS/RedHt 5 viene con la versión 4.3.
Por lo anterior, procederemos a descargar unos paquetes externos actualizados ya compilados para CentOS/RedHat 5 y que funcionan sin problemas.
Para 64 bits:
http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/x86_64/
Para 32 bits:
http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/i386/
Descargar los siguientes paquetes (por ejemplo para 64 bits):
openssh-5.1p1-3.el5.hrb.x86_64.rpm
openssh-clients-5.1p1-3.el5.hrb.x86_64.rpm
openssh-server-5.1p1-3.el5.hrb.x86_64.rpm
Actualizar SSH:
# rpm -Uvh openssh-5.1p1-3.el5.hrb.x86_64.rpm openssh-clients-5.1p1-3.el5.hrb.x86_64.rpm openssh-server-5.1p1-3.el5.hrb.x86_64.rpm
Se verá una salida como la siguiente:
Revisión de la versión de SSH:
[root@pruebas ~]# rpm -qa | grep openssh
openssh-clients-5.1p1-3.el5.hrb
openssh-5.1p1-3.el5.hrb
openssh-server-5.1p1-3.el5.hrb
B) Instalación de RSSH
Se debe tener instalado el paquete RSSH. Este paquete se puede extraer desde el repositorio de EPEL.
1) Instalar repositorio de EPEL, para plataforma CentOS (o RedHat) 5.x, en 64 bits.
# rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
2) Instalar RSSH:
# yum install rssh -y
3) Configuración de RSSH:
Modificamos el archivo /etc/rssh.conf
chrootpath = /sftp/chroot
user=usuario1:011:00001:/sftp/chroot/usuario1
user=usuario2:011:00001:/sftp/chroot/usuario2
Creamos el directorio chroot:
# mkdir -p /sftp/chroot
C) Usuarios y grupos
Creamos un grupo de usuarios:
# groupadd sftpusers
Creamos los usuarios:
# useradd -s /usr/bin/rssh -g sftpusers -d /sftp/chroot/usuario1 usuario1
# useradd -s /usr/bin/rssh -g sftpusers -d /sftp/chroot/usuario2 usuario2
# passwd usuario1
# passwd usuario2
# usermod -d /usuario1 usuario1
# usermod -d /usuario2 usuario2
Al visualizar el archivo /etc/passwd se verá algo como:
...
usuario1:x:500:500::/usuario1:/usr/bin/rssh
usuario2:x:501:500::/usuario2:/usr/bin/rssh
D) Configuración de servidor SSH
Aquí, basta con editar el archivo /etc/ssh/sshd_config, y agregar/modificar lo siguiente:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
AllowGroups sftpusers
Match Group sftpusers
ChrootDirectory /sftp/chroot
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Reiniciar el servicio SSH:
# service sshd restart
E) Pruebas
Probando conexión por SFTP:
Referencias:
http://www.carrier-lost.org/blog/restricted-sftp-access-with-rssh-and-ssh-chroot
http://www.debian-administration.org/articles/590
http://binblog.info/2008/04/06/openssh-chrooted-sftp-eg-for-webhosting/
http://www.yolinux.com/TUTORIALS/SFTP-Server-Chroot-Configuration.html
2 Comentarios