SFTP (SSH File Transfer Protocol)
Introdução
SFTP, ou SSH File Transfer Protocol, é um protocolo de rede seguro que fornece transferência de arquivos e funcionalidades de manipulação de arquivos sobre um fluxo de dados confiável, tipicamente SSH (Secure Shell).
Segurança do SFTP
SFTP oferece um nível significativamente maior de segurança em comparação com o FTP tradicional, pois toda a comunicação é criptografada.
Características Principais
- Criptografia de ponta a ponta
- Autenticação forte
- Integridade dos dados
- Compatibilidade com firewalls (usa apenas uma porta)
Comparação com FTP e FTPS
CARACTERÍSTICA | SFTP | FTP | FTPS |
---|---|---|---|
Porta Padrão | 22 | 21 | 990 |
Criptografia | Sim | Não | Sim |
Autenticação | Chave/Senha | Senha | Certificado/Senha |
Complexidade | Média | Baixa | Alta |
Firewall-friendly | Sim | Não | Parcial |
Configuração Básica (Servidor OpenSSH)
- Instalar OpenSSH Server (se ainda não estiver instalado):
sudo apt-get install openssh-server
- Editar o arquivo de configuração SSH (
/etc/ssh/sshd_config
):
Subsystem sftp internal-sftp
- Reiniciar o serviço SSH:
sudo systemctl restart sshd
Autenticação
Baseada em Senha
- Mais simples de configurar
- Menos segura que a autenticação por chave
Baseada em Chave
- Gerar par de chaves no cliente:
ssh-keygen -t rsa
- Copiar chave pública para o servidor:
ssh-copy-id usuario@servidor
Comandos SFTP Básicos
COMANDO | DESCRIÇÃO |
---|---|
cd | Muda o diretório no servidor remoto. |
lcd | Muda o diretório local (no computador do usuário). |
ls | Lista os arquivos e diretórios no servidor remoto. |
lls | Lista os arquivos e diretórios no diretório local. |
get | Baixa um arquivo do servidor remoto para o local. |
put | Envia um arquivo do local para o servidor remoto. |
mkdir | Cria um diretório no servidor remoto. |
rmdir | Remove um diretório no servidor remoto. |
rm | Remove um arquivo no servidor remoto. |
exit | Fecha a sessão SFTP. |
Casos de Uso
- Transferência Segura de Dados Sensíveis
- Automação de Backups
- Gerenciamento Remoto de Arquivos
- Integração com Sistemas de CI/CD
Fluxo de Conexão SFTP
sequenceDiagram participant Cliente participant Servidor Cliente->>Servidor: Inicia conexão SSH (porta 22) Servidor-->>Cliente: Aceita conexão Cliente->>Servidor: Autentica (senha/chave) Servidor-->>Cliente: Autenticação bem-sucedida Cliente->>Servidor: Inicia sessão SFTP Servidor-->>Cliente: Confirma sessão SFTP Cliente->>Servidor: Comandos SFTP (get, put, etc.) Servidor-->>Cliente: Executa comandos Cliente->>Servidor: Encerra sessão
Segurança Avançada
- Chroot: Limitar usuários a diretórios específicos
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
- Desabilitar Login Shell: Permitir apenas SFTP
Match User sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
- Filtros de IP: Restringir acesso por endereço IP
Monitoramento e Logs
- Logs padrão do SSH (geralmente em
/var/log/auth.log
) - Configurar logging adicional no
sshd_config
:
LogLevel VERBOSE
Otimização de Desempenho
- Ajustar tamanho do buffer de transmissão
- Usar compressão para conexões lentas
- Implementar multiplexação de conexões SSH
Troubleshooting Comum
- Problemas de Permissão: Verificar permissões de arquivos e diretórios
- Falhas de Autenticação: Checar configurações de chave/senha
- Conexão Lenta: Investigar problemas de rede ou configuração
Ferramentas Populares de Cliente SFTP
- OpenSSH sftp (linha de comando)
- FileZilla (GUI multiplataforma)
- WinSCP (GUI para Windows)
- Cyberduck (GUI para macOS e Windows)
Integração com Outros Sistemas
- Scripts de Shell: Automatizar transferências
- Bibliotecas de Programação: Implementar SFTP em aplicações (ex: Paramiko para Python)
- Sistemas de Backup: Usar SFTP como protocolo de transferência segura
Considerações Finais
SFTP oferece uma solução robusta e segura para transferência de arquivos, sendo uma excelente alternativa ao FTP tradicional. Sua integração com SSH proporciona uma camada adicional de segurança, tornando-o ideal para ambientes que exigem proteção de dados sensíveis.
Etiquetas
SFTP SSH SegurancaDeDados Criptografia