Como posso criar um usuário SFTP no CentOS?

8

Gostaria de conceder acesso temporário ao SFTP a um funcionário de suporte. Como eu crio um usuário SFTP? E como posso deletá-lo quando o trabalho estiver pronto?

Além disso, como especifico um diretório inicial para eles? Posso impedi-los de acessar certos subdiretórios dentro de seu diretório pessoal?

Nós usamos o CentOS 6.3 e o fzSftp

    
por OC2PS 23.01.2014 / 14:44

1 resposta

14

Acesso não chroot

Se você não tiver uma configuração de servidor FTP e confiar no usuário que fará o login, para não ficar mexendo muito em seu servidor, eu estaria inclinado a fornecer uma conta para o SFTP no sistema. em vez disso.

O wiki do CentOS mantém um simples howto intitulado: Configuração simples do SFTP que faz com que seja bem fácil de usar.

Eu digo que é sem dor porque você literalmente só tem que fazer a conta e se certificar de que o firewall permite o tráfego SSH, certifique-se de que o serviço SSH está sendo executado, e você está praticamente pronto.

Se sshd ainda 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 terminar a conta:

$ sudo userdel -r userX

Acesso Chroot

Se, por outro lado, você quiser limitar esse usuário a um diretório designado, o servidor SFTP incluído com o SSH (openssh) fornece uma configuração que facilita a ativação. É um pouco mais trabalho, mas não muito. As etapas são abordadas aqui neste tutorial intitulado: Como configurar o SFTP do Chroot no Linux (Permitir somente SFTP, não SSH) .

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

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 chrooted onde esse usuário ficará bloqueado.

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

As permissões devem ser semelhantes às seguintes:

$ 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 gostam disso:

$ 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 sshd server:

$ 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 acabar a conta, elimine-a da mesma forma acima:

$ sudo userdel -r userX

... e não se esqueça de remover as alterações do arquivo de configuração que fizemos acima, então reinicie o sshd para torná-las ativas mais uma vez.

    
por 23.01.2014 / 15:17