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,
Para que o envio de e-mail autenticado funcione, você deve remover a sua classe de IP da opção mynetworks. O motivo disso é que quando você configura o seu MUA para enviar e-mail autenticado a opção permit_sasl_authenticated autoriza o envio do e-mail.

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.

kyapanel/sasl_auth_pt_br.txt · Last modified: 2010/02/23 09:55 by beto_rvs
Recent changes RSS feed Creative Commons License Donate Driven by DokuWiki