Servidor FTP
Os servidores de FTP mais populares no mundo “posix” são o VSFTP – Very Secure FTP e o ProFTP. Neste capítulo vamos ver como configurar os dois para utilizar a base OpenLDAP para autenticação.
Os dois utilizam usuários reais do sistema operacional para funcionar. Entretanto, como foi visto no capítulo anterior, podemos fazer todo o sistema operacional utilizar o OpenLDAP para validar usuários. Assim a validação será feita pelo PAM.
VSFTP
Instalando o “vsftp”
1. Para instalar o “vsftp” execute o comando abaixo:
aptitude install vsftpd
Configurando vsftp
1. Edite o arquivo “/etc/vsftpd.conf” e verifique as opções abaixo:
listen=YES anonymous_enable=YES local_enable=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES ftpd_banner=Somente Pessoas Autorizadas secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem
Essas linhas especificam o seguinte:
linha 1 – Faz com que o servidor rode como standalone;
linha 2 – Ativa ftp anônimo;
linha 3 – Permite que usuário local do sistema faça logon via ftp;
linha 4 – Ativa a possibilidade de haver mensagens customizadas por diretório;
linha 5 – Ativa o log de downloads e updloads;
linha 6 – Faz com que o servidor atue de modo ativo;
linha 7 – Define o banner que será mostrado durante o “logon” via ftp;
linha 8 – Diretório chroot a partir do qual o servidor irá rodar;
linha 9 – É o nome pelo qual o vsftp será chamado no PAM;
linha 10 – Especifica o local onde ficará o certificado de SSL.
2. Reinicie o “vsftp” com o comando:
/etc/init.d/vsftpd restart
Teste de autenticação
Em algumas distribuições Gnu/Linux pode surgir uma mensagem de erro, como a mostrada abaixo, no momento de logar:
500 OOPS: cap_set_proc Login failed. Remote system type is Login.
Caso esse erro aconteça basta carregar o módulo “capability” como seguinte comando:
modprobe capability
Se este for o seu caso, não esqueça de fazer com que esse módulo seja carregado automaticamente na inicialização do sistema.
Para testar a conexão basta estabelecer uma conexão ftp com o comando:
ftp ldap__.kyapanel.com.br
OBSERVAÇÃO: o usuário somente será capaz de logar no servidor FTP se o diretório “home” dele existir. Você pode criar esse diretório manualmente ou instalar o programa “Autodir” para fazer isso automaticamente.
PROFTP
Instalando o “proftp”
O “Proftp” é um servidor de FTP mais robusto e com mais opções de configuração do que o “vsftp”. Tanto que ele tem suas próprias configurações para suportar LDAP.
1. Para instalar o “proftp” e sua documentação execute o comando abaixo:
aptitude install proftpd-ldap proftpd-doc
Na primeira tela selecione “standalone”
Configurando o “proftpd”
A configuração do “proftpd” deve ser feita em dois lugares: no PAM e no próprio arquivo de configuração do servidor.
1. Edite o arquivo “/etc/pam.d/proftpd” e descomente a linha 9:
#%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed @include common-auth # This is disabled because anonymous logins will fail otherwise, # unless you give the 'ftp' user a valid shell, or /bin/false and add # /bin/false to /etc/shells. auth required pam_shells.so @include common-account @include common-session
Esse arquivo de configuração do “proftpd” via PAM é bastante similar ao do vsftp. A diferença é que nesse arquivo a linha 9 vem comentada. Essa linha está especificando que para um usuário conseguir se logar no ftp ele deve possuir uma shell válida e, que se ativarmos essa configuração o login anônimo será desativado. Para ativá-lo, devemos incluir a shell /bin/false em /etc/shells, para que ela seja considerada como sendo uma shell válida.
Diferentemente do “vsftp”, o “proftp” precisa de configurações específicas para operar com LDAP.
2. Edite o arquivo de configuração do “proftp”: /etc/proftpd/proftpd.conf. Abaixo relacionamos algumas sugestões de configuração:
UseIPv6 off ServerName "FTP do curso de OpenLDAP" ServerType standalone DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ DefaultRoot ~ # Port 21 is the standard FTP port. Port 21
As linhas alteradas foram:
linha 1 – Desativa o uso de Ipv6;
linha 3 – Mudança no banner apresentado durante o login via ftp;
linha 21 – Define que o diretório padrão, quando um usuário se logar, é o seu diretório “home”.
3. Para que o “proftpd” possa utilizar a base LDAP é necessário adionar as linhas abaixo no arquivo de configuração do servidor, ou seja, no “/etc/proftpd/proftpd.conf”:
LDAPServer ldap__.kyapanel.com.br LDAPDNInfo cn=admin,dc=kyapanel,dc=com,dc=br senha LDAPDoAuth on "ou=Usuarios,dc=kyapanel,dc=com,dc=br" LDAPUseTLS on
Explicando
linha 1 – Define o “host” do servidor LDAP que será utilizado
linha 2 – Define o DN do usuário “admin” e sua senha
linha 3 – Define o “galho” onde a pesquisa será feita
linha 4 – Ativa o uso de TLS
4. Reinicie o “proftpd” com o seguinte comando:
/etc/init.d/proftpd restart
Teste de autenticação
Para testar a conexão basta estabelecer uma conexão ftp com o comando:
ftp ldap__.kyapanel.com.br
OBSERVAÇÃO: o usuário somente será capaz de logar no servidor FTP se o diretório “home” dele existir. Você pode criar esse diretório manualmente.
Licença
Copyright 2007 Anahuac de Paula Gil e Francisco Kem Iti Saito
Permite-se distribuição, publicação e cópia literal da íntegra deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright, a URL oficial do documento e esta nota de permissão.
Permite-se também distribuição, publicação e cópia literal de seções individuais deste documento, sem pagamento de royalties, desde que sejam preservadas a nota de copyright e a nota de permissão acima, e que a URL oficial do documento seja preservada ou substituída pela URL oficial da seção individual.