Isilon: OneFS 8.X y versiones posteriores: Cómo bloquear a los usuarios de FTP con jail-chroot en un directorio específico
Summary: En este artículo, se describe cómo usar el comando isi ftp para configurar el acceso a los directorios del clúster para los usuarios que se conectan mediante FTP.
Instructions
Se cubrirá lo siguiente:
- Revisión de la configuración actual de FTP
- Explicación de la configuración comúnmente ajustada
- Comportamientos predeterminados
- Enrutamiento de usuarios a un directorio específico
- Restricción de usuarios a un árbol de directorios
Revisión de la configuración actual de FTP
sa8004-1# isi ftp view Accept Timeout: 1m Allow Anon Access: No Allow Anon Upload: Yes Allow Dirlists: Yes Allow Downloads: Yes Allow Local Access: Yes Allow Writes: Yes Always Chdir Homedir: Yes Anon Chown Username: root Anon Password List: - Anon Root Path: /ifs/home/ftp Anon Umask: 0077 Ascii Mode: off Chroot Exception List: - Chroot Local Mode: none Connect Timeout: 1m Data Timeout: 5m Denied User List: - Dirlist Localtime: No Dirlist Names: hide File Create Perm: 0666 Limit Anon Passwords: No Local Root Path: - Local Umask: 0077 Server To Server: No Session Support: Yes Session Timeout: 5m User Config Dir: - FTP Service Enabled: Yes
Configuración que se ajusta comúnmente
Hay algunas configuraciones relacionadas con cómo se enruta a los usuarios en el inicio de sesión que a menudo se modifican:
- Always Chdir (cambiar directorio de trabajo) Homedir (directorio principal)
isi ftp modify --always-chdir-homedir=[true|false]- Define si Isilon permitirá o no que un usuario realice FTP directamente en un directorio que no sea el que inicia
- Lista de excepciones de Chroot
isi ftp modify --chroot-exception-list=["comma separated list of usernames"]- Define quién puede omitir
Chroot Local Mode
- Modo local Chroot
isi ftp modify --chroot-local-mode=['all','all-with-exceptions','none','none-with-exceptions']- Define si se debe o no
chrootse aplica y cómo lo aplicamos- Todos | El acceso de los usuarios se limita a:
Local Root Pathy los niños - Todo con excepciones | Todos los usuarios, excepto los de la
Chroot Exception Listse limitan aLocal Root Pathy los niños - Ninguno | El acceso de los usuarios no se limita a las
Local Root Path - Ninguno-con-excepciones | No hay usuarios, excepto los de la carpeta
Chroot Exception Listse limitan aLocal Root Pathy los niños
- Todos | El acceso de los usuarios se limita a:
- Ruta raíz local
isi ftp modify --local-root-path=['/ifs/ftp/path']- Esto define a dónde se enrutan los usuarios de FTP al iniciar sesión. Si se deja en blanco, se establece de manera predeterminada en el usuario homedir
Comportamientos predeterminados de FTP
Así es como se comportará el servicio FTP de manera predeterminada.
- Permitir acceso anónimo: No
- Siempre Chdir Homedir: Sí
- Modo Chroot Local: Ninguno
- Ruta raíz local: -
Esto significa que solo los usuarios que existen en un proveedor de autenticación podrán acceder al clúster por FTP. El sistema siempre iniciará una conexión enviándolos a sus directorios raíz y, a continuación, les permitirá navegar libremente (en función de la evaluación de permisos). Desde Local Root Path no está definido, los usuarios serán dirigidos a la ruta especificada en su perfil de usuario. Puedes comprobarlo con isi auth users $username | grep Home Dónde $username se reemplaza por el nombre de usuario que está comprobando. A continuación, se muestra un ejemplo con un usuario local:
sa8004-1# isi auth users view xavier | grep Home Home Directory: /ifs/home/xavier
En la configuración predeterminada, el usuario anterior se conectaría a Isilon y se enrutaría a /ifs/home/xavier (independientemente de la ruta configurada en la conexión) y, a continuación, podría cambiar los directorios a /ifs/home/ desde Chroot Local Mode está configurado en Ninguno.
Enrutamiento de usuarios a un directorio específico
De manera predeterminada, los usuarios que se conecten al servicio FTP de OneFS se enrutarán a su directorio principal. Sin embargo, los clientes a menudo prefieren que FTP funcione más como un Dropbox. En ese caso, todo lo que tienes que hacer es editar la configuración Local Root Path. Esto hará que los usuarios se dirijan a esa ruta en lugar de a su directorio principal. Si se establece el valor en <blanco> , se restablecerá en los directorios principales.
Estos son algunos ejemplos de esos comandos:
# Routing to /ifs/ftp sa8004-1# isi ftp modify --local-root-path=/ifs/ftp # Restoring to default sa8004-1# isi ftp modify --local-root-path=''
Restricción de usuarios a un árbol de directorios
De manera predeterminada, los usuarios que se conectan al servicio FTP de OneFS pueden ver todo el sistema de archivos y navegar por él según lo permitan sus permisos (aún verificamos el nombre de usuario, etc.), sin embargo, muchos clientes prefieren que sus usuarios permanezcan restringidos solo a la parte del sistema de archivos relevante para ellos. Esto se logra con la configuración Chroot Local Mode. Cuando se aplica ese ajuste a un usuario, este solo podrá navegar o ver los archivos debajo de su Root Path. De manera predeterminada, esta opción está establecida en ninguna, pero hay 4 aplicaciones diferentes de la configuración.
Ajuste esta configuración con isi ftp modify --chroot-local-mode=['all','all-with-exceptions','none','none-with-exceptions']
- Todos | El acceso de los usuarios se limita a:
Local Root Pathy los niños - Todo con excepciones | Todos los usuarios, excepto los de la
Chroot Exception Listse limitan aLocal Root Pathy los niños - Ninguno | El acceso de los usuarios no se limita a las
Local Root Path - Ninguno-con-excepciones | No hay usuarios, excepto los de la carpeta
Chroot Exception Listse limitan aLocal Root Pathy los niños
Agregue excepciones con isi ftp modify --chroot-exception-list=["comma separated list of usernames"]
Este es un ejemplo de la limitación de todos los usuarios menos uno a /ifs/ftp. Ese usuario seguirá iniciando su conexión, pero podrá ver el resto de /ifs/
# Adding user to exception list sa8004-1# isi ftp modify --chroot-exception-list=xavier # Routing all logins to `/ifs/ftp` sa8004-1# isi ftp modify --local-root-path=/ifs/ftp # Limiting everyone by `xavier` to the Local Root Path sa8004-1# isi ftp modify --chroot-local-mode=all-with-exceptions
Notas
Referencia de comandos:
- Guía de administración de la CLI de PowerScale OneFS
- En esta guía de administración no se define el comportamiento de todos los comandos