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.