PowerScale OneFS: Configurando o SFTP e configurando o chroot
Summary: Este documento descreve como permitir o acesso ao cluster do PowerScale por meio do protocolo de transferência segura de arquivos (SFTP).
Instructions
Este documento descreve como permitir o acesso ao cluster do PowerScale por SFTP. Há algumas limitações e considerações que devem ser consideradas ao iniciar esse processo.
- Os usuários/grupos que precisam de acesso ao SFTP devem ter o
ISI_PRIV_LOGIN_SSHprivilégio associado ao usuário. - O acesso SSH e SFTP só funciona na zona System.
- Nem todas as opções de configuração ssh estão disponíveis; O PowerScale é compatível com declarações de correspondência e subsistema na
isi ssh modifyConjunto de comandos.
Fora desses fatores, o PowerScale opera como qualquer outro servidor OpenSSH do FreeBSD. Verifique a versão do OpenSSH em um cluster usando o comando ssh -V.
Para obter orientações sobre como configurar funções e privilégios, consulte os guias de administração da CLI ou da Web para sua versão na seção "Funções e privilégios administrativos".
Verificando se um usuário/grupo tem ISI_PRIV_LOGIN_SSH
Verifique se o usuário em questão tem ISI_PRIV_LOGIN_SSH. Veja abaixo um exemplo com o usuário administrador padrão.
p930-1# isi auth mapping token admin | grep "LOGIN_SSH"
ISI_PRIV_LOGIN_SSH
Se não houver resultado, o usuário deverá ser atribuído a uma Função que inclua esse privilégio. Encontre mais detalhes sobre como fazer isso em nossos Guias de administração para sua versão relevante em "Funções e privilégios administrativos"
Acesso SFTP básico para usuários locais
Depois de verificar os privilégios corretos, os usuários devem ter acesso SFTP a partes do sistema de arquivos com base em seu token de mapeamento de usuário.
p930-1# sftp admin@localhost
(admin@localhost) Password:
Connected to localhost.
sftp> dir
sftp> cd ..
sftp> dir
admin ftp
Acesso básico a SFTP Chroot
Para limitar um usuário a um subconjunto específico do sistema de arquivos, use OpenSSH ChrootDirectory funcionalidade em uma declaração Match. Isso faz com que o client veja o caminho de log-in como / e faz com que eles não possam sair desse subconjunto do sistema de arquivos. ChrootDirectory tem, no entanto, rigorosos requisitos de permissão de diretório em todo o caminho para o ChrootDirectory que cada diretório no caminho tem permissões Posix de root:wheel drwxr-xr-x para obter mais detalhes sobre isso, consulte a página de manual de mantenedores do OpenSSH.
Esta é uma declaração de correspondência comum para implementação ChrootDirectory ao corresponder um grupo. As três primeiras linhas são necessárias para ChrootDirectory sem arquivos de suporte. A última linha limita a capacidade de um usuário de aproveitar os recursos do X11Forwarding no OpenSSH.
Match Group admin
ChrootDirectory /ifs/sftp
ForceCommand internal-sftp
X11Forwarding no
Veja abaixo um exemplo básico de preparação de um caminho para chroot quando qualquer usuário correspondente puder gravar no /ifs/sftp/home diretório. root:wheel Possui os diretórios /ifs e /ifs/sftp, com permissões definidas como 755 para ChrootDirectory Enquanto /ifs/sftp/home tem permissões de 777, permitindo acesso de gravação do usuário.
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: /
Configurando várias cordas de correspondência
É mais fácil gerenciar várias correspondências em um arquivo e depois passá-las para o nosso isi ssh a seguir. O uso desse processo garante sshd Valida o arquivo e aplica a alteração somente se ela for válida.
Veja abaixo exemplos de sucesso e fracasso.
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
Corresponder as considerações de string.
Ao configurar strings de correspondência, qualquer identificador de usuário ou grupo que o cluster esteja ciente pode ser usado em uma string "Match User" ou "Match Group". Portanto, a referência a grupos do Active Directory pode ser feita com RFC2307 por domain\user.
Se um usuário não estiver roteando para o caminho ou as configurações corretas em uma string de Match User, verifique se o usuário pode ser consultado no cluster com o comando isi auth mapping token <username> tomando o nome de usuário de sua string de correspondência.
Se um usuário não estiver roteando para o caminho ou as configurações corretas em uma string de grupo de correspondência, verifique se o usuário é membro do grupo em questão com o comando isi auth mapping token <username> | grep <groupname>.
Forneça um nome de usuário e use o nome do grupo em Corresponder string.
Veja abaixo um exemplo de um usuário que não está roteando corretamente para um caminho devido a um erro na declaração Match Group. User stateroot não está funcionando corretamente enquanto o usuário prodroot ou seja, corrija o erro no nome do grupo usado na instrução Match Group para corrigir isso.
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
Configurações legadas
Antes do OneFS 8.2, essa mesma funcionalidade podia ser executada, mas o isi ssh O comando ainda não existia. Em vez de usar isi ssh settings modify --match="" Editar o arquivo /etc/mcp/templates/sshd_config com as mesmas cordas de correspondência que as etapas acima usariam. Adicione-os ao final de /etc/mcp/templates/sshd_config.
As instruções fornecidas devem funcionar para versões do OneFS anteriores à 8.2, mas quaisquer ajustes de configuração feitos dessa maneira serão removidos após o upgrade para uma versão do OneFS com suporte à Interface de Programação de Aplicativos (API). Os usuários que usam acesso SFTP ainda exigem o ISI_PRIV_LOGIN_SSH Privilégio.