SFTP Server Chroot Configuration | How to Setup Chroot SFTP in Linux
Índice:
- Criando um grupo SFTP
- Adicionando usuários ao grupo SFTP
- Configurando SSH
- Testando a configuração
- Conclusão
Neste tutorial, explicaremos como configurar um ambiente SFTP Chroot Jail que restringirá os usuários aos seus diretórios pessoais. Os usuários terão apenas acesso SFTP, o acesso SSH será desativado. Essas instruções devem funcionar em qualquer distribuição moderna do Linux, incluindo Ubuntu, CentOS, Debian e Fedora.
Criando um grupo SFTP
Em vez de configurar o servidor OpenSSH para cada usuário individualmente, criaremos um novo grupo e adicionaremos todos os nossos usuários com chroot a esse grupo.
Execute o seguinte comando
groupadd
para criar o grupo de usuários
sftponly
:
sudo groupadd sftponly
Você pode nomear o grupo como quiser.
Adicionando usuários ao grupo SFTP
O próximo passo é adicionar os usuários que você deseja restringir ao grupo
sftponly
.
Se essa é uma nova configuração e o usuário não existe, você pode criar uma nova conta de usuário digitando:
sudo useradd -g sftponly -s /bin/false -m -d /home/username username
- A opção
-g sftponlyadicionará o usuário ao grupo sftponly. A opção-s /bin/falsedefine o shell de login do usuário. Ao definir o shell de login como/bin/falseo usuário não poderá efetuar login no servidor via SSH. As opções-m -d /home/usernameinforma ao useradd para criar o diretório inicial do usuário.
Defina uma senha forte para o usuário recém-criado:
sudo passwd username
Caso contrário, se o usuário que você deseja restringir já existir, adicione-o ao grupo
sftponly
e altere o shell do usuário:
sudo usermod -G sftponly -s /bin/false username2
O diretório inicial do usuário deve pertencer à raiz e ter
755
permissões:
sudo chown root: /home/username
sudo chmod 755 /home/username
Como os diretórios pessoais dos usuários são de propriedade do usuário raiz, esses usuários não poderão criar arquivos e diretórios em seus diretórios pessoais. Se não houver diretórios na página inicial do usuário, você precisará criar novos diretórios aos quais o usuário terá acesso total. Por exemplo, você pode criar os seguintes diretórios:
sudo mkdir /home/username/{public_html, uploads}
sudo chmod 755 /home/username/{public_html, uploads}
sudo chown username:sftponly /home/username/{public_html, uploads}
Se um aplicativo Web estiver usando o diretório
public_html
do usuário como raiz do documento, essas alterações poderão levar a problemas de permissão. Por exemplo, se você estiver executando o WordPress, precisará criar um pool PHP que será executado como o usuário proprietário dos arquivos e adicionar o webs erver ao grupo
sftponly
.
Configurando SSH
O SFTP é um subsistema do SSH e suporta todos os mecanismos de autenticação SSH.
Abra o arquivo de configuração SSH
/etc/ssh/sshd_config
com seu editor de texto:
sudo nano /etc/ssh/sshd_config
Procure a linha que começa com o
Subsystem sftp
, geralmente no final do arquivo. Se a linha começar com um hash
#
remova o hash
#
e modifique-o para ter a seguinte aparência:
Subsystem sftp internal-sftp
No final do arquivo, o seguinte bloco de configurações:
Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
A diretiva
ChrootDirectory
especifica o caminho para o diretório chroot.
%h
significa o diretório inicial do usuário. Esse diretório deve ser de propriedade do usuário root e não pode ser gravado por nenhum outro usuário ou grupo.
Tenha muito cuidado ao modificar o arquivo de configuração SSH. A configuração incorreta pode causar falha no serviço SSH.
Quando terminar, salve o arquivo e reinicie o serviço SSH para aplicar as alterações:
sudo systemctl restart ssh
No CentOS e no Fedora, o serviço ssh é chamado
sshd
:
Testando a configuração
Agora que você configurou o chroot do SFTP, pode tentar efetuar login na máquina remota através do SFTP usando as credenciais do usuário chrootado. Na maioria dos casos, você usará um cliente SFTP da área de trabalho como o FileZilla, mas neste exemplo, usaremos o comando sftp.
Abra uma conexão SFTP usando o comando sftp, seguido pelo nome de usuário do servidor remoto e o endereço IP ou o nome de domínio do servidor:
sftp [email protected]
Você será solicitado a inserir a senha do usuário. Uma vez conectado, o servidor remoto exibirá uma mensagem de confirmação e o prompt
sftp>
:
[email protected]'s password: sftp>
Execute o comando
pwd
, conforme mostrado abaixo, e se tudo estiver funcionando conforme o esperado, o comando retornará
/
.
sftp> pwd Remote working directory: /
Você também pode listar os arquivos e diretórios remotos usando o comando
ls
e deverá ver os diretórios que criamos anteriormente:
Conclusão
Neste tutorial, você aprendeu como configurar um ambiente SFTP Chroot Jail no servidor Linux e restringir o acesso do usuário ao diretório inicial.
Por padrão, o SSH escuta na porta 22. Alterar a porta SSH padrão adiciona uma camada extra de segurança ao servidor, reduzindo o risco de ataques automatizados. Você também pode configurar uma autenticação baseada em chave SSH e conectar-se ao servidor sem inserir uma senha.
segurança ssh sftpEx-Executo da Alcatel Condenado à Cadeia por Suborno
Um ex-funcionário da Alcatel é condenado por suborno.
Ex-CEO da Qwest vai para a cadeia
A Suprema Corte negou o pedido de fiança de Joseph Nacchio
Use o aplicativo Configurar os PCs da escola para configurar PCs com Windows em Escolas Baixe o aplicativo Configurar computadores da escola na Windows Store e use-o para configurar rapidamente seus computadores Windows 10 para melhores opções de aprendizado para os alunos
Os computadores agora se tornaram parte integrante da educação nas escolas, e quase todas as boas escolas têm os sistemas de computador definidos para seus alunos. O único problema com a educação em informática na escola ocorre quando os alunos se distraem com vários aplicativos e recursos dos PCs.







