Hace unos dias necesite crear unos accesos via ftp seguro al ftp de la compañia para la cual trabajo. El requerimiento era tambien enjaular al usuario dentro de ese mismo contexto sftp (actualmente trabajamos con vsftp que SI ofrece chroot, pero solo para ftp).
El problema basico es que la version de OpenSSH que tiene CentOS instalada por defecto es un poco vieja y hay parametros que no funcionan.
Encontre un repo donde hay RPMs de OpenSSH actualizados para 32 y 64 bits.
En este caso tuve que instalar de 32 bits, para 64 bits http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/x86_64/
Para instalar el nuevo OpenSSH:
wget http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/i386/openssh-5.1p1-3.el5.hrb.i386.rpm
wget http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/i386/openssh-clients-5.1p1-3.el5.hrb.i386.rpm
wget http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/i386/openssh-server-5.1p1-3.el5.hrb.i386.rpm
una vez tomados los paquetes, desinstalar los rpm actuales
instalo version nueva que habia bajado con wget
yum remove -y openssh-server openssh
ahora creo un usuario para sftp con un grupo especial llamado ftponly
rpm -ivh openssh-5.1p1-3.el5.hrb.i386.rpm
rpm -ivh openssh-clients-5.1p1-3.el5.hrb.i386.rpm
rpm -ivh openssh-server-5.1p1-3.el5.hrb.i386.rpm
lo ultimo que falta es editar el archivo de configuracion de OpenSSH
groupadd ftponly
useradd ftpuser -g ftponly
vim /etc/ssh/sshd_configy.. reinicio el servicio
comentar la linea
#Subsystem sftp /usr/libexec/openssh/sftp-server
y reemplazar por...
Subsystem sftp internal-sftp
y agregar...
Match User ftpuser
ChrootDirectory /directoriosftp
AllowTCPForwarding no
X11Forwarding no
service sshd restart
tambien se podria usar Match Group en el caso de ser varios usuarios en la misma jaula chroot.
nota: con ssh NO se enjaluara el usuario, esto es solo valido para sftp
muy util, gracias groso.
ResponderEliminar