Servidor de E-mail · 5 min read · Nov 13, 2025

Filtro de Spam Postfix usando Ubuntu Dapper, MailScanner, SpamAssassin, Razor, Pyzor, DCC e ClamAV

Introdução

Esta é uma versão semelhante do HOWTO que pode ser encontrada aqui: http://www200.pair.com/mecham/spam/spamfilter20050628.html. Se você está olhando para este howto, presume-se que você tenha algum nível de experiência com servidores de e-mail, DNS, TCP/IP, Firewalls e Linux em geral.

1 Configurando o Servidor Ubuntu

Por favor, consulte a documentação já disponível online para detalhes sobre como configurar um servidor Ubuntu. O HowToForge tem alguns HowTo’s que são muito detalhados. No entanto, há algumas configurações de instalação descritas aqui que devem ser levadas em conta ao configurar o servidor, que podem diferir de outros howto’s.

NOTA: O Ubuntu é instalado como um sistema setuid por padrão. O que isso significa é que a conta root está desativada e você tem que executar tudo com um 'sudo' na frente para executá-lo como root. A maneira de contornar isso é executar 'sudo su -' e você não precisará mais digitar 'sudo' na frente do comando porque você está em uma sessão bash como root. Para o restante deste documento, presume-se que você tenha feito isso e esteja executando uma sessão bash como root, então nenhum comando sudo será fornecido. A moral da história é que, quando você fizer login no Ubuntu via SSH ou console, lembre-se de executar 'sudo su -' antes de começar a editar arquivos do sistema, mover/criar diretórios ou instalar/desinstalar software e serviços.

1.1 Partições

Particionar o disco dessa maneira não é um requisito, mas evitará que seu servidor fique completamente sem espaço se algo der errado no diretório /var. Além disso, particionar o disco dessa maneira permitirá que você crie alguns gráficos extras com MailScannerMRTG que podem olhar para /var, /var/log e /var/spool separadamente. O MailScannerMRTG não verificará o espaço em disco em diretórios, ele só pode calcular o tamanho por partições.

Exemplo da minha tabela de partições:
/boot       50MB        Partição de Boot        EXT3 (PRIMÁRIA)
Swap        2GB     Partição de Swap (O tamanho depende da sua memória, o dobro da sua memória deve ser suficiente) (PRIMÁRIA)
/       2GB     Partição Raiz       EXT3 (LÓGICA)
/var        1GB     Partição de Dados Variáveis EXT3 (LÓGICA)
/var/log    3GB     Partição de Dados Variáveis EXT3 (LÓGICA)
/var/spool  2GB     Partição de Dados Variáveis Spool   EXT3 (LÓGICA)
/usr        4GB     Programas instalados pelo usuário       EXT3 (LÓGICA)
/usr/local  2GB     Programas instalados pelo usuário       EXT3 (LÓGICA)
/home       QUALQUER        Diretórios Home (Bom lugar para colocar qualquer espaço extra, você pode reparticionar se ficar sem espaço e usar isso.)    EXT3 (LÓGICA)

1.2 Verificar Configurações de Rede

Precisamos garantir que o sistema esteja configurado com um IP estático válido, os servidores DNS corretos estão em /etc/resolv.conf e seu servidor está identificado no arquivo /etc/hosts.

vi /etc/network/interfaces

O arquivo de Interfaces de Rede deve parecer algo assim:

auto lo eth0
iface lo inet loopback
# A interface de rede primária
iface eth0 inet static
        address  192.168.1.100
        netmask  255.255.255.0
        network  192.168.1.0
        broadcast 192.168.1.255
        gateway  192.168.1.1

Reinicie o serviço de rede para que essas alterações tenham efeito:

/etc/init.d/networking restart

Edite o arquivo resolv.conf para adicionar servidores DNS:

vi /etc/resolv.conf

Certifique-se de que seu nome de domínio esteja no topo do resolv.conf, deve parecer algo assim:

search example.com
nameserver 192.168.0.1
nameserver 192.168.0.2
vi /etc/hosts

O topo do arquivo deve parecer algo assim:

127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfp

Como estamos aqui, você pode adicionar quaisquer outros hosts que gostaria que nosso filtro de spam conhecesse. Adicione quaisquer servidores de e-mail internos aqui. Simplesmente anexe quaisquer outras entradas ao final da lista.

1.3 APT e Outras Ajustes

