Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais


 

Aprenda inglês em casa

Baixe gratuitamente as duas primeiras aulas

English for Reading and Listening

Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.

Saiba mais e faça sua inscrição

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa - LDAP

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Publicar em del.icio.us

Servidor ProFTPd seguro com TLS,SSL e MySQL

Colaboração: Tiago Cruz

Data de Publicação: 12 de Setembro de 2005

Servidor ProFTPd seguro com TLS/SSL e MySQL Por: Luis Nardella (luis.nardella AT gmail.com) e Tiago Cruz (tiagocruz AT linuxrapido.org) Última atualização: Sun Nov 9 22:03:12 2008

Introdução

Este documento sugere a instalação de um ambiente de FTP confiável através de criptografia usando chaves TLS/SSL, seguro por não utilizar usuários do sistema (e sim usuários virtuais), flexível com sua administração via web de fácil utilização, e escalável guardando as informações em um banco de dados baseado em SQL.

As instruções estão baseadas em um sistema rodando FreeBSD, mas podem (e devem) ser usadas em outros sabores do Unix/ Linux.

ProFTPd

A versão atual é a proftpd-1.3.0.r2, e a mesma deverá ser compilada com suporte a MySQL e SSL, para tanto:

  # cd /usr/ports/ftp/proftpd
  # make config
  # make install clean

Certifique-se de marcar as opções "MYSQL" e "OPENSSL"!

ProFTPd_Admin

A versão atual é a proftpd_admin_v0.7, e a mesma deverá ser baixada do site oficial e descompactada em um lugar acessível pelo apache e preferencialmente protegido por usuário e senha pelo htpasswd.

Ex: /var/www/htdocs/dominio.com/ftp/

Onde ftp é um link simbólico para proftpd_admin_v0.7, e a URL final fica http://dominio.com/ftp

Use o arquivo de configuração padrão dele para adaptar as suas necessidades:

  # cd /var/www/htdocs/dominio.com/ftp/
  # cp misc/sample_config/proftpd.conf /usr/local/etc/proftpd.conf

No proftpd.conf, informe o usuário, senha e etc para a conexão ao MySQL:

  SQLAuthTypes        Backend
  SQLAuthenticate     users
  SQLConnectInfo      proftpd_admin@localhost proftpd senha
  SQLUserInfo         usertable userid passwd uid gid homedir shell
  SQLGroupInfo        grouptable groupname gid members
  SQLUserWhereClause  "disabled=0 and (expiration >= NOW() OR expiration='0000-00-00 00:00:00')"

Consulte o manual de instalação do mesmo em caso de problemas.

MySQL

O ProFTPd_Admin trabalha em conjunto com o MySQL, que deverá estar instalado e rodando neste momento. Para criar a estrutura:

  # cd /var/www/htdocs/dominio.com/ftp/
  # mysql -u root -p < misc/database_structure/db_structure.sql

Teste se o ambiente está funcional antes de ir ao póximo passo.

Criação do Certificado TLS/SSL

Para criar o certificado que o usuário irá aceitar ao acessar o FTP, siga os passos descritos no modssl.org, que se resume em:

  • Criação do Certificado:

    Certifique-se de preencher o parâmetro "CommonName" do último comando com um endereço FQDN.

      $ openssl genrsa -des3 -out server.key 1024
      $ openssl rsa -in server.key -out server.key.unsecure
      $ openssl req -new -key server.key -out server.csr
    

  • Criação do Certificado de Autoridade (CA):

      $ openssl genrsa -des3 -out ca.key 1024
      $ openssl rsa -in ca.key -out ca.key.unsecure
      $ openssl req -new -x509 -days 365 -key ca.key -out ca.crt
    

Você precisará de um script chamado sign.sh que geralmente vem no pacote mod_ssl do apache. No debian, por exemplo o pacote chama-se libapache-mod-ssl e o arquivo fica em /usr/share/doc/libapache-mod-ssl/examples/sign.sh.

  $ ./sign.sh server.csr

Agora que você tem um CA assinado, você pode validar o certificado criado anteriormente:

  $ openssl x509 -noout -text -in server.crt

Configurando o ProFTPd para usar TLS/SSL

Adicione esse trecho ao seu proftpd.conf, usando o caminho correto dos arquivos .crt:

  <IfModule mod_tls.c>
     TLSEngine on
     TLSLog /var/log/proftpd/tls_log
     TLSProtocol SSLv23
  
     # Se ligado, aceita _apenas_ conexões seguras!
     TLSRequired on
  
     # Server's certificate
     TLSRSACertificateFile     /usr/local/etc/ssl/server.crt
     TLSRSACertificateKeyFile  /usr/local/etc/ssl/server.key.unsecure
  
     # CA the server trusts
     TLSCACertificateFile      /usr/local/etc/ssl/ca.crt
  
     # Authenticate clients that want to use FTP over TLS?
     TLSVerifyClient off
  </IfModule>

Estamos usando o protocolo SSLv23 no lugar do TLSv1 devido a problemas como "wrong version number" depois de de algumas atualizações com o portaudit e portupgrade.

Observações sobre Usuários Virtuais

Ao utilizar o proftpd_admin, você irá notar que os usuários e grupos criados não possuem entrada no /etc/passwd e no /etc/groups.

Por exemplo, meu grupo "users" possui o GID 10001, e meu usuário "teste" possui UID 10000. Então, dê pemissão no diretório assim:

  # mkdir -p /var/ftp/teste
  # chown 10000:10001 /var/ftp/teste

Se você desejar que via FTP os arquivos criados sejam acessíveis para usuários de outro grupo, use o "umask 002" no seu proftpd.conf.


This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Brazil License

Veja a relação completa dos artigos de Tiago Cruz

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.01/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (339 votos)

Recomende este site
Recomendar este artigo


Versão para impressão


Opinião dos Leitores

*Nome:
Email:
Me notifique sobre novos comentários nessa pagina
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

Mão na Massa LDAP - 1 Profissional por Máquina
Configure um serviço de Diretórios baseado no servidor OpenLDAP!
Dia 6 de Dezembro - São Paulo
Saiba mais

Biblioteca

Redes - Guia Prático
Por Carlos. E. Morimoto

Hardware - o Guia Definitivo
Por Carlos. E. Morimoto

Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto

Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto

VPN: Virtual Private Network
Por Lino Sarlo da Silva

MySQL - Guia do Programador
Por André Milani

Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Extreme Programming
Por Vinicius Manhaes Teles

Google Hacking
Por JOHNNY LONG

Elite da Tropa
Por Luis Eduardo Soares, Andre Batista e Rodrigo Pimentel

Harry Potter e as Relíquias da Morte
Por J.K. Rowling

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

PHP para Quem Conhece PHP
Por Juliano Niederauer

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson

Redes de Computadores
Por Andrew S. Tanembaum

Marley e Eu: a Vida e o Amor ao Lado do Pior Cão do Mundo
Por John Grogan

Deus, um delírio
Por Richard Dawkins

Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

1808
Por Laurentino Gomes

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson