GNU/Linux
 
 
PostFix
(MTA)

O PostFix é um servidor SMTP que oferece vários recursos. Ele é um dos mais utilizados MTA do mundo.



Instalação
# apt-get install postfix (irá aparecer um dialog. Escolha as opções "Internet Site" e "example.com.br")


Arquivo de configuração 1
# vi /etc/postfix/main.cf
myhostname = hostnamne.example.com.br (hostname e domain deste servidor de e-mail. Esse nome é enviado para os outros servidores de e-mail que estão na Internet quando eles tentarem envia uma mensagem. Esse nome é o que aparecerá no cabeçalho (header) do e-mail como nome deste servidor de e-mail. Também é usado por anti-spams ao receberem mensagens, ele [o anti-spam] verifica se esse nome está coerente com os registros que estão no DNS da Internet. Alguns [anti-spam] verificam se esse registro simplesmente existe e outros verificam se ele é um registro MX. É muito importante essa opção estar correta, pois só assim se evitará rejeição da mensagens. Também é interessante ressaltar que esse nome é o que aparecerá ao fazer um HELO ou EHLO no servidor Postfix com o comando telnet)

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128, 10.10.0.0/24, 10.10.0.51 (nesta opção coloque a rede e/ou IP que tem permissão para fazer o relay SMTP sem autênticação, ou seja, aqueles que podem enviar e-mail sem se autenticar. Cada IP e/ou rede podem ser separados por vírgula ou por espaço. Caso essa linha não esteja corretamente configurada uma mensagem de erro "554 5.7.1 : Relay access denied" aparecerá ao enviar um e-mail. Conforme já foi dito, Se pode colocar um endereço de rede [ex: 10.10.0.0/24]. Contudo, por medida de segurança, se deve colocar endereços IP [ex: 10.10.0.51]. Assim se evita que toda uma rede consiga enviar e-mail por esse servidor sem se autenticar. Geralmente nesta opção "mynetworks" se ponhe o endereço IP do ANTI-SPAM e/ou de alguma aplicação (sistema administrativo) com direitos de fazer o relay SMTP sem autênticação. O restante das máquinas deve fazer o relay somente por autenticação)

best_mx_transport = local (acrescente essa opção caso apareça uma mensagem de erro "The mail system : mail for domain loops back to myself" apareça ao enviar um e-mail)

local_recipient_maps = (caso apareça uma mensagem de erro “The following recipient(s) could not be reached: [email protected] "mailto:[email protected]" [email protected]@securitylabs2.com.brHYPERLINK "mailto:[email protected]" [email protected]@securitylabs2.com.br on Wed 06/15/11 00:54:53 550 5.1.1 : Recipient address rejected: User unknown in local recipient table” apareceça ao enviar um e-mail. Essa linha sem opção é falta de segurança, mas em caso de teste a coloque e depois retire. Um dos erros que podem aparecer caso essa linha não exista é “The following recipient(s) could not be reached:user@domain on Mon 02/07/11 16:10:13 550 5.1.1 : Recipient address rejected: User unknown in local recipient table”)

