Restringindo acesso via SFTP

By | March 5, 2009

Restringir acesso de um usuário a seu diretório home usando o ProFTP já virou carne-de-vaca, então vou colocar um dica diferente aqui: Como manter seus usuários restritos usando SFTP. Atenção: Não estou falando de FTPS (FTP over SSL).

O primeiro requisito é ter um servidor OpenSSH pelo menos na versão 4.9p1. Tanto meu Ubuntu 8.10 quanto meu OpenSuSE 11.1 vieram com pacotes superiores a essa versão, mas infelizmente o Red Hat Enterprise 5.3 não.

No seu arquivo de configuração do ssh (normalmente /etc/ssh/sshd_config) edite a seguinte linha:

Subsystem       sftp    /usr/libexec/openssh/sftp-server

E substitua por:

Subsystem     sftp   internal-sftp

E também adicione as seguintes linhas no final do arquivo:

Match Group restrito
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

A primeira linha indica que se o usuário pertencer ao grupo “restrito” ele está sujeito às regras que vem a seguir e é logo na próxima linha que determinamos a restrição do usuário ao seu home directory indicado pelo “%h”

Agora basta configurar o usuário adequadamente. Reparem que esta parte é mandatória. Tentei configurar o servidor sem configurar o usuário sem sucesso:

Mar  5 09:08:10 server sshd[12760]: fatal: bad ownership or modes for chroot directory "/home/linuxman"

Então configure o usuário e seu diretório de acordo:

# usermod -G restrito linuxman
# usermod -s /bin/false linuxman
# chown root:root /home/linuxman
# chmod 0755 /home/linuxman

Pronto. Agora seus usuários estão restritos e seguros.

One thought on “Restringindo acesso via SFTP

  1. andreyev

    ops, eu prefiro usar ‘# usermod -s /usr/bin/passwd linuxman’, assim o linuxman pode trocar sua senha sempre que quiser 😀

Comments are closed.