O Apt precisa ser configurado para pesquisar nos repositórios universe e multiverse. Faça um backup do seu atual /etc/apt/sources.list:

cp /etc/apt/sources.list /etc/apt/sources.list.default

Substitua-o pelo seguinte arquivo sources.list:

vi /etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted
deb http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu dapper universe multiverse
deb http://security.ubuntu.com/ubuntu dapper-security main restricted
deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted
deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse
deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse

Precisamos atualizar/atualizar o cache do apt e instalar algum software. Para atualizar o cache, execute:

apt-get update

Nota: Este é um bom momento para mudar sua imagem do kernel para a correta, provavelmente você precisará do ‘linux-image-i686’. Se você não sabe o que isso significa, pesquise. Execute um apt-get upgrade e reserve um momento para solucionar quaisquer erros ou problemas que você possa estar tendo. Queremos eliminar qualquer coisa que possa causar problemas no futuro. Lembre-se de reiniciar assim que tudo estiver pronto e execute um rápido dmesg | less, isso pode ajudar bastante.

apt-get install ssh

Uma vez que o ssh esteja instalado, você deve se conectar ao servidor via ssh usando o PuTTY do seu desktop linux ou windows. Isso tornará mais fácil concluir o restante deste howto, pois você poderá copiar/colar no terminal a partir do desktop. Então vá em frente, ssh neste servidor.

Eu geralmente apenas configuro o relógio da BIOS para o horário local e depois executo o seguinte para sincronizar o relógio.

apt-get install ntpdate  

hwclock --systohc

Agora instalamos a maioria das coisas que precisaremos. Eu dividi a lista em 4 execuções de instalação APT. 5-15 instalações de cada vez parecem prudentes, fica a seu critério:

apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev vim lynx bzip2 unzip perl-doc libwww-perl ntp-simple  
  
apt-get install zlib1g-dev zip libdbi-perl libconvert-binhex-perl gcc make autoconf automake libtool libmail-spf-query-perl rblcheck libnet-ident-perl  
  
apt-get install flex bison libcompress-zlib-perl pax libberkeleydb-perl ncftp unzoo arj lzop nomarch arc zoo  
  
apt-get install postfix postfix-pcre postfix-mysql postfix-ldap cabextract lha unrar razor pyzor spamassassin

Selecione NÃO CONFIGURAÇÃO quando o Debconf para Postfix aparecer.

Instale o unarj:

wget http://archive.ubuntu.com/ubuntu/pool/universe/a/arj/unarj_3.10.21-2_all.deb  
  
dpkg -i unarj_3.10.21-2_all.deb

Agora também precisamos remover alguns programas, espero que você não precise de suporte a PCMCIA ou impressora. Este servidor também não precisará de suporte a discagem. Você não terá necessariamente todos esses programas instalados.

Desinstale o seguinte software (tudo em uma linha):

apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pcmciautils pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent

1.6 Limpando serviços

Alguns serviços podem ainda persistir mesmo após a desinstalação dos daemons. Primeiro, precisamos fazer um backup do inet.d:

cp -R /etc/init.d /etc/init.d.backup

Agora podemos parar todos os serviços que podem estar em execução e que não precisamos:

/etc/init.d/lpd stop  
update-rc.d -f lpd remove  
  
/etc/init.d/nfs-common stop  
update-rc.d -f nfs-common remove  
  
/etc/init.d/portmap stop  
update-rc.d -f portmap remove  
  
/etc/init.d/pcmcia stop  
update-rc.d -f pcmcia remove  
  
/etc/init.d/pcmciautils stop  
update-rc.d -f pcmciautils remove  
  
/etc/init.d/ppp stop  
update-rc.d -f ppp remove  
  
/etc/init.d/exim4 stop  
update-rc.d -f exim4 remove  
  
update-rc.d -f ntpdate remove

Desative todos os serviços que paramos:

update-inetd --disable time  
  
update-inetd --disable daytime  
  
update-inetd --disable echo  
  
update-inetd --disable chargen  
  
update-inetd --disable ident  
  
update-inetd --disable discard

O último pode lhe fazer uma pergunta sobre “entradas múltiplas”, responda sim (y).

Verifique se conseguimos tudo:

lsof -i | grep LISTEN

O único daemon que você deve ver neste ponto é *:ssh. Você pode ter que executar isso novamente:

update-inetd --disable discard

Se houver outros programas mostrados, tente reiniciar e testar novamente.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.