mailbox_transport = (OPCIONAL. Se for usado o Zarafa Server essa opção deve existir e o valor será "zarafa". Caso essa linha não exista um mensagem de erro "The mail system : unknown user: "usuario_teste" aparecerá ao enviar um e-mail)

virtual_alias_maps = hash:/etc/postfix/virtual (acrescente essa opção se quiser fazer Forward/Alias de e-mail. Um Forward de e-mail significa que uma conta ao receber um e-mail redirecionará o mesmo automaticamente para outra conta de e-mail (local ou externo). Esse redirecionamento não armazena as mensagem na conta local, ou seja, a conta que redirecionará o e-mail para outro endereço Para que isso não ocorra, basta colocar no redirecionamento o endereço da conta local (segue o mesmo princípio do /etc/aliases). Depois é necessário criar o arquivo “/etc/postfix/virtual” conforme conteúdo modelo mostrado nesse artigo no item "Redirecionamento de e-mail". Depois de criado esse arquivo e o seu conteúdo, digite o comando “postmap /etc/postfix/virtual”)






REDIRECIONAMENTO DE E-MAILS (CONTAS DE USUÁRIOS UNIX)

# vi /etc/postfix/main.cf (entra no arquivo de configuracao do PostFix)
alias_maps = hash:/etc/aliases (acrescente essa opção se quiser fazer Forward de e-mail. Um Forward de e-mail significa que uma conta ao receber um e-mail redirecionará o mesmo automaticamente para outra conta de e-mail (local ou externamente). Esse redirecionamento não armazena as mensagens na conta local, ou seja, a conta que redirecionará o e-mail para outro endereço nao armazenara as mensagens redirecionadas. Para que isso não ocorra, basta colocar no redirecionamento o endereço da conta local. Depois é necessário criar o arquivo “/etc/postfix/virtual”, conforme mostrado a seguir)
alias_database = hash:/etc/aliases
Salve e Sai do arquivo

# vi /etc/aliases (essa arquivo deve ser criado e deve conter os redirecionamentos de e-mail)
root: hugo, [email protected], [email protected], francisco (essa linha informa que todo e-mail enviado para o "root" deve ser redirecionado para "hugo", "[email protected]", "[email protected]" e francisco)
Salve e Sai do arquivo

# newaliases (ao executar esse comando os redirecionamentos feitos serao ativados. Tambem um novo arquivo binario [e criado "/etc/aliases.db")





REDIRECIONAMENTO DE E-MAILS (CONTAS DE USUÁRIOS NÃO UNIX)

# vi /etc/postfix/main.cf (entra no arquivo de configuracao do PostFix)
virtual_alias_maps = hash:/etc/postfix/virtual (acrescente essa opção se quiser fazer Forward de e-mail. Um Forward de e-mail significa que uma conta ao receber um e-mail redirecionará o mesmo automaticamente para outra conta de e-mail (local ou externamente). Esse redirecionamento não armazena as mensagens na conta local, ou seja, a conta que redirecionará o e-mail para outro endereço nao armazenara as mensagens redirecionadas. Para que isso não ocorra, basta colocar no redirecionamento o endereço da conta local (segue o mesmo princípio do /etc/aliases). Depois é necessário criar o arquivo “/etc/postfix/virtual”, conforme mostrado a seguir)
Salve e Sai do arquivo

# vi /etc/postfix/virtual (essa arquivo deve ser criado e deve conter os redirecionamentos de e-mail)
email_entrada@domain email_destino1@domain, email_destino2@domain, email_destino3@domain (essa linha informa que todo e-mail enviado para "email_entrada@domain" deve ser redirecionado para "email_destino1@domain", "email_destino2@domain" e "email_destino3@domain")
Salve e Sai do arquivo

# postmap /etc/postfix/virtual (ao executar esse comando os redirecionamentos feitos serao ativados. Tambem um novo arquivo binario [e criado "/etc/postfix/virtual.db")





SMTP ATRAVÉS DE AUTENTICAÇÃO VIA IMAP



Arquivo de configuração 1
# vi /etc/postfix/main.cf
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination (outras opções: reject_non_fqdn_sender, reject_unknown_sender_domain, reject_sender_login_mismatch, reject_unlisted_sender, reject_unverified_sender)
smtpd_sender_restrictions = reject_non_fqdn_sender, reject_unknown_sender_domain
local_header_rewrite_clients = permit_inet_interfaces permit_mynetworks (faz com que o "TO" do depois do "data" seja o mesmo "RCPT TO" do de antes do "data")
Obs0: outras opções: "smtp_sender_dependent_authentication = yes", "smtp_connection_cache_on_demand = no".
Obs1: não esqueça de configurar corretamente a opção “mynetworks”. Coloque nessa opção somente o IPs ou redes que podem enviar e-mails sem autenticação, como é o caso do Anti-Spam.
Obs2: no “smtpd_sender_restrictions” o “reject_non_fqdn_sender” faz com que o MAIL FROM siga o padrão FQDN (ex: examplo.com.br). Já o “reject_unknown_sender_domain” faz com que o MTA pergunte se aquele domínio do MAIL FROM existe. Caso contrário na duas situações o e-mail não será enviado.
Obs3: nao se esquecer que todo o parametro relacionado ao “smtpd” está relacionado ao recebimento de e-mail pelo servidor Postifix via protocolo SMTP, seja via Anti-Spam ou seja via cliente de e-mail (outlook, thunderbird etc).


Arquivo de configuração 2
# vi /etc/postfix/master.cf
smtp inet n - n - - smtpd


SASL
# apt-get install sasl2-bin
# gpasswd -a postfix sasl (caso não seja adicionado usuário postfix no grupo sasl a seguinte mensagem de erro aparecerá “postfix/smtpd[9842]: warning: SASL authentication failure: cannot connect to saslauthd server: Permission denied”)


SASL - Arquivo de configuração 1
# mkdir /etc/postfix/sasl
# vi /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login


SASL - Arquivo de configuração 2
# vi /etc/default/saslauthd
START=yes
MECHANISMS="rimap"
MECH_OPTIONS="127.0.0.1"
OPTIONS="-c -m /var/run/saslauthd"
Obs: ao invés de mudar o arquivo de configuração, se poderia executar o comando “saslauthd -a rimap -O 127.0.0.1 -c”. Seria equivalente, contudo é melhor usar o arquivo de configuração mesmo.





COMANDOS IMPORTANTES

Caso o seu servidor esteja sob ataques de SPAMs o comando “postsuper” pode resolver o problema.

# postsuper -h ALL (coloca todas as mensagens que estão na fila de envio em “on hold”. Isso significa que essas mensagens ficarão estáticas na fila de envio até que seja enfileirada novamente. Tais mensagens em “on hold” ficarão eternamente assim até que o administrador decida o que fazer com elas)
Obs: a opção ALL deve ser sempre maiúscula.
# postsuper -h ALL deferred (idem, só que especifica as mensagens da fila deferred)
# postsuper -h ALL incoming (idem, só que especifica as mensagens da fila incoming)
# postsuper -h ALL active (idem, só que especifica as mensagens da fila active)
# mailq (visualiza as mensagens que estão na fila de envio)
# postqueue -p (idem)
# postsuper -d ALL hold (remove todas as mensagens que estão na fila de envio chamada “hold”)
# postsuper -d queue_id (remove a mensagem que está na fila de envio que tem a identificação "queue_id")
# postsuper -H ALL (libera todas as mensagens colocadas em HOLD, ou seja, coloca as mensagens na fila de envio novamente)
# postsuper -H queue_id (libera mensagem colocada em HOLD)
# postsuper -r ALL (reenfilera [requeue] TODAS as mensagens na fila de envio novamente caso alguma mensagem apresente erro no envio, como por exemplo erro de "delivery temporarily suspended", "unable to connect", "connection timeout", "Insufficient system storage" etc)
# postsuper -r queue_id (reenfilera [requeue] mensagem na fila de envio novamente caso alguma mensagem apresente erro no envio, como por exemplo erro de "delivery temporarily suspended")
# postconf mydestination (mostra o valor atual da opção "mydestination" no arquivo de configuração "main.cf" do Postfix)
# postconf -d mydestination (mostra o valor default da opção "mydestination" no arquivo de configuração "main.cf)
# qshape hold (visualizando fila hold)
# mailstat






PÁGINAS INTERESSANTES

http://www.postfix.org/addon.html#policy







BLACKLIST E WHITELIST DE IP OU DOMAIN (SPAM - POOR REPUTATION)

http://www.barracudacentral.org/
http://www.emailreg.org/
http://www.rackaid.com/resources/spam-blacklist-removal/
https://support.msn.com/eform.aspx?productKey=edfsmsbl&ct=eformts&st=1&wfxredirect=1 (hotmail)
http://www.spamcop.net/bl.shtml?200.200.200.200
https://support.proofpoint.com/dnsbl-lookup.cgi?ip=200.200.200.200
[email protected] (é necessário enviar uma mensagem para esse endereço)
http://www.blacklistalert.org/
http://mxtoolbox.com/
http://www.whitelisted.org/
http://multirbl.valli.org/index.php
http://mail.terra.com.br/postmaster/ (do "terra.com.br")









AGUARDE
PÁGINA EM CONSTRUÇÃO






Referências Bibliográgicas

 
 


ETI - Especialista em Tecnologia
da Informação