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: 8.834 ]

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

Varnish: Uma camada de velocidade

Squid passo a passo no Debian para iniciantes

Configuração básica de rede + proxy Linux

Integrando Apache 2 com Tomcat 5

Compartilhar uma conexão via rádio na rede interna

  
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