PowerScale OneFS: Configuración de SFTP y configuración de chroot
Summary: En este documento, se describe cómo permitir el acceso al clúster PowerScale a través del protocolo seguro de transferencia de archivos (SFTP).
Instructions
En este documento, se describe cómo permitir el acceso al clúster de PowerScale a través de SFTP. Existen algunas limitaciones y consideraciones que se deben tener en cuenta al comenzar este proceso.
- Los usuarios/grupos que necesitan acceso SFTP deben tener el
ISI_PRIV_LOGIN_SSHprivilegios asociados a su usuario. - El acceso SSH y SFTP solo funciona dentro de la zona System.
- No todas las opciones de configuración de ssh están disponibles; PowerScale admite las declaraciones de coincidencia y subsistema a través de la
isi ssh modifyconjunto de comandos.
Fuera de estos factores, PowerScale funciona como cualquier otro servidor OpenSSH FreeBSD. Compruebe la versión de OpenSSH en un clúster mediante el comando ssh -V.
Para obtener instrucciones sobre la configuración de funciones y privilegios, consulte la CLI o las guías de administración web de su versión en la sección "Funciones y privilegios administrativos".
Comprobación de si un usuario o grupo tiene ISI_PRIV_LOGIN_SSH
Verifique que el usuario en cuestión tenga ISI_PRIV_LOGIN_SSH. A continuación, se muestra un ejemplo con el usuario administrador predeterminado.
p930-1# isi auth mapping token admin | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
Si no hay ningún resultado, se debe asignar al usuario una función que incluya ese privilegio. Encontrará más detalles sobre cómo hacerlo en nuestras guías de administración para la versión correspondiente en "Funciones y privilegios administrativos"
Acceso básico a SFTP para usuarios locales
Después de verificar los privilegios correctos, los usuarios deben tener acceso SFTP a partes del sistema de archivos en función de su token de mapeo de usuarios.
p930-1# sftp admin@localhost
(admin@localhost) Password:
Connected to localhost.
sftp> dir
sftp> cd ..
sftp> dir
admin ftp
Acceso básico a SFTP Chroot
Para limitar un usuario a un subconjunto específico del sistema de archivos, utilice el comando ChrootDirectory dentro de una instrucción Match. Esto hace que el cliente vea su ruta de inicio de sesión como / y hace que no puedan salir de ese subconjunto del sistema de archivos. ChrootDirectory sin embargo, tiene requisitos estrictos de permisos de directorio en toda la ruta a la ChrootDirectory que cada directorio de la ruta tenga permisos de Posix de root:wheel drwxr-xr-x Para obtener más detalles sobre esto, consulte la página del manual de los mantenedores de OpenSSH.
Esta es una declaración de coincidencia común para la implementación ChrootDirectory mientras coincide con un grupo. Las tres primeras líneas son necesarias para ChrootDirectory sin archivos de soporte. La última línea limita la capacidad de un usuario para aprovechar las características de X11Forwarding dentro de OpenSSH.
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp
X11Forwarding no
A continuación se muestra un ejemplo básico de preparación de una ruta para chroot cuando cualquier usuario coincidente puede escribir en el archivo /ifs/sftp/home directorio. root:wheel Posee los directorios /ifs y /ifs/sftp, con permisos configurados en 755 para ChrootDirectory mientras que /ifs/sftp/home Tiene permisos de 777, lo que permite el acceso de escritura del usuario.
p930-1# isi auth settings acls modify --calcmode-group=group_only --calcmode-owner=owner_only
p930-1# mkdir -p /ifs/sftp/home
p930-1# chmod 755 /ifs/
p930-1# chmod 755 /ifs/sftp
p930-1# chmod 777 /ifs/sftp/home
p930-1# isi ssh settings modify --match="Match Group admin
dquote> ChrootDirectory /ifs/sftp
dquote> ForceCommand internal-sftp"
p930-1# sftp admin@localhost
(admin@localhost) Password:
Connected to localhost.
sftp> ls
home
sftp> pwd
Remote working directory: /
Configuración de varias cadenas de coincidencia
Es más fácil administrar múltiples coincidencias en un archivo y luego pasarlas a nuestro isi ssh . El uso de este proceso garantiza lo siguiente: sshd Valida el archivo y solo aplica el cambio si es válido.
A continuación, se muestran ejemplos de éxito y fracaso.
p930-1# cat /ifs/sshMatches
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp
X11Forwarding no
Match All
X11Forwarding no
p930-1# sshd -t -f /ifs/sshMatches && isi ssh settings modify --match="$(cat /ifs/sshMatches)"
p930-1# sshd -t -f /ifs/sshMatchBad && isi ssh settings modify --match="$(cat /ifs/sshMatchBad)"
Missing Match criteria for Allk
/ifs/sshMatchBad line 6: Bad Match condition
Consideraciones de la cadena de coincidencia.
Cuando se configuran cadenas de coincidencia, cualquier identificador de usuario o grupo que el clúster conozca se puede utilizar en una cadena "Match User" o "Match Group". Por lo tanto, hacer referencia a grupos de Active Directory se puede hacer con RFC2307 mediante domain\user.
Si un usuario no está realizando el enrutamiento a la ruta o los ajustes correctos en una cadena de coincidencia de usuario, verifique que el usuario se pueda buscar en el clúster con el comando isi auth mapping token <username> tomando el nombre de usuario de su cadena de coincidencia.
Si un usuario no está realizando el enrutamiento a la ruta o la configuración correctas en una cadena de grupo de coincidencias, verifique que el usuario sea miembro del grupo en cuestión con el comando isi auth mapping token <username> | grep <groupname>.
Proporcione un nombre de usuario y tome el nombre del grupo de la cadena de coincidencia.
A continuación, se muestra un ejemplo de un usuario que no está enrutando correctamente a una ruta debido a un error en la instrucción Match Group. Usuario stateroot no funciona correctamente mientras el usuario prodroot es decir, corrija el error en el nombre del grupo utilizado en la instrucción Match Group para solucionar esto.
p930-1# isi auth mapping token stageroot | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
p930-1# isi auth mapping token prodroot | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
p930-1# cat /ifs/sshMatches
Match Group Stage-Root-SFTP
ChrootDirectory /ifs/home/Stage-Root
X11Forwarding no
ForceCommand internal-sftp
Match Group Prod-Root
ChrootDirectory /ifs/home/Prod-Root
X11Forwarding no
ForceCommand internal-sftp
p930-1# isi auth mapping token stageroot | grep "Stage-Root-SFTP"
p930-1# isi auth mapping token prodroot | grep "Prod-Root"
Name: Prod-Root
p930-1# isi auth mapping token stageroot | grep "Stage-Root"
Name: Stage-Root
Configuraciones heredadas
Antes de OneFS 8.2, se podía lograr esta misma funcionalidad, pero el isi ssh El comando aún no existía. En lugar de usar isi ssh settings modify --match="" Editar el archivo /etc/mcp/templates/sshd_config con las mismas cadenas de coincidencia que usarían los pasos anteriores. Añádelos al final de /etc/mcp/templates/sshd_config.
Las instrucciones proporcionadas deberían funcionar para las versiones de OneFS anteriores a OneFS 8.2, pero los ajustes de configuración realizados de esta manera se eliminarán después de actualizar a una versión de OneFS compatible con la interfaz de programación de aplicaciones (API). Los usuarios que utilizan el acceso SFTP aún necesitan el ISI_PRIV_LOGIN_SSH privilegio.