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/interfacesO 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.1Reinicie o serviço de rede para que essas alterações tenham efeito:
/etc/init.d/networking restartEdite o arquivo resolv.conf para adicionar servidores DNS:
vi /etc/resolv.confCertifique-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.2vi /etc/hostsO topo do arquivo deve parecer algo assim:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 sfp.example.com sfpComo 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.defaultSubstitua-o pelo seguinte arquivo sources.list:
vi /etc/apt/sources.listdeb 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 multiversePrecisamos atualizar/atualizar o cache do apt e instalar algum software. Para atualizar o cache, execute:
apt-get updateNota: 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 sshUma 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 --systohcAgora 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 spamassassinSelecione 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.debAgora 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 mailagent1.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.backupAgora 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 removeDesative 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 discardO último pode lhe fazer uma pergunta sobre “entradas múltiplas”, responda sim (y).
Verifique se conseguimos tudo:
lsof -i | grep LISTENO único daemon que você deve ver neste ponto é *:ssh. Você pode ter que executar isso novamente:
update-inetd --disable discardSe houver outros programas mostrados, tente reiniciar e testar novamente.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.