Gestión de acceso mediante shell seguro en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Cómo crear un directorio aislado para archivos sftp

Este procedimiento configura un directorio sftponly creado específicamente para transferencias sftp. Los usuarios no pueden ver los archivos o directorios fuera del directorio de transferencia.

Antes de empezar

Debe asumir el rol root. Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .

  1. En el servidor Shell seguro cree el directorio aislado como un entorno chroot.
    # groupadd sftp
    # useradd -m -G sftp -s /bin/false sftponly
    # chown root:root /export/home/sftponly
    # mkdir /export/home/sftponly/WWW
    # chown sftponly:staff /export/home/sftponly/WWW

    En esta configuración, /export/home/sftonly es el directorio chroot al que sólo tiene acceso la cuenta root. El usuario tiene permiso de escritura en el subdirectorio sftponly/WWW.

  2. Todavía en el servidor, configure un bloque de coincidencia para el grupo sftp.

    En el archivo /etc/ssh/sshd_config, busque la entrada sftp subsystem y modifique el archivo de la siguiente forma:

    # pfedit /etc/ssh/sshd_config
    ...
    # sftp subsystem
    #Subsystem       sftp    /usr/lib/ssh/sftp-server
    Subsystem       sftp    internal-sftp
    ...
    ## Match Group for Subsystem
    ## At end of file, to follow all global options
    Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

      Puede usar las siguientes variables para especificar la ruta chroot:

    • %h: especifica el directorio raíz.

    • %u: especifica el nombre de usuario del usuario autenticado.

    • %%: omite el signo %.

  3. En el cliente, compruebe que la configuración funcione correctamente.

    Los archivos en el entorno chroot pueden ser diferentes.

    root@client:~# ssh sftponly@server
    This service allows sftp connections only.
    Connection to server closed. No shell access, sftp is enforced.
    root@client:~# sftp sftponly@server
    sftp> pwd sftp access granted
    Remote working directory: /chroot directory looks like root directory
    sftp> ls
    WWW             local.cshrc     local.login     local.profile
    sftp> get local.cshrc
    Fetching /local.cshrc to local.cshrc
    /local.cshrc    100%  166     0.2KB/s   00:00user can read contents
    sftp> put /etc/motd
    Uploading /etc/motd to /motd
    Couldn't get handle: Permission denieduser cannot write to / directory
    sftp> cd WWW
    sftp> put /etc/motd
    Uploading /etc/motd to /WWW/motd
    /etc/motd     100%  118     0.1KB/s   00:00user can write to WWW directory
    sftp> ls -l
    -rw-r--r--    1 101  10    118 Jul 20 09:07 motdsuccessful transfer
    sftp>