Saltar al contenido
TURNKEYGNU / LINUX
AplicacionesDocumentaciónBlogCapturas de pantallaGitHubTurnKey Hub
文Español
EnglishEspañol中文日本語PortuguêsDeutsch
Home/Cómo crear un usuario SFTP encarcelado (causa de raíz)

Documentación

Cómo crear un usuario SFTP encarcelado (causa de raíz)

Nota importante para los usuarios de AWS Marketplace:

Si no ha habilitado la cuenta de raíz en su servidor Marketplace, entonces necesitará ejecutar los comandos siguientes con sudo. La forma más fácil de hacer que está dentro de una cáscara de sudo y salida cuando se haya terminado. Por ejemplo, comience con el siguiente comando:

sudo su

Y cuando termine:

exit

Aquí vamos...

Todo TurnKey appliances viene con SFTP preconfigurado y habilitado. Sin embargo, por defecto todos los usuarios tienen acceso a todo el sistema de archivos. Mientras no le importe leer archivos, que no sea un problema ya que por defecto los nuevos usuarios no privilegiados no tienen acceso a escribir en cualquier lugar excepto su directorio de inicio (generalmente /home/USERNAME), más donde les dé acceso explícitamente a escribir. Adicionalmente, como SFTP es proporcionado por SSH, por defecto también pueden conectarse a una concha SSH. Lo que pueden hacer será otra vez limitado, pero esto todavía no es deseable.

Así que en un escenario donde sólo desea que los usuarios de SFTP se inicien a través de SFTP (y no SSH) y desea que se bloqueen en su propio directorio (es decir,. conocido como una "caja de raíz") entonces usted puede configurar SSH/SFTP para hacer eso.

A continuación he dado los comandos requeridos. Están en forma de script así que pueden copiarse/pasted a la línea de comandos. Por favor note, he tratado de hacer los comandos idempotent (es decir, No romperá las cosas si las ejecutas varias veces) pero no lo he probado ampliamente. Así que si reimprimes partes de ella, hay una posibilidad de que tengas resultados inesperados. Los comandos relacionados con el usuario pueden ser repetidos para un nuevo usuario (cambiando el valor de NEW_USER), pero añadiendo el grupo sftp_users y el config SSH, sólo debe hacerse una vez. Si necesita ajustar la configuración de configuración de SSH, le recomiendo que edite el archivo de configuración manualmente.

Corre una vez

Crear el grupo requerido:

groupadd sftp_users

Correr una vez por nuevo usuario

Añadir un nuevo usuario. Estoy usando el nombre de "newuser" aquí pero puedes usar cualquier nombre que quieras, aunque te sugiero que uses sólo caracteres de minúsculas sin espacios ni caracteres especiales. Si desea agregar usuarios adicionales, cambie el valor de "NEW_USER" (en la primera línea a continuación):

NEW_USER="newuser"
useradd -G sftp_users -s /sbin/nologin $NEW_USER
passwd $NEW_USER

Una vez que haya establecido una contraseña para el nuevo usuario y lo haya confirmado, después complete la creación de la nueva cuenta de usuario:

mkdir -p /home/$NEW_USER/files
chown root:root /home/$NEW_USER
chown $NEW_USER:$NEW_USER /home/$NEW_USER/files
chmod 700 /home/$NEW_USER/files
usermod -d /files $NEW_USER

¡Corre sólo una vez!

A continuación, necesitamos reconfigurar SSH/SFTP. Para ello necesitamos editar el archivo de configuración SSH (/etc/ssh/sshd_config). Para hacerlo fácil, lo he proporcionado en forma de script . Por favor, tenga en cuenta que esto sólo debe hacerse una vez.:

CONF=/etc/ssh/sshd_config
SEARCH="Subsystem sftp \/usr\/lib\/openssh\/sftp-server"
NEW_LINE="Subsystem sftp internal-sftp"

sed -i "/^$SEARCH/ s|^|#|" $CONF
sed -i "/$NEW_LINE/d" $CONF
sed -i "/$SEARCH/a\\$NEW_LINE" $CONF
if ! grep "Match Group sftp_users" $CONF >/dev/null; then
    cat >> $CONF <<EOF

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /home/%u
  ForceCommand internal-sftp
EOF
fi

Paso final está restarando SSH:

service ssh restart

Si necesita retocar más la configuración de SSH, por favor, edite el archivo de configuración manualmente utilizando un editor de texto como el nano.

nano /etc/ssh/sshd_config

El usuario automáticamente se desplazará hacia su hogar desgarrado (/home/user/files). Podrán acceder al directorio padre (/home/user) pero no tendrá nada más que el acceso leído allí (y no puede navegar por más alto).

Notas adicionales: Si desea permitir a su usuario de chrooted SFTP un poco más de flexibilidad (por ejemplo, permitir scp y/o rsync), entonces en lugar de darles una concha /sbin/nologin, instalar rssh (apt-get install rssh) y darles una concha /usr/bin/rssh.

TURNKEYGNU / LINUX

Controla tu infraestructura sin empezar desde cero.

Explorar TurnKey
Acerca deDocumentaciónPreguntas frecuentesBlogGitHub
Libre y de código abiertoSeguro de forma predeterminadaListo para desplegar