Você está na página 1de 10

Configurando o FTP em Modo Passivo

Jean Carlo Faustino <jean@rnp.br> Jacomo Dimmit Boca Piccolini <jacomo@cais.rnp.br> Rede Nacional de Ensino e Pesquisa (RNP) Resumo 1. Introduo 2. Configurao no servidor de FTP 2.1 O Arquivo ftpaccess 2.2 Dica de configurao 2.3 Reinicializao do daemon 3.Configurao no firewall 3.2. Regras para FTP em modo passivo 3.3. Regra adicional Referncias bibliogrficas Apndices A. Dicas sobre flags de compilao B. Dicas sobre os arquivos ftpaccess e ftpusers

Resumo
Este artigo pretende mostrar a implementao do protocolo FTP em modo passivo. O servidor utilizado o wu-ftpd, que um dos mais famosos servidores FTP. So ainda descritas as razes para a implementao, assim como o detalhamento do processo. O artigo ainda traz um apndice com as configuraes que envolvam aspectos de segurana em FTP. ^

1. Introduo
Configurar o servio de FTP em modo passivo (passive mode) permite, ao administrador do sistema, delimitar o nmero (range) de portas pelas quais se dar a transferncia dos dados. Isso representa um considervel incremento de segurana, no especificamente para o servio de FTP, mas para a mquina que prov este servio. Ao tratarmos deste assunto, estamos considerando um servidor de FTP annimo situado em uma rede que possui um firewall configurado para liberar o acesso apenas quelas portas que correspondam aos servios providos nesta rede. Antes de iniciarmos a discusso sobre o modo passivo, vejamos como funciona o servio de FTP em seu modo normal.

Figura 1 - O funcionamento do FTP em modo normal Conforme podemos visualizar na figura acima, em uma conexo FTP comum, o cliente indica, aleatoriamente, a porta em que deseja que os dados sejam transferidos. No exemplo da figura, esta porta a 5151. Assim, seguindo a numerao indicada na figura: quando o cliente acessa o servio de FTP (porta 21) de um servidor, ele indica para qual porta o servidor dever lhe enviar os dados (no exemplo, esta a porta 5151). Deste modo, quando o download/upload comear, o servidor enviar os dados (partindo da porta 20) para essa porta especificada pelo cliente. O problema desse modo de funcionamento do FTP que no possvel para o servidor saber o nmero da porta que o cliente solicitar para o envio dos dados, o que obriga o administrador a deixar todas as portas TCP abertas no firewall. Uma maneira de se contornar isso, abrir apenas as portas altas (maiores que 1024). Mas, mesmo assim, esse cenrio muito propcio a tentativas de ataques ou mesmo instalao de backdoors. Isto acarreta num trabalho extra na administrao da mquina: atualizaes de patches, correes de bugs, e configuraes de segurana no somente do servio que ele est provendo (no caso em questo, o FTP). Vejamos, agora, o funcionamento do FTP em modo passivo.

Figura 2 - O funcionamento do FTP em modo passivo Como podemos ver na Figura 2, agora o servidor que, no incio da conexo, informa ao cliente por qual de suas portas TCP os dados sero enviados. Conforme sugere a orientao da seta, o incio do processo de transferncia iniciado pelo cliente, ficando o servidor numa posio passiva. Acompanhando a numerao desta ltima figura, observamos que, quando o cliente acessa o servio de FTP (porta 20) de um servidor, a conexo j estabelecida como PASV (passiva). Desta forma, o servidor quem indica por qual porta os dados sero trocados com o cliente (no exemplo, esta a porta 3267). Uma vez que as portas usadas na transferncia de dados so definidas pelo servidor, pode-se tambm definir, no firewall (ou roteador), que apenas essas portas podero ser acessadas de fora da rede. Deste modo, as tentativas de ataque restringem-se a um limite especificado pelo nmero de portas referentes ao servio de FTP. Embora o processo envolvido na conexo FTP se altere significativamente, a operao transparente para o usurio - a menos que ele utilize um browser FTP que no aceite o modo passivo, o que no o caso do Netscape e do FTP do UNIX. So poucos hoje em dia, os clientes FTP que no aceitam esse modo de comunicao com o servidor FTP. A seguir, veremos como configurar um servidor de FTP em modo passivo e como configurar um firewall de modo a garantir que apenas as portas liberadas para o FTP estejam disponveis para uma mquina cliente externa rede. Adotaremos, no exemplo, o software wu-ftpd, como sendo o servidor de FTP, e um roteador Cisco, como soluo de firewall.

As figuras acima foram elaboradas a partir de figuras presentes no livro Building Internet Firewalls. Configurar o servio de FTP em modo passivo (passive mode) permite, ao administrador do sistema, delimitar o nmero (range) de portas pelas quais se dar a transferncia dos dados. Isso representa um considervel incremento de segurana, no especificamente para o servio de FTP, mas para a mquina que prov este servio. Ao tratarmos deste assunto, estamos considerando um servidor de FTP annimo situado em uma rede que possui um firewall configurado para liberar o acesso apenas quelas portas que correspondam aos servios providos nesta rede. Antes de iniciarmos a discusso sobre o modo passivo, vejamos como funciona o servio de FTP em seu modo normal.

Figura 1 - O funcionamento do FTP em modo normal Conforme podemos visualizar na figura acima, em uma conexo FTP comum, o cliente indica, aleatoriamente, a porta em que deseja que os dados sejam transferidos. No exemplo da figura, esta porta a 5151. Assim, seguindo a numerao indicada na figura: quando o cliente acessa o servio de FTP (porta 21) de um servidor, ele indica para qual porta o servidor dever lhe enviar os dados (no exemplo, esta a porta 5151). Deste modo, quando o download/upload comear, o servidor enviar os dados (partindo da porta 20) para essa porta especificada pelo cliente.

O problema desse modo de funcionamento do FTP que no possvel para o servidor saber o nmero da porta que o cliente solicitar para o envio dos dados, o que obriga o administrador a deixar todas as portas TCP abertas no firewall. Uma maneira de se contornar isso, abrir apenas as portas altas (maiores que 1024). Mas, mesmo assim, esse cenrio muito propcio a tentativas de ataques ou mesmo instalao de backdoors. Isto acarreta num trabalho extra na administrao da mquina: atualizaes de patches, correes de bugs, e configuraes de segurana no somente do servio que ele est provendo (no caso em questo, o FTP). Vejamos, agora, o funcionamento do FTP em modo passivo.

Figura 2 - O funcionamento do FTP em modo passivo Como podemos ver na Figura 2, agora o servidor que, no incio da conexo, informa ao cliente por qual de suas portas TCP os dados sero enviados. Conforme sugere a orientao da seta, o incio do processo de transferncia iniciado pelo cliente, ficando o servidor numa posio passiva. Acompanhando a numerao desta ltima figura, observamos que, quando o cliente acessa o servio de FTP (porta 20) de um servidor, a conexo j estabelecida como PASV (passiva). Desta forma, o servidor quem indica por qual porta os dados sero trocados com o cliente (no exemplo, esta a porta 3267). Uma vez que as portas usadas na transferncia de dados so definidas pelo servidor, pode-se tambm definir, no firewall (ou roteador), que apenas essas portas podero ser acessadas de fora da rede. Deste modo, as tentativas de ataque restringem-se a um limite especificado pelo nmero de portas referentes ao servio de FTP.

Embora o processo envolvido na conexo FTP se altere significativamente, a operao transparente para o usurio - a menos que ele utilize um browser FTP que no aceite o modo passivo, o que no o caso do Netscape e do FTP do UNIX. So poucos hoje em dia, os clientes FTP que no aceitam esse modo de comunicao com o servidor FTP. A seguir, veremos como configurar um servidor de FTP em modo passivo e como configurar um firewall de modo a garantir que apenas as portas liberadas para o FTP estejam disponveis para uma mquina cliente externa rede. Adotaremos, no exemplo, o software wu-ftpd, como sendo o servidor de FTP, e um roteador Cisco, como soluo de firewall. As figuras acima foram elaboradas a partir de figuras presentes no livro Building Internet Firewalls. ^

