Postfix (Sol. e-mail)
*******************************************************************************
Instalar e Configurar Servidor de e-mail com:
Postfix – servidor de e-mail propriamente dito;
Dovecot – realiza o serviço de IMAP e POP3
Criado por: Alessandro C. M. Kuramoto
Data: 03/12/2008
Modificado em: 06/05/2010-07:00
v.20100506-0700
Palavras-chaves: e-mail, postfix
Por favor, matenham o nome do autor deste arquivo.
*******************************************************************************
###############################################################################
# Avisos!!!
###############################################################################
http://memovirtual.worpress.com
## Atenção no site memovirtual:
## As opções passadas com – - (menos,menos) no site podem ter ficado
## com um — (travessão), assim use o “man” para confirmar a opção utilizada
## Desculpem-me pelos erros de português, mas vocês sabem…
## nossa lingua é fácil
… e às vezes ao escrever o pensamento está
## lá na frente, enquanto que a digitação…
|##########^ Avisos!!! #######################################################|
###############################################################################
# Temp:
###############################################################################
>Temp
Ver:
http://www.expressolivre.org/html/modules/newbb/viewtopic.php?viewmode=flat&topic_id=1546&forum=8
http://wiki.dovecot.org/HowTo/ImapProxy
http://bobpeers.com/technical/telnet_imap.php
Ver este site legal:
http://informatica.hsw.uol.com.br/e-mail1.htm
|##########^ Temp ############################################################|
###############################################################################
# Conceitos:
###############################################################################
* MTA (Mail Transport Agent): É o servidor de e-mails propriamente dito, com o Postfix, Qmail, Sendmail e o Exim. Um MTA obrigatoriamente suporta enviar e receber e-mails via SMTP, o protocolo utilizado para transportar as mensagens entre os servidores. O servidor pode ser configurado para enviar e receber os e-mails diretamente (internet site) ou se limitar a receber mensagens, usando um servidor SMTP externo (smarthost) na hora de enviar.
Normalmente, você configura seu servidor como “internet site” apenas ao utilizar um servidor dedicado, ou caso sua empresa possua um link dedicado, com um IP “limpo”, fora dos cadastros das listas negras de spam (você pode checar através do http://rbls.org/).
* Mua (Mail user agent): Este é o nome técnico do cliente de e-mail, como o Thunderbird, Evolution, Kmail, etc. usados diretamente pelo usuário final.
|<<<<<<<<<<<<<< #### Conceitos ####
* MDA (Mail Delivery Agent): O MDA funciona como um intermediário entre o MTA e o Mua. Ele não é obrigatório, mas pode fazer algumas coisas úteis, como aplicar filtros antispam, remover vírus anexados nas mensagens, encaminhar para outros endereços e assim por diante. Dois exemplos usados no Linux são o Fetchmail e o Procmail. Você os utiliza quando precisa baixar as mensagens do provedor e aplicar filtros diversos antes de encaminhá-las aos usuários.
|##########^ Conceitos #######################################################|
###############################################################################
# Instalando: #
###############################################################################
## O Postfix é um MTA (Mail Transfer Agent – Agente de Transferência de Correio)
## ele que irá transferir mensagens de servidor para outro.
## Para instalar o postfix podemos usar o comando apt-get:
apt-get install postfix
——————————————————————————-
## O Dovecot é um servidor de IMAP e POP3 que precisa de um MTA como o Postfix
## para funcionar:
apt-get install dovecot-imapd dovecot-pop3d dovecot-common
## Antes de continuar teremos que realizar algumas configurações iniciais
## no Dovecot
## O arquivo de configuração do Dovecot é o:
vim /etc/dovecot/dovecot.conf
——————————————————————-
## Arquivo de exemplo: /etc/dovecot/dovecot.conf
# Protocols we want to be serving: imap imaps pop3 pop3s
# If you only want to use dovecot-auth, you can set this to “none”.
#protocols = imap imaps
## Edite a linha protocols para ficar conforme a linha abaixo:
protocols = pop3 imap
# Disable LOGIN command and all other plaintext authentications unless
# SSL/TLS is used (LOGINDISABLED capability). Note that if the remote IP
# matches the local IP (ie. you’re connecting from the same computer), the
# connection is considered secure and plaintext authentication is allowed.
## Edite a linha “disable_plaintext_auth” e coloque como “no”:
#disable_plaintext_auth = yes
disable_plaintext_auth = no
——————————————————————-
## Adicione um usuário de teste:
adduser mailuser
## Reinicie o servidor dovecot com o comando abaixo:
/etc/init.d/dovecot restart
###############################################################################
# Configurando:
###############################################################################
——————————————————————————-
Alias
http://www.vivaolinux.com.br/artigo/Aliases-e-autenticacao-para-aliases-no-Postfix/
postalias /etc/postfix/aliases
(Fonte: http://www.numaboa.com/informatica/linux/instalacoes/427-slack-postfix?start=8)
O postalias é usado para criar a base de dados dos aliases. Ele é o substituto do newaliases. Toda vez que o arquivo texto aliases for alterado, um novo aliases.db precisa ser gerado através desta ferramenta:
No arquivo main.cf devem existir as linhas abaixos:
——————————————————-
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
|<<<<<<<<<<<<<< #### Configurando ####
===============================================================================
Configuração Geral – Explicação:
===============================================================================
_______________________________________________________________________________
Arquivo: /etc/postfix/main.cf (Permissões: -rw-r–r– 1 root root)
——————————————————————
(Fonte: http://www.guiadohardware.net/tutoriais/servidor-emails/cadastrando-usuarios-configurando.html)
## A opção “myhostname” deve conter o nome completo do servidor, incluindo
## o domínio, enquanto que a opção “mydomain” contém apenas o domínio, sem
## o nome da máquina, como em:
myhostname = debian1.lablinux.net.br
mydomain = lablinux.net.br
## A linha “mydestination” Esta linha indica quais nomes e domínios serão
## considerados endereços locais pelo servidor. Se o nome do servidor é
## “debian1.lablinux.net.br” e o “domínio “lablinux.net.br”, o servidor
## entenderia que tanto e-mails endereçados a “usuario@debian1.lablinux.com.br”,
## quanto “usuario@lablinux.net.br” e “usuario@localhost” são endereçados a
## ele mesmo:
mydestination = debian.lablinux.com.br, lablinux.com.br, localhost
## A linha “mynetworks” especifica os endereços ou faixas de endereços a
## partir de onde o servidor aceitará o envio de mensagens.
## É preciso configurar esta opção com muito cuidado, caso contrário um
## spammer poderá usar seu servidor para enviar mensagens não solicitadas,
## consumindo sua banda e possivelmente fazendo seu servidor ser incluído
## em várias blacklists, o que vai lhe causar muita dor de cabeça:
## A opção ‘mynetworks = 127.0.0.0/8′ permite apenas e-mails enviados
## localmente. Você pode especificar várias faixas de endereços separando-os
## com vírgula, como em: “mynetworks = 10.10.10.0/24, 127.0.0.0/8″.
mynetworks = 10.10.10.0/24, 127.0.0.0/8
## Indica um servidor SMTP externo, através do qual as mensagens serão
## enviadas, deixando esta opção em branco, todos os e-mails serão enviados
## diretamente pelo seu servidor.
relayhost =
### Ver esta opcao
#smtpd_sender_login_maps
## Indica a pasta local, dentro do home de cada usuário, onde os e-mails
## ficarão armazenados.
home_mailbox = Maildir/
recipient_delimiter = +
## A opção “mailbox_size_limit” serviria para definir o limite de
## armazenamento para a caixa postal do usuário. Entretanto, ao usar
## o formato Maildir para as caixas postais, cada mensagem é salva num
## arquivo separado, de forma que a opção não funciona. Por isso, usamos
## o valor “0″ para desativá-la. A melhor forma de limitar o espaço dos
## usuários é simplesmente definir quotas de espaço em disco, usando o Quota.
## Tamanho máximo da mensagem em Bytes:
message_size_limit = 20000
mailbox_size_limit = 0
## Interface em que o postfix trabalhará:
inet_interfaces = all
## Protocolo IP que o postfix usará:
inet_protocols = ipv4
smtpd_sender_restrictions =
# permit_mynetworks,
check_client_access hash:/etc/postfix/arquivo_ips_liberados,
reject_authenticated_sender_login_mismatch,
permit_sasl_authenticated,
permit_inet_interfaces,
reject
|———-^ Arquivo: /etc/postfix/main.cf ———————————–|
|<<<<<<<<<<<<<< #### Configurando ####
_______________________________________________________________________________
Arquivo: /etc/postfix/arquivo_ips_liberados
(Permissões: -rw-r–r– 1 root root)
——————————————————————
### Arquivo com os IPs liberados para enviar e-mails sem autenticação
10.10.10.2 OK # Descrição um.
10.10.11.1 OK # Descrição dois.
|———-^ Arquivo: /etc/postfix/arquivo_ips_liberados ———————|
|<<<<<<<<<<<<<< #### Configurando ####
===============================================================================
Configuração Geral – IMAP e POP3:
===============================================================================
## Instalando o dovecot
apt-get install dovecot-common
## Instalando o Dovecot que dá suporte ao IMAP:
apt-get install dovecot-imapd
## Instalando o Dovecto que dá suporte ao POP3:
apt-get install dovecot-pop3d
_______________________________________________________________________________
Arquivo: /etc/dovecot/dovecot.conf (Permissões: -rw——- 1 root root)
————————————————————————-
## Procotos providos pelo Dovecot:
protocols = imap pop3
## Habilita/Desabilita a autenticação em Plaintext:
#Default: disable_plaintext_auth = yes
disable_plaintext_auth = no
+—————————————————————————–|
|##########^ Configurando ####################################################|
###############################################################################
# Gerenciando o Postfix:
###############################################################################
>Administrando o Postfix
>Gerenciando o Postfix
#### Atualizar a base de dados de alias
### Para carregar os aliases:
postalias /etc/postfix/aliases
### Para carregar os IP das máquinas que podem enviar e-mails sem autenticação:
postmap /etc/postfix/arquivo_ips_liberados
### Para listar todas as mensagens na fila:
postqueue -p
mailq
|<<<<<<<<<<<<<< #### Gerenciando o Postfix ####
### Para forçar a entrega dos e-mails:
postqueue -f
### Para remover uma mensagem da fila:
## Onde: QUEUE_ID é código da mensagem na fila que pode ser obtido com
## o comando mailq
postsuper -d QUEUE_ID
### Para ver quais os parâmetros estão ativos no Postfix:
postconf -n
|<<<<<<<<<<<<<< #### Gerenciando o Postfix ####
### Para descobrir os tipos de mapas:
postconf -m
|<<<<<<<<<<<<<< #### Gerenciando o Postfix ####
### (Fonte: http://www.cyberciti.biz/tips/howto-postfix-flush-mail-queue.html)
### Script em Perl para apagar as mensagens para um destinatário
### específico na fila de mensagem:
——————————————————————————-
#!/usr/bin/perl
# Arquivo: postfix-delete.pl
$REGEXP = shift || die “no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!”;
@data = qx</usr/sbin/postqueue -p>;
for (@data) {
if (/^(\w+)(\*|\!)?\s/) {
$queue_id = $1;
}
if($queue_id) {
if (/$REGEXP/i) {
$Q{$queue_id} = 1;
$queue_id = “”;
}
}
}
#open(POSTSUPER,”|cat”) || die “couldn’t open postsuper” ;
open(POSTSUPER,”|postsuper -d -”) || die “couldn’t open postsuper” ;
foreach (keys %Q) {
print POSTSUPER “$_\n”;
};
close(POSTSUPER);
|———-^ postfix-delete.pl ———————————————–|
|<<<<<<<<<<<<<< #### Gerenciando o Postfix ####
### Como utilizar o script acima (postfix-delete.pl)
## Tenha o perl instalado em sua máquina e:
## Onde EXPRESSAO pode ser o e-mail ou parte do e-mail que esteja na fila
./postfix-delete.pl EXPRESSAO
|<<<<<<<<<<<<<< #### Gerenciando o Postfix ####
### Para ver os logs:
tail -f /var/log/mail.info
### Referências:
http://marcosabadi.blogspot.com/2008_11_01_archive.html
|##########^ Gerenciando o Postfix ###########################################|
###############################################################################
# Proxy IMAP
###############################################################################
Tags: Dovecot, IMAP, Proxy, OpenLDAP
sudo apt-get install dovecot-imapd dovecot-common
dovecot –version
|<<<<<<<<<<<<<< #### Proxy IMAP ####
_______________________________________________________________________________
SO: Debian 4.0 Etch
Arquivo: /etc/dovecot/dovecot.conf (Permissões: -rw——- 1 root root)
————————————————————————-
##### Para ajudar na configuração pode-se gerar logs mais detalhados:
# More verbose logging. Useful for figuring out why authentication isn’t
# working.
#auth_verbose = no
auth_verbose = yes
# Even more verbose logging for debugging purposes. Shows for example SQL
# queries.
#auth_debug = no
auth_debug = yes
### Fonte: http://wiki.dovecot.org/HowTo/DovecotOpenLdap
# LDAP database
# http://wiki.dovecot.org/AuthDatabase/LDAP
passdb ldap {
# Path for LDAP configuration file, see /etc/dovecot/dovecot-ldap.conf for example
args = /etc/dovecot/dovecot-ldap.conf
}
|———-^ Arquivo: /etc/dovecot/dovecot.conf ——————————|
|<<<<<<<<<<<<<< #### Proxy IMAP ####
_______________________________________________________________________________
SO: Debian 4.0 Etch
Arquivo: /etc/dovecot/dovecot-ldap.conf (Permissões: -rw——- 1 root root)
—————————————————————————–
### Servidor de OpenLDAP:
hosts = ldap.dominio.com.br
### Se o servidor não exigir autenticação, não será necessário colocar a senha
### em dnpass
# Password for LDAP server
#dnpass =
# LDAP protocol version to use. Likely 2 or 3.
#ldap_version = 2
ldap_version = 3
# LDAP base. %variables can be used here.
#base = uid=someone, dc=foo, dc=bar, dc=org
base = uid=someone, dc=foo, dc=bar, dc=org
# Dereference: never, searching, finding, always
#deref = never
deref = never
##########| Arquivo: /etc/dovecot/dovecot-ldap.conf
# Search scope: base, onelevel, subtree
#scope = subtree
scope = subtree
# User attributes are given in LDAP-name=dovecot-internal-name list. The
# internal names are:
# uid – System UID
# gid – System GID
# home – Home directory
# mail – Mail location
#
# There are also other special fields which can be returned, see
# http://wiki.dovecot.org/UserDatabase/ExtraFields
#user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid
user_attrs = uid,homeDirectory,,uid,,
# Filter for user lookup. Some variables can be used (see
# http://wiki.dovecot.org/Variables for full list):
# %u – username
# %n – user part in user@domain, same as %u if there’s no domain
# %d – domain part in user@domain, empty if user there’s no domain
#user_filter = (&(objectClass=posixAccount)(uid=%u))
user_filter = (&(objectClass=posixAccount)(uid=%u))
##########| Arquivo: /etc/dovecot/dovecot-ldap.conf
# Password checking attributes:
# user: Virtual user name (user@domain), if you wish to change the
# user-given username to something else
# password: Password, may optionally start with {type}, eg. {crypt}
# There are also other special fields which can be returned, see
# http://wiki.dovecot.org/PasswordDatabase/ExtraFields
#pass_attrs = uid=user,userPassword=password
pass_attrs=uid=user,userPassword=password,mailMessageStore=proxy,mailHost=host
# You can use same UID and GID for all user accounts if you really want to.
# If the UID/GID is still found from LDAP reply, it overrides these values.
#user_global_uid =
#user_global_gid =
user_global_uid = 200
user_global_gid = 200
|———-^ Arquivo: /etc/dovecot/dovecot.conf ——————————|
|<<<<<<<<<<<<<< #### Proxy IMAP ####
Referências para esta configuração:
Principal: (raiz)
http://wiki.dovecot.org/HowTo/ImapProxy
http://wiki.dovecot.org/HowTo/DovecotOpenLdap
http://wiki.dovecot.org/AuthDatabase/LDAP
Example proxy LDAP configuration:
http://wiki.dovecot.org/PasswordDatabase/ExtraFields#LDAP
http://wiki.dovecot.org/MailLocation
|##########^ Proxy IMAP #####################################################|
###############################################################################
# IMAP
###############################################################################
>IMAP
Conceito:
(Fonte: http://bobpeers.com/technical/telnet_imap.php)
About IMAP.
IMAP is an email protocol for organizing, storing and retrieving emails on a remote server. It was developed after POP and is a much more advanced system, one of the main differences being that all the mail is stored on the server so it remains accessible from many different locations. With POP you have to download the mail to your local computer in order to read it and therefore you cannot synchronize your mail across many different machines.It may be more complex than POP but there are still only a few core commands we need to know in order to access our mail on an IMAP server.
### Para conectar a um servidor IMAP:
## É necessário digitar os “?”
$ openssl s_client -connect server:port -crlf
? LOGIN username password
? SELECT Inbox
? LOGOUT
(Fonte: http://www.jaharmi.com/2007/09/26/using_openssl_securely_connect_your_imap_account)
openssl s_client -connect imap.gmail.com:993 -crlf
openssl s_client -connect imap.gmail.com:993 -crlf -debug -verify 9
#### Comandos IMAP:
? login – para logar no servidor IMAP;
? LIST “” “*” – para listar as caixas de mensagens
? status INBOX (messages)
? status INBOX (recent)
? status INBOX (unseen)
? SELECT Inbox
? create INBOX/Teste – para criar pastas;
? delete INBOX/Teste – para deletar pastas;
?
? fetch 1:2 flags – para visualizar as Flags (Lida/Respondida…) das mensagens de 1 a 2
# para visualizar da 1 até a última colocar 1:*
? fetch 1 rfc822.text – para ler uma mensagem;
? logout – para fazer logout do servidor IMAP;
(Pesquisa, site bom sobre os comandos IMAP: http://bobpeers.com/technical/telnet_imap.php)
(Pesquisa: http://support.microsoft.com/kb/189326/)
(Pesquisa: http://pinguimribeiro.wikidot.com/dovecot)
(Pesquisa: http://www.aboutmyip.com/AboutMyXApp/ImapProxy.jsp)
|##########^ IMAP ############################################################|
###############################################################################
# POP
###############################################################################
>POP
Tags: POP3
user <digitar_nome_do_usuario>
pass <digitar_a_senha>
list – para checar a quantidade de mensagens que tem;
stat – mostra as estatísticas da sua conta POP3;
help – mostra uma lista com os comandos disponíveis;
quit – encerra a seção.
|##########^ POP #############################################################|
###############################################################################
# SUDO para Postfix, Dovecot
###############################################################################
|##########^ SUDO para… ###################################################|
###############################################################################
# Troubleshooting
###############################################################################
——————————————————————————-
## Erros conhecidos:
## Sintoma:
No cliente de e-mail (Evolution) aparece a seguinte mensagem de erro:
Unable to authenticate to IMAP server.
IMAP command failed: Plaintext authentication disabled
## Causa:
A autenticação em texte pleno está desabilitada.
## Solução:
No programa que prover o serviço de IMAP deve-se habilitar o Plaintext
caso realmente queira, é aconselhável usar criptografia.
——————————————————————————-
###############################################################################
# Referência:
###############################################################################
Debian Mail Server Setup with Postfix + Dovecot + SASL + Squirrel Mail:
http://www.debianadmin.com/debian-mail-server-setup-with-postfix-dovecot-sasl-squirrel-mail.html
Installing and Configuring Postfix on Debian:
http://wiki.debian.org/Postfix
Instalando o Postfix:
http://www.guiadohardware.net/tutoriais/servidor-emails/instalando-postfix.html
Servidor IMAP/IMAPS:
http://pinguimribeiro.wikidot.com/dovecot
Servidor SMTP com autenticação:
http://pinguimribeiro.wikidot.com/postfix-saslauth
Ver:
dpkg-reconfigure Postfix
dpkg-reconfigure –priority=low postfix
http://pinguimribeiro.wikidot.com/email-smtp
http://pinguimribeiro.wikidot.com/postfix-saslauth
http://pinguimribeiro.wikidot.com/servidor-debian