ProFTPD + ClamAV - FTP livre de vírus

cvs

Nesse artigo abordarei uma solução interessante para servidores de FTP onde pode-se evitar a disseminação de vírus em redes Microsoft. Uma abordagem rápida e simples.

[ Hits: 17.660 ]

Por: Thiago Alves em 08/07/2009 | Blog: http://www.seeufosseopresidente.com.br


Introdução



Vamos agora nos atentar em alguns conceitos.

Servidor FTP

Chama-se servidor FTP um servidor que fornece, através de uma rede de computadores, um serviço de acesso de usuários a um disco rígido ou servidor através do protocolo de transferência de arquivos: File Transfer Protocol. Seu acesso pode ser de qualquer usuário da rede ou reservado (com pedido de login e senha). O servidor FTP utiliza o protocolo FTP via navegador ou via cliente ftp dedicado.

Fonte: http://pt.wikipedia.org/wiki/Servidor_FTP

Antivírus

Os antivírus são softwares projetados para detectar e eliminar vírus de computador.

Existe uma grande variedade de produtos com esse intuito no mercado, a diferença entre eles está nos métodos de detecção, no preço e nas funcionalidades (o que fazem).

Fonte: http://pt.wikipedia.org/wiki/Antivirus

E é isso basicamente que iremos montar com esse artigo, um servidor FTP com suporte a antivírus em tempo real.

Vamos ao trabalho!

Instalações

Para fazer essa instalação terei como base que o seu sistema CentOS esteja instalado apenas com os pacotes da instalação básica.

Pode-se seguir esses passos para chegar nesse ponto: Instalação do CentOS 5.3

No sistema, faça a atualização:

# yum update -y

Feita a atualização, baixe o rpmforge, acesse o site https://rpmrepo.org/RPMforge/Using e pegue o arquivo relacionado com sua arquitetura, no caso peguei o para i386:

# wget -c http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Depois disso instale o pacote:

# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Feito isso você terá em seu sistema os repositórios do rpmforge configurados para o yum baixar mais pacotes ainda. Iniciando agora, vamos instalar o clamav.

# yum install clamav clamav-db clamav-devel clamd -y

Agora vamos baixar os pacotes para a instalação do proftpd e do mod_clamav.

# wget -c http://apt.sw.be/source/proftpd-1.3.2-1.rf.src.rpm
# wget -c https://secure.thrallingpenguin.com/redmine/attachments/download/1/mod_clamav-0.11rc.tar.gz

Agora vamos instalar o src do proftpd pra gente poder alterar o que precisamos e depois gerar outro rpm.

# mkdir -p /usr/src/redhat/SOURCES
# rpm -ivh proftpd-1.3.2-1.rf.src.rpm
# tar zxf mod_clamav-0.11rc.tar.gz
# cd /usr/src/redhat/SOURCES/
# tar jxf proftpd-1.3.2.tar.bz2
# rm -rf proftpd-1.3.2.tar.bz2
# cp /root/mod_clamav-0.11rc/mod_clamav.* proftpd-1.3.2/contrib/
# patch -p1 -d proftpd-1.3.2/ < /root/mod_clamav-0.11rc/proftpd.patch
# tar cjf proftpd-1.3.2.tar.bz2 proftpd-1.3.2/


E daí você pergunta, o que foi feito aí em cima?

Respondo: Primeiro criamos o diretório para a instalação do source, depois instalamos ele e descompactados o modclamav. Depois descompactamos o source e apagamos o arquivo compactado. Copiamos os arquivos do mod_clamav pra dentro da pasta contrib do proftpd e depois aplicamos o patch. Então compactamos o source alterado do proftpd. Isso é necessário por conta do rpmbuild que usaremos agora, ele procura o source do proftpd nesse diretório, os descompacta e faz toda a compilação em cima dele.

Agora vamos alterar o arquivo proftpd.spec para o rpmbuild fazer do jeito que a gente deseja.

# vi /usr/src/redhat/SPECS/proftpd.spec

Altere a seguinte linha:

--with-modules="mod_readme:mod_auth_pam:mod_tls" \

Para:

--with-modules="mod_readme:mod_auth_pam:mod_tls:mod_clamav" \

Salve o arquivo e saia.

Agora vamos instalar o rpmbuild.

# yum install rpm-build -y

Agora vamos criar um pacote rpm do jeito que a gente precisa.

# rpmbuild -ba /usr/src/redhat/SPECS/proftpd.spec