2. Configurao no servidor de FTP


Este artigo pressupe que o servio de FTP esteja previamente configurado, restringindo assim, sua abordagem apenas configurao do modo passivo. A configurao do servio de FTP pode ser encontrada em artigo anteriormente publicado neste boletim - Configurando seu Servidor FTP de Maneira Segura (http://www.rnp.br/newsgen/9805/serv-ftp.html) - e o leitor poder encontrar algumas dicas para as verses mais recentes, do software wu-ftpd, nos apndices deste artigo. ^

2.1 O Arquivo ftpaccess


A configurao do modo passivo no wu-ftpd se faz pela simples incluso de duas linhas, semelhantes s abaixo indicadas, no arquivo ftpaccess: passive address 192.168.100.99 0.0.0.0/0 passive ports 0.0.0.0/0 7000 7200 Esses dois argumentos de configurao (passive address e passive ports) j eram previstos no arquivo ftpaccess do wu-ftpd, de modo que possvel consult-los nas suas respectivas pginas de manual (man pages). Vejamos, porm, o significado de cada uma dessas linhas. Pode-se observar que, em ambas as linhas, os argumentos so todos numricos. Um desses argumentos fixo nas duas linhas: 0.0.0.0/0. Ele representa todos os possveis endereos IP da Internet. Vejamos a sua relao com os outros campos. Na primeira linha, o argumento 192.168.100.99 indica o endereo IP do seu servidor. Dado o significado do 0.0.0.0/0, acima mencionado, essa linha de comando est indicando que o recurso em questo aplica-se a todos os hosts IP que acessarem o servidor FTP.

Na segunda linha temos, ento, a definio do limite (range) de portas por onde os dados do FTP sero transmitidos. esta linha que representa o benefcio do modo de configurao passivo do servidor de FTP. ^

2.2 Dica de configurao


Em algumas implementaes do modo passivo no wu-ftpd, necessrio alterar as permisses de acesso, conforme indicado na seguinte seqncia de comandos: cd ~ftp/dev chmod 666 tcp ^

2.3 Reinicializao do daemon


Tendo feito as alteraes no arquivo de configurao do servidor de FTP no se deve esquecer de reinicializar o daemon de FTP para que elas sejam ativadas. ^

3.Configurao no firewall
As regras abaixo ("access-list 120") dizem respeito aos pacotes que saem de uma rede local; enquanto as "access-list 110" referem-se aos pacotes que entram. A primeira regra permite a sada de pacotes por todas as portas do servidor FTP; a segunda regra permite conexes porta FTP e a ltima permite conexes porta de dados do FTP e a qualquer outra porta maior que 1024. access-list 120 permit tcp host 192.168.100.99 any log access-list 110 permit tcp any host 192.168.100.99 eq FTP log access-list 110 permit tcp any eq FTP-DATA any gt 1024 log ^

3.2. Regras para FTP em modo passivo


Partindo do exemplo anterior, a implementao do modo passivo se d apenas pela substituio da ltima linha pela linha abaixo que libera o acesso s portas especificadas na clusula range. access-list 110 permit tcp any host 192.168.100.99 range 6900 7000 log Portanto, as regras relativas a este servidor FTP, ficariam da seguinte forma:

access-list 120 permit tcp host 192.168.100.99 any log access-list 110 permit tcp any host 192.168.100.99 eq FTP log access-list 110 permit tcp any host 192.168.100.99 range 6900 7000 log ^

3.3. Regra adicional


possvel observar que a implementao do FTP em modo passivo bastante simples e acrescenta inmeras vantagens do ponto de vista de administrao e segurana. Uma vez implementada, esta soluo facilita o controle sobre todos os acessos FTP, visto que estes estaro restritos a uma faixa especfica. Esta facilidade se estende elaborao de scripts para tratamento de log. Convm ressaltar que a soluo proposta pode ser implementada de diferentes formas e utilizando-se de outras combinaes de firewall e de servidor FTP. Sendo o servio de FTP um dos mais comuns na Internet de vital importncia que o responsvel pela sua administrao mantenha-se sempre informado sobre alertas e atualizaes do pacote. ^

Referncias bibliogrficas
[1] D. Brent Chapman and Elizabeth D. Zwicky, Building Internet Firewalls, Ed. 1, O'Reilly. [2] Liliana Esther Velsquez Alegre Solha, Configurando seu Servidor FTP de Maneira Segura, NewsGeneration. [3] FAQ Wu-ftpd, http://www.cetis.hvu.nl/~koos/wu-ftpd-faq.html ^

Apndices A. Dicas sobre flags de compilao


^

B. Dicas sobre os arquivos ftpaccess e ftpusers


Os arquivos de configurao, do servidor wu-ftpd, so os seguintes:

/etc/ftpusers Apresenta uma lista de usurios que NO tm autorizao de usar o FTP. No caso de uma tentativa, mesmo que o usurio possua uma senha, o resultado ser um login failure. /etc/ftpaccess Este o arquivo de configurao propriamente dito. Existem vrias verses deste arquivo que dependem do tipo de utilizao do servidor. Dois bons exemplos de configurao deste arquivo podem ser encontrados nos seguintes diretrios da distribuio do pacote (exemplo na verso 2.6.1): wu-ftpd2.6.1/doc/examples/ftpaccess e wu-ftpd-2.6.1/doc/examples/ftpaccess.heavy

Segue um exemplo comentado de uma possvel configurao para o arquivo ftpaccess. class all real,guest,anonymous * limit all 10 Any /etc/ftpmsgs/msg.muitos * limita a um mximo de 10 o total de conexes permitido, independente do seu tipo. passive address 192.168.100.99 0.0.0.0/0 passive ports 0.0.0.0/0 6900 7000 * define quais so as portas que sero utilizadas pelo FTP passivo. message /etc/ftpmsgs/msg.start login message .message cwd=3D* * define o arquivo que contm o banner de entrada. compress yes local remote tar yes local remote * define se o usurio pode utilizar de recursos de compresso. loginfails 3 * especifica que o nmero mximo de tentativas de login ser de 3. passwd-check rfc822 enforce * utiliza a RFC822 para verificao da senha. delete no guest,anonymous # delete permission? overwrite no guest,anonymous # overwrite permission? rename no guest,anonymous # rename permission? chmod no guest,anonymous # chmod permission? umask no guest,anonymous # umask permission? * relao de comandos que esto sendo negados aos usurios do FTP. noretrieve /etc core /var/log /var/mail /var/adm * relao de arquivos que no podem ser transferidos ou contedos dos diretrios. banner /etc/ftpmsgs/msg.banner * define qual o arquivo de banner de login. a mensagem que aparece assim que um usurio acessa o FTP.

log commands real,commands log transfers anonymous,real inbound,outbound * define como ser realizado o log. Neste caso, estamos logando os arquivos que so transferidos e os comandos utilizados. log security * define que se ocorrer uma tentativa de algo proibido pela configurao as violaes de segurana so "logadas". log syslog+xferlog * define que ambos logs recebam informaes simultneas sobre as transferncias. deny-email mozilla@ deny-email IE30User@ deny-email IE40User@ deny-email IE50User@ * define os e-mails padro que no so aceitos como senha. timeout idle 300 * define o tempo sem utilizao que termina a conexo. importante se ter um valor baixo, pois pode ser utilizado para um overflow de conexes contra o servidor. shutdown /etc/shutmsg * define o arquivo que possui a mensagem de shutdown para aviso aos usurios. email ftpmaster@<dominio.br * define qual o e-mail de contato em caso de problemas.