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.

openldap_basico/ftp.txt · Last modified: 2009/08/19 14:02 by anahuac
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki