Gestión de servicios de sendmail en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Julio de 2014
 
 

Cómo configurar SMTP para que utilice TLS

SMTP puede utilizar la Seguridad de la capa de transporte (TLS) en la versión 8.13 de sendmail. Este servicio ofrece a los servidores y clientes SMTP comunicaciones autenticadas y privadas a través de Internet, además de protección frente a ataques o escuchas no deseadas. Tenga en cuenta que este servicio no está activado de manera predeterminada.

El siguiente procedimiento utiliza datos de ejemplo para mostrar cómo configurar los certificados que permiten que sendmail utilice TLS. Para obtener más información, consulte Compatibilidad para ejecutar SMTP con TLS en la versión 8.13 de sendmail.

  1. Conviértase en administrador.

    Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .

  2. Detenga sendmail.
    # svcadm disable -t network/smtp:sendmail
  3. Configure los certificados que permiten que sendmail utilice TLS.
    1. Complete los siguientes pasos:
      # cd /etc/mail
      # mkdir -p certs/CA
      # cd certs/CA
      # mkdir certs crl newcerts private
      # echo "01" > serial
      # cp /dev/null index.txt
      # cp /etc/openssl/openssl.cnf .
    2. Utilice el editor de texto que desee para cambiar el valor de dir en el archivo openssl.cnf de /etc/openssl a /etc/mail/certs/CA.
    3. Utilice la herramienta de línea de comandos openssl para implementar TLS.

      Tenga en cuenta que la siguiente línea de comandos genera texto interactivo.

      # openssl req -new -x509 -keyout private/cakey.pem -out cacert.pem -days 365 \
      -config openssl.cnf
      Generating a 1024 bit RSA private key
      .....................................++++++
      .....................................++++++
      writing new private key to 'private/cakey.pem'
      Enter PEM pass phrase:
      Verifying - Enter PEM pass phrase:
      -----
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) []:US
      State or Province Name (full name) []:California
      Locality Name (eg, city) []:Menlo Park
      Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Oracle
      Organizational Unit Name (eg, section) []:Solaris
      Common Name (eg, YOUR name) []:somehost.somedomain.example.com
      Email Address []:someuser@example.com
      req

      Este comando crea y procesa solicitudes de certificado.

      –nuevos

      Esta opción req genera una nueva solicitud de certificado.

      –x509

      Esta opción req crea un certificado autofirmado.

      –keyout private/cakey.pem

      Esta opción req permite asignar private/cakey.pem como nombre de archivo para la clave privada recién creada.

      –out cacert.pem

      Esta opción req permite asignar cacert.pem como archivo de salida.

      –days 365

      Esta opción req permite realizar un certificado por 365 días. El valor predeterminado es 30.

      –config openssl.cnf

      Esta opción req permite especificar openssl.cnf como archivo de configuración.

        Tenga en cuenta que este comando requiere que proporcione lo siguiente:

      • Country Name, como US.

      • State or Province Name, como California.

      • Locality Name, como Menlo Park.

      • Organization Name, como Oracle .

      • Organizational Unit Name, como Solaris.

      • Common Name, que representa el nombre de host completo del equipo. Para obtener más información, consulte la página del comando man check-hostname(1M).

      • Email Address, como someuser@example.com.

  4. (Opcional)Si necesita una nueva conexión segura, realice un nuevo certificado y fírmelo con la autoridad de certificación.
    1. Realice un nuevo certificado.
      # cd /etc/mail/certs/CA
      # openssl req -nodes -new -x509 -keyout newreq.pem -out newreq.pem -days 365 \
      -config openssl.cnf
      Generating a 1024 bit RSA private key
      ..............++++++
      ..............++++++
      writing new private key to 'newreq.pem'
      -----
      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) []:US
      State or Province Name (full name) []:California
      Locality Name (eg, city) []:Menlo Park
      Organization Name (eg, company) [Unconfigured OpenSSL Installation]:Oracle
      Organizational Unit Name (eg, section) []:Solaris
      Common Name (eg, YOUR name) []:somehost.somedomain.example.com
      Email Address []:someuser@example.com

      Este comando requiere que proporcione la misma información que indicó en el paso 3c.

      Tenga en cuenta que, en este ejemplo, el certificado y la clave privada están en el archivo newreq.pem.

    2. Firme el nuevo certificado con la autoridad de certificación.
      # cd /etc/mail/certs/CA
      # openssl x509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
      Getting request Private Key
      Generating certificate request
      # openssl ca -config openssl.cnf -policy policy_anything -out newcert.pem -infiles tmp.pem
      Using configuration from openssl.cnf
      Enter pass phrase for /etc/mail/certs/CA/private/cakey.pem:
      Check that the request matches the signature
      Signature ok
      Certificate Details:
              Serial Number: 1 (0x1)
              Validity
                  Not Before: Jun 23 18:44:38 2005 GMT
                  Not After : Jun 23 18:44:38 2006 GMT
              Subject:
                  countryName               = US
                  stateOrProvinceName       = California
                  localityName              = Menlo Park
                  organizationName          = Oracle
                  organizationalUnitName    = Solaris
                  commonName                = somehost.somedomain.example.com
                  emailAddress              = someuser@example.com
              X509v3 extensions:
                  X509v3 Basic Constraints: 
                      CA:FALSE
                  Netscape Comment: 
                      OpenSSL Generated Certificate
                  X509v3 Subject Key Identifier: 
                      93:D4:1F:C3:36:50:C5:97:D7:5E:01:E4:E3:4B:5D:0B:1F:96:9C:E2
                  X509v3 Authority Key Identifier: 
                      keyid:99:47:F7:17:CF:52:2A:74:A2:C0:13:38:20:6B:F1:B3:89:84:CC:68
                      DirName:/C=US/ST=California/L=Menlo Park/O=Oracle/OU=Solaris/\
                      CN=someuser@example.com/emailAddress=someuser@example.com
                      serial:00
      
      Certificate is to be certified until Jun 23 18:44:38 2006 GMT (365 days)
      Sign the certificate? [y/n]:y
      
      
      1 out of 1 certificate requests certified, commit? [y/n]y
      Write out database with 1 new entries
      Data Base Updated
      # rm -f tmp.pem

      En este ejemplo, el archivo newreq.pem contiene la clave privada y el certificado sin firmar. El archivo newcert.pem contiene el certificado firmado.

      utilidad x509

      Muestra información de certificados, convierte certificados a diversos formatos y firma solicitudes de certificado.

      aplicación ca

      Se utiliza para firmar solicitudes de certificado en una variedad de formatos y para generar CRL (listas de revocación de certificados).

  5. Agregue las siguientes líneas al archivo .mc para permitir que sendmail utilice los certificados.
    define(`confCACERT_PATH', `/etc/mail/certs')dnl
    define(`confCACERT', `/etc/mail/certs/CAcert.pem')dnl
    define(`confSERVER_CERT', `/etc/mail/certs/MYcert.pem')dnl
    define(`confSERVER_KEY', `/etc/mail/certs/MYkey.pem')dnl
    define(`confCLIENT_CERT', `/etc/mail/certs/MYcert.pem')dnl
    define(`confCLIENT_KEY', `/etc/mail/certs/MYkey.pem')dnl

    Para obtener más información, consulte Opciones de archivo de configuración para ejecutar SMTP con TLS.

  6. Vuelva a generar e instale el archivo sendmail.cf en el directorio /etc/mail.

    Para obtener instrucciones detalladas, consulte Modificación de la configuración de sendmail.

  7. Cree enlaces simbólicos de los archivos que creó con openssl a los archivos que definió en el archivo .mc.
    # cd /etc/mail/certs
    # ln -s CA/cacert.pem CAcert.pem
    # ln -s CA/newcert.pem MYcert.pem
    # ln -s CA/newreq.pem MYkey.pem
  8. Para mayor seguridad, debe denegar el permiso de lectura en el grupo y otros para MYkey.pem.
    # chmod go-r MYkey.pem
  9. Utilice un enlace simbólico para instalar los certificados de la autoridad de certificación en el directorio asignado a confCACERT_PATH.
    # C=CAcert.pem
    # ln -s $C `openssl x509 -noout -hash < $C`.0
  10. Para el correo seguro con otros hosts, instale sus certificados de host.
    1. Copie el archivo definido por la opción confCACERT del otro host en /etc/mail/certs/host.domain.cert.pem.

      Reemplace host.domain con el nombre completo del otro host.

    2. Utilice un enlace simbólico para instalar los certificados de la autoridad de certificación en el directorio asignado a confCACERT_PATH.
      # C=host.domain.cert.pem
      # ln -s $C `openssl x509 -noout -hash < $C`.0

      Reemplace host.domain con el nombre completo del otro host.

  11. Reinicie sendmail.
    # svcadm enable network/smtp:sendmail
Ejemplo 2-2  Encabezado de correo Received:

El siguiente es un ejemplo de un encabezado Received: para correo seguro con TLS.

Received: from his.example.com ([IPv6:2001:db8:3c4d:15::1a2f:1a2b])
        by her.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNUB8i242496
        (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
        for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:11 -0800 (PST)
Received: from her.example.com (her.city.example.com [192.168.0.0])
        by his.example.com (8.13.4+Sun/8.13.4) with ESMTP id j2TNU7cl571102
        version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
        for <janepc@her.example.com>; Tue, 29 Mar 2005 15:30:07 -0800 (PST)

Tenga en cuenta que el valor de verify es OK, lo que significa que la autenticación se realizó correctamente. Para obtener más información, consulte Macros para ejecutar SMTP con TLS.

Véase también