Una forma adecuada de crear un SSH chroot en CentOS 7

Una forma adecuada de crear un SSH chroot en CentOS 7

Hay muchos tutoriales sobre cómo crear un SFTP chroot, pero me gustaría usar SSH, porque es mucho más rápido simplemente usar , y wgetque unzipusar FTP y phpMyAdmin. El método también debe ser limpio (sin magia manual ) y extensible, para poder agregar y actualizar paquetes fácilmente.mysqlmysqldumpldd

Respuesta1

Afortunadamente, pude encontrar una manera de hacerlo.

Paso 1: agrega un grupo para usuarios chrooteados

groupadd chrootusers

Paso 2: configurar SSH

nano /etc/ssh/sshd_config

Reemplazar

Subsystem     sftp    /usr/libexec/openssh/sftp-server

Con

Subsystem     sftp    internal-sftp

Pegar al final

Match Group chrootusers
  ChrootDirectory /home/%u

Correr

systemctl restart sshd
systemctl status sshd

Paso 3: agrega un usuario

Cambie petera su nombre de usuario deseado.

export NEW_USER_NAME=peter

useradd ${NEW_USER_NAME}
usermod -G chrootusers -d / ${NEW_USER_NAME}
passwd ${NEW_USER_NAME}

Paso 4: instale los paquetes y cree la estructura de directorios necesaria

yum --installroot=/home/${NEW_USER_NAME} --releasever=7 --nogpg --disablerepo='*' --enablerepo=base install centos-release openssh-clients wget vi nano zip unzip tar mariadb findutils iputils bind-utils rsync

Paso 5: montar procydev

echo "none /home/${NEW_USER_NAME}/proc proc defaults 0 0" >> /etc/fstab
echo "/dev /home/${NEW_USER_NAME}/dev none bind 0 0" >> /etc/fstab

Correr

mount -a

Paso 6: configurar los servidores DNS

echo "nameserver 8.8.8.8" >> /home/${NEW_USER_NAME}/etc/resolv.conf
echo "nameserver 8.8.4.4" >> /home/${NEW_USER_NAME}/etc/resolv.conf

Eso es todo.

¡Tenga en cuenta que $NEW_USER_NAMEestá vinculado a la sesión actual!

Comience desde el Paso 3 cuando agregue otro usuario.

Para instalar más paquetes más adelante, utilice el mismo comando que en el Paso 4.


Al iniciar sesión mediante SSH, recibirás mensajes como cannot find name for user ID x. Es seguro ignorarlos, pero si desea deshacerse de ellos, deberá duplicar el usuario en chroot:

export NEW_USER_ID=$(id -u ${NEW_USER_NAME})
export NEW_USER_GROUP_ID=$(id -g ${NEW_USER_NAME})

chroot /home/${NEW_USER_NAME} /bin/bash -c 'useradd -u ${NEW_USER_ID} ${NEW_USER_NAME}'
chroot /home/${NEW_USER_NAME} /bin/bash -c 'groupadd -g ${NEW_USER_GROUP_ID} chrootusers'

información relacionada