SFTP Server com SSH, Chroot e Rsyslog

Este artigo visa abordar de forma abrangente, a criação de um servidor SFTP, usando o serviço SSH e Chroot. Além disso, mostrarei também como criar os registros em log de cada operação nos diretórios dos usuários através do Rsyslog.

[ Hits: 10.007 ]

Por: Luiz Paulo Cardia em 22/09/2016


Restart do serviços e testes



Passo 6 - Reiniciar os serviços SSH e Rsyslog

Após realizar todo o procedimento acima, devemos reiniciar os serviços de SSH e Rsyslog para ativar o serviço de SFTP e ativar o registro de log:

# systemctl restart sshd
# systemctl restart rsyslog

Passo 7 - Testar os acesso SFTP e SSH

Para testar os acessos, podemos usar qualquer programa cliente de SFTP (ex.: WinSCP) ou diretamente no terminal, através da linha de comando:

# sftp <loginsftp>@<ipdoservidor>
<loginsftp>@<ipdoservidor>'s password: <senhadologin>
Connected to <ipdoservidor>.
sftp> ls
dev in out
sftp>


Obs. 1: utilize os comandos cd para tentar sair do diretório raiz e touch para testar a criação de arquivos no próprio diretório, ou em outro.

Podemos também testar o acesso via SSH para validarmos se o usuário pode, ou não, fazer logon no sistema:

# ssh <loginsftp>@<ipdoservidor>
<loginsftp>@<ipdoservidor>'s password: <senhadologin>
Could not chdir to home directory /home/<loginsftp>: No such file or directory
This service allows sftp connections only.
Connection to <ipdoservidor> closed.


O exemplo anterior mostra o acesso SSH negado, portanto, o usuário só poderá acessar o servidor via SFTP.

Recomendações

Caso o serviço fique hospedado na nuvem, ou numa DMZ, recomendo criar um usuário simples e remover o acesso SSH do root. Desta forma, teremos um aumento no nível de segurança, uma vez que será preciso fazer o acesso SSH com usuário simples primeiro para depois logar com root usando o "su".

Crie um usuário novo:

# adduser <login>
# passwd <login>

Edite o arquivo de configuração SSH:

# vim /etc/ssh/sshd_config

Altere a seguinte linha:

De:

PermitRootLogin yes

Para:

PermitRootLogin no

Por precaução, antes de fechar o acesso SSH atual, crie primeiro uma nova conexão em paralelo e teste o acesso com o root e depois com o usuário novo. Em seguida, utilize o comando su para logar como root de dentro do usuário novo.

O correto nessa operação, é o acesso ser negado para o root para conexões SSH e permitido somente para o usuário comum.

Conclusão

Bom, fiz esse procedimento com base num determinado cenário, mas acredito que com as informações e dicas que passei, será possível adaptar para atender um cenário diferente, ou vai até mesmo ajuda-lo a criar um procedimento melhor.

Caso haja alguma dúvida ou questionamento, estou a disposição para ajudar - tanto aqui quanto no meu blog.

Obrigado,
Luiz Paulo Cardia

Página anterior    

Páginas do artigo
   1. Introdução
   2. Criação dos usuários e diretórios do SFTP
   3. Restart do serviços e testes
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Servidor Apache Profissional

Como hospedar um site no seu próprio micro

Implementação de VPN com OpenVPN

Rodando ASP em servidores web Linux

Newsbeuter Feed Reader - Instalação e configuração

  
Comentários
[1] Comentário enviado por MrBlackWolf em 22/09/2016 - 09:15h

Ótimo artigo. Muito bem explicado e útil.

[2] Comentário enviado por pedropaulotg em 29/09/2016 - 15:52h

Boa tarde, fiz o lab e estou com problema no rsyslog.

Sep 29 16:15:08 localhost rsyslogd: cannot create '/sftp/dev/log': Address already in use (Criei o "path" completo manualmente)
Sep 29 16:15:08 localhost rsyslogd: cannot create '/sftp/empresa1/dev/log': Permission denied (Criei até /dev)
Sep 29 16:15:08 localhost rsyslogd: cannot create '/sftp/empresa2/dev/log': Address already in use
Sep 29 16:15:08 localhost rsyslogd: imuxsock does not run because we could not aquire any socket
Sep 29 16:15:08 localhost rsyslogd-3000: activation of module imuxsock failed


[3] Comentário enviado por luiz_cardia em 30/09/2016 - 12:31h


[2] Comentário enviado por pedropaulotg em 29/09/2016 - 15:52h

Boa tarde, fiz o lab e estou com problema no rsyslog.

Sep 29 16:15:08 localhost rsyslogd: cannot create '/sftp/dev/log': Address already in use (Criei o "path" completo manualmente)
Sep 29 16:15:08 localhost rsyslogd: cannot create '/sftp/empresa1/dev/log': Permission denied (Criei até /dev)
Sep 29 16:15:08 localhost rsyslogd: cannot create '/sftp/empresa2/dev/log': Address already in use
Sep 29 16:15:08 localhost rsyslogd: imuxsock does not run because we could not aquire any socket
Sep 29 16:15:08 localhost rsyslogd-3000: activation of module imuxsock failed




Pedro,

Verifica se as permissões para os diretórios /dev/* estão como root:root.

Vou refazer o procedimento com o que está aqui no Viva o Linux, pois antes de aprovarem o artigo que eu fiz, eles modificaram todo o texto. Talvez tenham perdido alguma informação.

Na dúvida, pode comparar com o que está no meu blog (blog.lzinfo.com.br). Lá tem o texto original.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts