Servidor Debian - SFTP

 #Instalar SFTP

#Instalar Open SSL


sudo apt install vsftpd

sudo apt install openssl


# Criar diretório para o FTP


sudo mkdir -p /var/arquivos

sudo chown root:root /var/arquivos

sudo chmod 755 /var/arquivos


# Criar diretório para o usuário FTP


sudo mkdir -p manuel


#Como vamos utilizar uma pasta diferente da home do usuário para o SFTP, usamos esse comando. Caso for usar a home, não precisa rodar esse comando


sudo usermod -d /var/arquivos manuel



# Gerar certificado SSL/TLS autoassinado

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem



# Ajustar permissões para o certificado

sudo chmod 600 /etc/ssl/private/vsftpd.pem




# Fazendo backup do vsftpd.conf original

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak


# Configurar vsftpd para FTPS


listen=YES

listen_port=22


#Todas essas linhas vão no final do arquivo

ssl_enable=YES

rsa_cert_file=/etc/ssl/private/vsftpd.pem

rsa_private_key_file=/etc/ssl/private/vsftpd.pem

ssl_tlsv1=YES

ssl_sslv2=NO

ssl_sslv3=NO

require_ssl_reuse=NO

ssl_ciphers=HIGH

local_enable=YES

write_enable=YES

chroot_local_user=YES

pasv_enable=YES

pasv_min_port=40000

pasv_max_port=50000

userlist_enable=YES

userlist_file=/etc/vsftpd.userlist

userlist_deny=NO



# Criar e adicionar o usuário FTP

sudo useradd -m -d /home/manuel -s /usr/sbin/nologin manuel

sudo passwd manuel


# Adicionar o usuário ao arquivo de lista de usuários permitidos no FTP. Basta escrever o nome do usuário. Um por linha.

/etc/vsftpd.userlist


# Configurar firewall

sudo ufw allow 21/tcp

sudo ufw allow 40000:50000/tcp

sudo ufw enable


# Reiniciar o serviço vsftpd

sudo systemctl restart vsftpd

sudo systemctl enable vsftpd




Prontinho!



No Windows você pode acessar através do Filezilla!



Sobre o FTPS:

FTPS precisa proteger também a conexão de dados (não só a de comando).

Em modo ativo, a proteção é muito complicada.

Em modo passivo, é fácil proteger tudo com TLS.

Por isso praticamente todos os clientes e servidores FTPS usam modo passivo.



Quando falamos de FTP ou FTPS, existem dois modos principais de conexão:

Modo ativo (active mode)

Modo passivo (passive mode)


Como funciona o modo ativo:

O cliente (tipo FileZilla) conecta no servidor pela porta 21 para comandos (login, listar arquivos, etc.).


Depois, o servidor tenta abrir uma nova conexão de volta para o cliente, usando uma porta aleatória para enviar os dados (arquivos, listagens).


Problema:

Se o cliente está atrás de NAT/roteador (como quase todo mundo na internet doméstica), o servidor não consegue abrir essa nova conexão, porque o roteador bloqueia conexões vindas de fora. Resultado: falha para listar arquivos ou transferir.


Como funciona o modo passivo (que é o que o FTPS geralmente usa):

O cliente conecta no servidor pela porta 21 (comando).

Quando precisa transferir arquivos ou listar uma pasta, o cliente é quem inicia uma nova conexão para o servidor em uma porta que o servidor informa.

Ou seja: o servidor nunca precisa abrir conexão de volta. Só recebe conexões.

É por isso que liberamos as portas 40000-50000 no servidor: para o servidor poder "esperar" essas conexões passivas.


Mais vistos:

Utilitários

Disco 100% no Windows 10