PAMMMMM!!!!!!!

Deu erro, e agora? Agora ele fala que são necessários alguns pacotes para que ele possa criar o pacote do proftpd. Então o que fazer? Instalar tais pacotes. Ele deve dar uma mensagem mais ou menos assim:

error: Failed build dependencies:
        pam-devel is needed by proftpd-1.3.2-1.rf.i386
        ncurses-devel is needed by proftpd-1.3.2-1.rf.i386
        pkgconfig is needed by proftpd-1.3.2-1.rf.i386
        openssl-devel is needed by proftpd-1.3.2-1.rf.i386
        krb5-devel is needed by proftpd-1.3.2-1.rf.i386
        openldap-devel is needed by proftpd-1.3.2-1.rf.i386
        mysql-devel is needed by proftpd-1.3.2-1.rf.i386
        zlib-devel is needed by proftpd-1.3.2-1.rf.i386
        libacl-devel is needed by proftpd-1.3.2-1.rf.i386
        postgresql-devel is needed by proftpd-1.3.2-1.rf.i386

Então vamos lá:

# yum install pam-devel ncurses-devel pkgconfig openssl-devel krb5-devel openldap-devel mysql-devel zlib-devel libacl-devel postgresql-devel -y

Feito isso vamos aproveitar e criar pacotes diferenciados para o proftpd, que em nosso caso será mais interessante.

# rpmbuild -ba -with ctrls -with mod_facl -with mod_tls -with NLS -with ipv6 -with DSO /usr/src/redhat/SPECS/proftpd.spec

E aí? Deu erro né? Então, faltou o compilador. Vamos instalá-lo.

# yum install gcc gcc-c++ -y

E agora repetimos o comando para criar os pacotes:

# rpmbuild -ba -with ctrls -with mod_facl -with mod_tls -with NLS -with ipv6 -with DSO /usr/src/redhat/SPECS/proftpd.spec

Prontinho. Feito as compilações ele criará os pacotes. Deve aparecer isso aí pra você:

Wrote: /usr/src/redhat/SRPMS/proftpd-1.3.2-1.rf.src.rpm
Wrote: /usr/src/redhat/RPMS/i386/proftpd-1.3.2-1.rf.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/proftpd-devel-1.3.2-1.rf.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/proftpd-ldap-1.3.2-1.rf.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/proftpd-mysql-1.3.2-1.rf.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/proftpd-postgresql-1.3.2-1.rf.i386.rpm

Agora vamos instalar o que precisamos. Como quero um simples servidor de ftp, vou usar a primeira opção.

# rpm -ivh /usr/src/redhat/RPMS/i386/proftpd-1.3.2-1.rf.i386.rpm

As instalações estão feitas. Agora vamos configurar tudo isso.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Configurações
Outros artigos deste autor

Tornando o OpenBSD stable

Servidor Web com NetBSD (Apache + PHP + MySQL + *)

Servidor web com CentOS + Apache

Compilando Apache 2 com PHP, MySQL, mod_perl e mod_ssl

Sylpheed - a GTK+ based, lightweight, and fast e-mail client

Leitura recomendada

Configurando proxy no shell

Uma introdução ao Linux-PAM

Configurando um servidor Freeradius + openLDAP

Jails em SSH: Montando sistema de Shell Seguro

Snort_INLINE: Proteção total

  
Comentários
[1] Comentário enviado por willian.firmino em 08/07/2009 - 14:40h

Cara como faço para utilizar este clamav com servidor samba no centOS 5.3 se puder me ajudar eu agradeço.

[2] Comentário enviado por dastyler em 10/07/2009 - 12:11h

Belo artigo!!

Mas isso no caso o seu proftp é configurado com autenticação ou não? Isso funciona para ftp servers que funcionem com login anonimo?

[]´s

[3] Comentário enviado por maran em 10/07/2009 - 13:38h

Show de bola cara!
Estas soluções com o Clamav são muito boas, quando se compratilha recurosos com estações Windows, pois as mesmas são repletas de virus, pois são usadas na maioria de suas veses por usuários comuns (profissionais de outras áreas, mais que necessitam usar uma determinada ferramenta em um sistema operacional) então na maioria das veses estas estações tem problremas tremendos, e estas soluções sim, melhoram em muito, na utima empresa em que trabalhei os resultados foram impressionantes, na utikização do SAMBA + CLAMAV, se antes tivesse um material assim, os resultado teriam sido melhores ainda!
Parabens!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts