SMTP autenticado com SASL na base Ldap do KyaPanel
A configuração abaixo permitirá smtp autenticado com uso do SASL acessando a base de dados LDAP do KyaPanel
Requisitos
Instale os arquivos necessários com o comando:
aptitude install libsasl2 sasl2-bin libsasl2-modules libdb3-util
Configurações
SASL
Crie o arquivo /etc/postfix/sasl/smtpd.conf com o seguinte conteúdo:
pwcheck_method: saslauthd mech_list: PLAIN LOGIN
Edite o arquivo /etc/default/saslauthd e modifique as opções START e MECHANISMS para que fique com o seguinte conteúdo:
START=yes MECHANISMS="ldap"
Crie o arquivo /etc/saslauthd.conf com o seguinte conteúdo (ajustando os parâmetros para sua base LDAP):
ldap_servers: ldap://127.0.0.1 ldap_port: 389 ldap_version: 3 ldap_referrals: no ldap_auth_method: bind ldap_search_base: ou=mail,ou=kya_panel,dc=dominio,dc=com,dc=br ldap_filter: (&(objectClass=qmailUser)(|(mail=%U@%d)(mailAlternateAddress=%U@%d)))
O usuário “postfix” deve ser adicionado ao grupo “sasl”, para que o postfix tenha acesso a autenticação. Este procedimento deve ser realizado após a instalação do postfix, assim como atente que o módulo smtpd possui chroot desabilitado.
adduser postfix sasl
Inicie o saslauthd
/etc/init.d/saslauthd start
- Testando o acesso a base LDAP
Execute:
testsaslauthd -u usuario@dominio -p senha_do_usuario
Se o resultado for:
0: OK "Success."
Então o SASL está com acesso a base LDAP, precisamos agora configurar o postfix para fazer uso da autenticação
Postfix
main.cf
Adicione ao arquivo /etc/postfix/main.cf as seguintes opções:
########### SMTP SASL ############ smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_sasl_path = smtpd
Será necessário fazer algumas alterações nas classes de controle. Olhe o exemplo abaixo para saber onde adicionar a opção permit_sasl_authenticated.
smtpd_client_restrictions =
permit_sasl_authenticated,
smtpd_sender_restrictions =
permit_sasl_authenticated,
smtpd_recipient_restrictions =
permit_sasl_authenticated,
smtpd_data_restrictions =
permit_sasl_authenticated,
master.cf
Agora precisamos tirar o daemon smtp de chroot, edite o arquivo /etc/postfix/master.cf e edite a linha:
smtp inet n - - - - smtpd
-o content_filter=kyapanel:kyapanel
de forma a ficar igual a linha abaixo:
smtp inet n - n - - smtpd
-o content_filter=kyapanel:kyapanel
Reinicie o postfix com o comando:
/etc/init.d/postfix restart
Pronto, seu servidor já funciona com SMTP autenticado. :)
SSL no Postfix
Crie o diretório:
mkdir -p /etc/postfix/ssl
Entre no diretório:
/etc/pki/tls
Gerar o certificado:
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key chmod 600 smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 cp smtpd.key smtpd.crt cacert.pem /etc/postfix/ssl/
OBS.: O seu /etc/hosts tem que estar devidamente configurado.
Edite o seu main.cf e insira essas linhas:
#### TLS smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom ##########
Edite o seu master.cf:
smtps inet n - n - - smtpd
-o content_filter=kyapanel:kyapanel
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
OBS.: Segundo o Anahuac não precisa colocar a linha com o content_filter, porém nunca testei sem essa opção. Se alguém testar, favor colocar o resultado aqui.
Após isso (eu sempre) executo:
postmap main.cf postmap master.cf
Para o postfix gerar os arquivos .db atualizados.
Reinicie o serviço do Postfix:
/etc/init.d/postfix restart
Somente assim o daemon smtps iniciará.
Referência:
SSL Postfix ref: http://www.opensourcehowto.org/how-to/postfix/postfix-with-openssl-and-saslauthd.html
SSL no Courier
O courier permite o uso das portas SSL (pop3s 995 e imaps 993). Sua configuração é bem simples.
Dentro do diretório:
/usr/lib/courier-imap/share/
Existe os scripts:
mkimapcert mkpop3dcert
Eles serão responsáveis pela geração dos certificados de SSL.
No diretório:
/usr/lib/courier-imap/etc/
Precisamos editar os arquivos: imapd.cnf e pop3d.cnf.
Edite:
[ req_dn ] C=US >>> C=BR ST=NY >>> ST=SP L=New York >>> L=SUA CIDADE O=SUA EMPRESA OU=Automatically-generated IMAP SSL key >>> UM NOME DA ORGANIZACAO CERTIFICADORA CN=localhost >>> NOME_COMPLETO_DO_SERVIDOR emailAddress=postmaster@example.com >>> EMAIL RESPONSÁVEL
Ao executar os scripts acima, ele automaticamente lê os arquivos de configuração e cria os certificados corretamente. Inclusive o Courier passa a utiliza-los.
Para verificar:
openssl s_client -connect localhost:993 openssl s_client -connect localhost:995
Outra maneira é ao configurar um cliente de email (Thunderbird, Vista Externa Rápida), você receberá a confirmação do certificado.
Lembrando que esses certificados são auto-assinados, portanto nos clientes de e-mail aparecerá esse erro para os usuários.