Como posso criar um usuário SFTP no CentOS?

8

Eu gostaria de conceder acesso temporário ao SFTP a um suporte. Como crio um usuário SFTP? E como posso excluí-lo quando o trabalho estiver concluído?

Além disso, como especifico um diretório inicial para eles? Posso impedir que eles acessem determinados subdiretórios no diretório inicial?

Usamos CentOS 6.3 e fzSftp

OC2PS
fonte
Depende da sua configuração, pois seu arquivo de configuração pode ajudar.
kiwy
Quais configurações específicas devo postar?
222 de OC2PS
a um de vocês FTP DEAMON
kiwy
Tem certeza de que deseja FTP ou SFTP? O motivo pelo qual pergunto é que você listou o fzsftp (filezilla sftp), que é o cliente que o Filezilla usa para conexões SFTP.
slm
Ah! Eu me conectei via FileZilla ao SFTP, portanto listado na lista fzsftp ... pensei que este era o meu servidor. SFTP seria bom, se você pode me ajudar com isso. Obrigado!
222 de OC2PS

Respostas:

14

Acesso não chroot

Se você não possui uma configuração de servidor FTP e confia no usuário que efetuará login, para não ficar mexendo muito no servidor, eu estaria inclinado a fornecer uma conta para SFTP no sistema.

O wiki do CentOS mantém um tutorial simples, intitulado: Configuração simples de SFTP, que torna esse problema bastante simples .

Eu digo que é fácil porque você literalmente só precisa criar a conta e garantir que o firewall permita o tráfego SSH, garantir que o serviço esteja sendo executado e que você está pronto.

Se sshdainda não estiver em execução:

$ /etc/init.d/sshd start

Para adicionar um usuário:

$ sudo useradd userX
$ sudo passwd userX
... set the password ...

Quando você terminar a conta:

$ sudo userdel -r userX

Acesso Chroot

Se, por outro lado, você deseja limitar esse usuário a um diretório designado, o servidor SFTP incluído no SSH (openssh) fornece uma configuração que facilita a ativação também. É um pouco mais trabalhoso, mas não muito. As etapas são abordadas aqui neste tutorial, intitulado: Como configurar o SFTP chroot no Linux (permitir apenas SFTP, não SSH) .

Faça essas alterações no seu /etc/ssh/sshd_configarquivo.

Subsystem       sftp    internal-sftp

## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config

Match Group sftpusers
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp

Agora você precisará criar a árvore de diretórios chroot onde o usuário ficará bloqueado.

$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}

As permissões devem ter a seguinte aparência:

$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing

Os diretórios de nível superior como este:

$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser

Não se esqueça de reiniciar o sshdservidor:

$ sudo service sshd restart

Agora crie a conta userX:

$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...

Você pode verificar se a conta foi criada corretamente:

$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin

Quando você terminar a conta, exclua-a da mesma maneira acima:

$ sudo userdel -r userX

... e não se esqueça de remover as alterações no arquivo de configuração que fizemos acima e reinicie sshdpara ativá -las novamente.

slm
fonte
Agradável! Como posso restringir o usuário a um diretório específico e impedir que ele acesse alguns subdiretórios dentro desse diretório?
222 de OC2PS
ligam o usuário dentro de sua pasta pessoal e adicionar um link simbólico dentro para os diretórios diferentes que você deseja permitir
kiwy
@ OC2PS - o exemplo acima mostra um método de fazer chroot para os usuários, você também pode fazer chroot para o diretório inicial deles. Geralmente, divido esses usuários em uma área designada, para /home/...que fique óbvio quando olho quem realmente é um usuário de um sistema. Embora eu execute um servidor SFTP real para o trabalho, minhas necessidades são um pouco diferentes.
slm
Quando eu faço sudo useradd -D userX, recebo Usage: useradd [opções] LOGIN
OC2PS
@ OC2PS tentar useradd userX. Desculpe, eu li mal a página de manual useradd.
slm