Domínios Virtuais com Postfix e SSL

20

Eu tenho uma configuração do servidor de email do Postfix para hospedar vários domínios virtuais (por exemplo, xxx.com e yyy.com ).

Os usuários configuram o servidor de e-mail de saída como mail.xxx.com e mail.yyy.com . Todos os servidores de correio referem-se ao mesmo servidor físico Postfix (mesmo IP, instância única do Postfix em execução neste servidor Linux).

Qual certificado SSL eu preciso para a opção de configuração Postfix smtpd_tls_cert_file ?

Ou preciso usar um único certificado para mail.xxx.com e dizer aos usuários de yyy.com que usem mail.xxx.com como servidor de saída? Isso quebraria a ilusão de servidores virtuais separados.

[Nota: os domínios são completamente separados. Estes não são múltiplos subdomínios compartilhando uma raiz comum].

    
por nimrodm 25.12.2011 / 13:26

2 respostas

10

Or do I have to use a single certificate for mail.xxx.com and tell users of yyy.com to use mail.xxx.com as their outgoing server?

Sim, você terá que fazer isso ou usar um certificado com vários atributos CommonName ou SubjAltName .

Não há como o Postfix saber qual hostname o cliente solicitou. Não existe tal coisa como eu. e. o cabeçalho HTTP / 1.1 Host que indica o domínio solicitado e o Postfix não suporta SNI ainda.

Se você realmente depende de ter dois domínios diferentes para seu servidor de e-mail, será necessário executar duas instâncias de smtpd em duas interfaces de rede / endereços IP separados. Normalmente, você escolhe um domínio "neutro" e informa seus usuários para usar isso.

    
por 25.12.2011 / 14:21
19

Na verdade ... Se você quiser que cada domínio use um certificado SSL válido, você tem 2 soluções: use um certificado de vários domínios ou configure cada domínio em um único IP. A primeira solução é terrível: esses certificados geralmente são muito caros (embora você possa encontrar os mais baratos), eles listarão todos os domínios que você deseja certificar no mesmo certificado e, o mais importante, eles serão emitidos apenas uma vez, apenas um novo domínio significa obter um certificado inteiramente novo.

A melhor solução é colocar cada domínio em seu próprio IP e, em seguida, combinar cada certificado com seu respectivo IP.

Veja como você faz isso no postfix.

Primeiro você colocará seus certificados para cada domínio no diretório / etc / postfix / (você também pode criar um diretório / etc / postfix / ssl / ) Nota: eu uso o Plesk, que usa arquivos de certificado .pem, mas você também pode usar arquivos .key e .cer (arquivos .pem são apenas uma concat de arquivos .key e .cer, nessa ordem)

então, você precisa modificar o arquivo master.cf em / etc / postfix /

originalmente, o meu ficou assim (provavelmente porque eu adicionei os 3 últimos IPs depois de configurar o servidor:

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

smtp inet n - n - - smtpd
smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticate d,reject -o smtpd_sender_restrictions=

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

Agora, para vincular cada certificado ao seu IP correspondente, faça o seguinte:

1.1.1.1- unix - n n - - smtp -o smtp_bind_address=1.1.1.1 -o smtp_bind_address6= -o smtp_address_preference=ipv4

2.2.2.2- unix - n n - - smtp -o smtp_bind_address=2.2.2.2 -o smtp_bind_address6= -o smtp_address_preference=ipv4

3.3.3.3- unix - n n - - smtp -o smtp_bind_address=3.3.3.3 -o smtp_bind_address6= -o smtp_address_preference=ipv4

4.4.4.4- unix - n n - - smtp -o smtp_bind_address=4.4.4.4 -o smtp_bind_address6= -o smtp_address_preference=ipv4

5.5.5.5- unix - n n - - smtp -o smtp_bind_address=5.5.5.5 -o smtp_bind_address6= -o smtp_address_preference=ipv4

#smtp inet n - n - - smtpd
#smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes
#submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions=

1.1.1.1:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem
1.1.1.1:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert1.pem -o smtpd_tls_key_file=/etc/postfix/cert1.pem

2.2.2.2:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem
2.2.2.2:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert2.pem -o smtpd_tls_key_file=/etc/postfix/cert2.pem

3.3.3.3:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem
3.3.3.3:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert3.pem -o smtpd_tls_key_file=/etc/postfix/cert3.pem

4.4.4.4:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem
4.4.4.4:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert4.pem -o smtpd_tls_key_file=/etc/postfix/cert4.pem

5.5.5.5:smtp inet n - n - - smtpd -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem
5.5.5.5:submission inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sender_restrictions= -o smtpd_tls_cert_file=/etc/postfix/cert5.pem -o smtpd_tls_key_file=/etc/postfix/cert5.pem

É isso ai !! (não esqueça de comentar as linhas originais como visto acima)

PS: para fazer o mesmo para o POP / IMAP se você usar o correio-imap, basta colocar cópias desses arquivos .pem em / usr / share / courier-imap / (ou no No caso do Plesk, você os coloca em / usr / share / ) e você nomeá-los da seguinte maneira: imapd.pem.xx.xx.xx.xx pop3d.pem.xx.xx.xx.xx

em que xx.xx.xx.xx é o respectivo endereço IP (os 2 certificados são cópias do mesmo arquivo)

Espero que isso ajude!

    
por 08.05.2014 / 15:53

Tags