SFTP con Chroot

Daniel Eugenin M. -

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:

Captura_de_pantalla_2013-05-23_a_la_s__15.09.21.png

 

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:

 

Captura_de_pantalla_2013-05-23_a_la_s__15.21.15.png

 

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

  • 0
    Avatar
    Permanently deleted user

    Daniel, solo podemos efectuar trabajos en este servidor productivo despues de las 18:00, al actualizar nos sale lo siguiente:

    openssh = 4.3p2-35.el5 is needed by (installed) openssh-askpass-4.3p2-35.el5.x86_64

    actualizamos openssh-askpass también? no afectaría el servicio productivo?

     

    Saludos

  • 0
    Avatar
    Permanently deleted user

    Ok se realizó la actualización de openssh-askpass y funcinó!

Inicie sesión para dejar un comentario.
Tecnología de Zendesk