Servidor PROFTPD autenticado via SAMBA4 e segurança TLS

setembro 16, 2010 at 7:29 pm (Artigos, Instalação e Configuração, Samba4)

Introdução

O Proftpd é conhecido por ser um servidor de FTP seguro, de fácil configuração (baseada no modelo do Apache), bom desempenho e muitos recursos.

Ele permite a utilização de diversos módulos para autenticação dos usuários, LDAP, Radius, Mysql, Postgres, entre outros. Nesse artigo vamos falar sobre a autenticação LDAP com o Proftpd. Dentre as vantagens de se utilizar a autenticação LDAP com o Proftpd podemos destacar a utilização de uma base central de usuários que pode ser compartilhada por diversos servidores, sem a necessidade  de criação de usuários locais no sistema, os diretórios dos usuários podem ser criados automaticamente assim que eles conectam-se ao Proftpd. Neste artigo vamos demonstrar sua capacidade de integração com o SAMBA4 (Active Directory Livre) através do modulo mod_ldap.

Instalação

A instalação do Proftpd pode ser feita a partir dos pacotes da sua distribuição preferida ou através da compilação dos fontes.

Compilação

#./configure --prefix=/usr --sysconfdir=/etc/proftpd/ --localstatedir=/var/run --with-modules=mod_tls:mod_ldap
# make
# make install
-> Verificando os módulos instalados:
# proftpd -l
Compiled-in modules:
  mod_core.c
  mod_xfer.c
  mod_auth_unix.c
  mod_auth_file.c
  mod_auth.c
  mod_ls.c
  mod_log.c
  mod_site.c
  mod_delay.c
  mod_facts.c
  mod_ident.c
  mod_ratio.c
  mod_readme.c
  mod_tls.c
  mod_ldap.c
  mod_cap.c
* Com os parâmetros de compilação acima, a instalação do Proftpd vai habilitar o suporte a autenticação LDAP e segurança utilizando certificado TLS.

Debian

# apt-get install proftpd-ldap  openssl
* Durante a instalação será solicitado escolher o jeito que você quer que o proftp seja iniciado, inetd ou standalone (modo solitário). Escolha standalone (modo solitário).

Configurações

Segue abaixo as configurações que devem ser adicionais ao arquivo de configuração do Proftpd para funcionar a autenticação LDAP.

Gerando chave SSL para TLS

# mkdir /etc/proftpd/cert
# openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/cert /proftpd.cert.pem -keyout /etc/proftpd/cert/proftpd.key.pem

Arquivo: /etc/proftpd/proftpd.conf

######################################################################
#
#               Servidor PROFTP TUX LTDA
#
######################################################################

ServerName                      "ProFTPD TuX LTDA"
ServerType                      standalone
ServerAdmin                     suporte@tux.org
ServerIdent                     off
MultilineRFC2228                on
SyslogFacility                  AUTH
DefaultServer                   on
ShowSymlinks                    on
Port                            21
RootLogin                       off
UseIPv6                         off
AllowLogSymlinks                on
IdentLookups                    off
UseReverseDNS                   off
Umask                           077 022
MaxInstances                    30
MaxClientsPerHost               2 "Você já está com muitas conexões simultâneas."
AccessGrantMsg                  "Acesso anônimo aceito para %u."
User                            ftp
Group                           ftp
DirFakeUser                     on ftp
DirFakeGroup                    on ftp
DeferWelcome                    on
DisplayLogin                    welcome.msg
DisplayChdir                    .message
DefaultRoot                     /home/samba/%u/
DefaultChDir                    samba
AuthOrder                       mod_ldap.c
RequireValidShell               off
UseFtpUsers                     off
ListOptions                     "-l"
DenyFilter                      \*.*/
AllowOverwrite                  on
SystemLog                       /var/log/proftpd/proftpd.log
TransferLog                                   /var/log/proftpd/xferlog
# Especifica o modo de transferencia padrao (ascii ou binary).
DefaultTransferMode             binary
#Criando a Pasta do usuário no primeiro acesso e já fazendo a copia de skel default
CreateHome                      on 755 skel /home/samba/skel/

# Comunicação com Samba4
<IfModule mod_ldap.c>
        #Servidor
        LDAPServer                      localhost
        #Busca pelo atributo
        LDAPAttr                        uid SAMAccountname
        #Login de administrado
        LDAPDNInfo    cn=Administrator,cn=Users,dc=tux,dc=org SENHA
        #Autenticação
        LDAPAuthBinds                   on
        #Busca e tipos de busca
        LDAPDoAuth                      on "dc=tux,dc=org" (&(samaccountname=%v)(objectClass=top)(ObjectCategory=user)(objectclass=person))
        LDAPDoUIDLookups                on "dc=tux,dc=org"
        LDAPDoGIDLookups                on "dc=tux,dc=org"
        LDAPQueryTimeout                10
        #uid e guid do usuário e grupo FTP
        LDAPDefaultUID                  14
        LDAPDefaultGID                  50
        LDAPForceDefaultUID             on
        LDAPForceDefaultGID             on

</IfModule>

<Directory /*>
        AllowOverwrite                  on
</Directory>

#SSL+TLS
<IfModule mod_tls.c>

        TLSEngine                       on
        TLSLog                          /var/log/proftpd/tls.log
        TLSProtocol                     SSLv23
        TLSOptions                      NoCertRequest
        TLSRSACertificateFile           /etc/proftpd/cert/proftpd.cert.pem
        TLSRSACertificateKeyFile        /etc/proftpd/cert/proftpd.key.pem
        TLSVerifyClient                 off
#Para que fique obrigatório o uso de TLS altere para ON
        TLSRequired                     off
</IfModule>
######################################################################

Teste

Criando a pasta onde irão ficar os arquivos dos usuário, e também cirando o skel padrão, depois iniciando o Proftpd em modo debug:

#mkdir –p /home/samba
#mkdir –p /home/samba/skel
#echo “Servidor Autenticado via Samba4” > welcome.msg
#echo “Seje Bem Vindo” > .message
#ls –al
-rw-r--r-- 1 root root   15 2010-09-16 10:53 .message
-rw-r--r-- 1 root root   15 2010-09-16 10:51 .welcome.msg
#proftpd -nd12
192.168.11.1 - ProFTPD 1.3.3a (maint) (built Thu Aug 26 2010 12:18:41 BRT) standalone mode STARTUP
192.168.11.1 - ROOT PRIVS at pidfile.c:48
192.168.11.1 - RELINQUISH PRIVS at pidfile.c:50

Acessando de uma máquina pela primeira vez

#ftp localhost
Connected to localhost.
220-Seje Bem Vindo ao FTP TUX LTDA
220 127.0.0.1 FTP server ready
Name (localhost:root): administrator
331 Password required for administrator
Password:
230-Seje bem vindo
230 Acesso anônimo aceito para administrator.
Remote system type is UNIX.
ftp> ls -al
150 Opening BINARY mode data connection for file list
drwxr-xr-x   2 ftp      ftp          4096 Sep 16 13:57 .
drwxr-xr-x   2 ftp      ftp          4096 Sep 16 13:57 ..
-rw-r--r--   1 ftp      ftp            15 Sep 16 13:57 .message
-rw-r--r--   1 ftp      ftp            15 Sep 16 13:57 welcome.msg
* No momento do acesso já é criado a pasta e copiado os arquivos e exibido as mensagens que estão gravadas nele.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.