octubre 03, 2019

Configuración básica de Sendmail con soporte SSL/TLS.

Configuración básica de Sendmail con soporte SSL/TLS.

Fuente: http://www.alcancelibre.org/staticpages/index.php/15-como-sendmail-apendice-01
Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org
© 1999-2016 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Es imprescindible primero estudiar y comprender los conceptos descritos en el documento titulado «Introducción a los protocolos de correo electrónico

Acerca de Sendmail.

Es uno de los más populares agentes de transporte de correo electrónico (MTA o Mail Transport Agent). Es un proyecto derivado delivermail y fue dirigido originalmente por Eric Allman a principios de la década de 1980. Aunque por largo tiempo se le ha criticado por muchos incidentes de seguridad, lo cierto es que éstos siempre han sido resueltos en tiempos razonables.
URL: http://www.sendmail.org/.

Acerca de SASL y Cyrus SASL.

SASL (Simple Authentication and Security Layer) es una implementación diseñada para la seguridad de datos en protocolos de Internet. Desempareja los mecanismos de la autenticación desde protocolos de aplicaciones, permitiendo, en teoría, cualquier mecanismo de autenticación soportado por SASL, para ser utilizado en cualquier protocolo de aplicación que sea capaz de utilizar SASL. En la actualidad SASL es un protocolo de IETF (Internet Engineering Task Force) que ha sido propuesto como estándar. Está especificado en el RFC 2222 creado por John Meyers en la Universidad Carnegie Mellon.
Cyrus SASL es una implementación de SASL que puede ser utilizada del lado del servidor o bien del lado del cliente y que incluye como principales mecanismos de autenticación soportados a ANONYMOUS, CRAM-MD5, DIGEST-MD5, GSSAPI y PLAIN. El código fuente incluye también soporte para los mecanismos LOGIN, SRP, NTLM, OPT y KERBEROS_V4.
URL: http://asg.web.cmu.edu/sasl/sasl-library.html.

Acerca de DSA.

DSA (Digital Signature Algorithm o Algoritmo de Firma digital) es un algoritmo creado por el NIST (National Institute of Standards and Technology o Instituto Nacional de Normas y Tecnología de EE.UU.), publicado el 30 de agosto de 1991, como propuesta para el proceso de firmas digitales. Se utiliza para firmar información, más no para cifrar ésta.
URL: http://es.wikipedia.org/wiki/DSA

Acerca de RSA.

RSA, acrónimo de los apellidos de sus autores, Ron Rivest, Adi Shamir y Len Adleman, es un algoritmo para el ciframiento de claves públicas que fue publicado en 1977, patentado en EE.UU. en 1983 por el Instituto Tecnológico de Michigan (MIT). RSA es utilizado ampliamente en todo el mundo para los protocolos destinados para el comercio electrónico.
URL: http://es.wikipedia.org/wiki/RSA

Acerca de X.509.

X.509 es un estándar ITU-T (estandarización de Telecomunicaciones de la International Telecommunication Union ) para infraestructura de claves públicas (PKI o Public Key Infrastructure). Establece los estándares para certificados de claves públicas y un algoritmo para validación de ruta de certificación. Este último se encarga de verificar que la ruta de un certificado sea válida bajo una infraestructura de clave pública determinada. Es decir, desde el certificado inicial —pasando por certificados intermedios— hasta el certificado de confianza emitido por una Autoridad Certificadora (CA o Certification Authority).
URL: http://es.wikipedia.org/wiki/X.509

Acerca de OpenSSL.

OpenSSL es una implementación libre de código fuente abierto, de los protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro) y TLS (Transport Layer Security o Seguridad para Nivel de Transporte). Está basado sobre el extinto proyecto SSLeay iniciado por Eric Young y Tim Hudson.
URL: http://www.openssl.org/

Equipamiento lógico necesario.

Instalación a través de yum.

Si se utiliza de CentOS o Red Hat™ Enterprise Linux ejecute lo siguiente:
yum -y install sendmail sendmail-cf m4 make \
    cyrus-sasl cyrus-sasl-plain

Procedimientos.

Definiendo Sendmail como agente de transporte de correo predeterminado.

Ejecute alternatives con la opción --config y el valor mta:
alternatives --config mta
Lo anterior devolverá una salida similar a la siguiente, donde deberá elegir entre postfix y sendmail como MTA predeterminado del sistema:

Hay 2 programas que proporcionan 'mta'.

  Selección    Comando
-----------------------------------------------
   1           /usr/sbin/sendmail.postfix
*+ 2           /usr/sbin/sendmail.sendmail

Presione Intro para mantener la selección actual[+] o bien escriba el número de la selección:  2
Defina Sendmail como agente de transporte de correo (MTA, Mail Transport Agent), seleccionado éste
Si estuviera presente postfix, desactive y detenga éste y active e inicie el servicio sendmail:
service postfix stop
chkconfig postfix off
service sendmail start
chkconfig sendmail on

Certificado SSL/TLS.

Es importante generar un certificado SSL/TLS personalizado.
Elimine el certificado de prueba que está asociado al nombre de anfitrión localhost.
rm -f /etc/pki/tls/certs/sendmail.pem
La creación de la firma digital y certificado —en un único archivo con extensión *.pem— requiere utilizar una firma con algoritmo RSA de 4096 octetos (bits), estructura X.509 y sin DES. En el siguiente ejemplo, se establece una validez por 1825 días (cinco años) para el certificado creado:
openssl req -sha256 -new -x509 -nodes -newkey rsa:4096 -days 1825 \
    -out /etc/pki/tls/certs/sendmail.pem \
    -keyout /etc/pki/tls/certs/sendmail.pem
Lo anterior solicitará se ingresen varios datos:
  • Código de dos letras para el país.
  • Estado o provincia.
  • Ciudad.
  • Nombre de la empresa o razón social.
  • Unidad o sección.
  • Nombre del anfitrión. En el formato nombre.dominio.tld o dominio.tld. Ejemplo: alcancelibre.org, mail.alcancelibre.org, correo.alcancelibre.org. Por si acaso lo desconoce, tld corresponde a las siglas de Top Level Domain, es decir Dominio de Primer Nivel, como serían .com, .net, .org, .info, .mx, etc.
  • Dirección de correo.
La salida será algo similar a lo siguiente:
Generating a 1024 bit DSA private key
writing new private key to 'smtp.key'
-----
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) [GB]:MX
State or Province Name (full name) [Berkshire]:Distrito Federal
Locality Name (eg, city) [Newbury]:Mexico
Organization Name (eg, company) [My Company Ltd]:Empresa, S.A. de C.V.
Organizational Unit Name (eg, section) []:Unidad de negoico responsable
Common Name (eg, your name or your server's hostname) []:mail.dominio.com
Email Address []:webmaster@dominio.com
Si definió un nombre de anfitrión absoluto (ejemplo: mail.dominio.com), el certificado sólo será válido cuando el servidor de correo electrónico sea invocado con el nombre definido en el campo Common Name. Es decir, sólo podrá utilizarlo cuando se defina mail.dominio.com como servidor SMTP/IMAP/POP3 con soporte TLS desde el cliente de correo electrónico. Funcionará incorrectamente si se invoca al servidor como, por mencionar un ejemplo, correo.dominio.com.
A fin de facilitar a los clientes de correo electrónico el poder gestionar una futura actualización de certificado, conviene añadir una huella distintiva indubitable (fingerprint) al certificado.
openssl x509 -subject -fingerprint -noout \
    -in /etc/pki/tls/certs/sendmail.pem
Es indispensable que el archivo *.pem tenga permisos de acceso de lectura y escritura sólo para root:
chmod 600 /etc/pki/tls/certs/sendmail.pem
chown root:root /etc/pki/tls/certs/sendmail.pem

Alta de cuentas de usuario y asignación de contraseñas.

La autenticación para SMTP, a través de cualquier método —PLAIN, LOGIN, Digest-MD5 o CRAM-MD5— requiere se gestione a través del servicio saslauthd.
Si los usuarios se van a dar de alta siguiendo el formato usuario@dominio.com en lugar de sólo usuario, una práctica común en los servidores con múltiples dominios virtuales, es necesario añadir al servicio saslauthd la opción -r, la cual permite combinar el nombre de usuario y dominio antes de pasar por el mecanismo de autenticación. Si éste es el caso, se debe editar el archivo /etc/sysconfig/saslauthd:
vi /etc/sysconfig/saslauthd
Y añadir la opción -r a los argumentos de FLAGS:
# Options sent to the saslauthd. If the MECH is other than "pam" uncomment
# the next line.
# DAEMONOPTS=--user saslauth

# Additional flags to pass to saslauthd on the command line.  See saslauthd(8)
# for the list of accepted flags.
FLAGS=-r
Añada el servicio al arranque del sistema e inicie éste ejecutando lo siguiente:
chkconfig saslauthd on
service saslauthd start
El alta de usuarios es la misma que como con cualquier otro usuario del sistema. Sendmail utilizará el servicio saslauthd para autenticar a éstos a través de los métodos PLAIN y LOGIN.
Se sugiere se asignar /dev/null o /sbin/nologin como intérprete de mandatos para los usuarios de correo. Ejemplo:
useradd -s /dev/null usuario
La asignación de contraseñas para permitir autenticar a través de SMTP, POP3, e IMAP, utilizando el método PLAIN o bien el método LOGIN, se hace exactamente igual que con cualquier otra cuenta de usuario del sistema:
passwd usuario
El sistema solicitará se confirme la nueva contraseña. Prefiera utilizar buenas contraseñas y evitará así problemas de seguridad.
Nota.
La asignación de contraseñas para autenticar SMTP a través de métodos CRAM-MD5 y DIGEST-MD5 puede hacerse ejecutando saslpasswd2 con el nombre de usuario como argumento:
saslpasswd2 usuario
Cabe señalar que sólo algunos clientes de correo electrónico tienen de soporte para autenticar a través de estos métodos.
Puede mostrarse la lista de los usuarios con contraseña asignada a través de SASL-2 ejecutando sasldblistusers2.

Dominios a administrar.

Edite el archivo /etc/mail/local-host-names:
vi /etc/mail/local-host-names
Establezca los dominios locales que serán administrados:
dominio1.com
dominio2.net
dominio3.org
dominio4.com.mx

Control de acceso

Edite el archivo /etc/mail/access para definir las listas de control de acceso:
vi /etc/mail/access
Este archivo debe incluir todas las direcciones IP locales del servidor —las que se devuelvan tras ejecutar ip addr show.
Puede incluir también la lista direcciones IP, dominios o cuentas de correo electrónico a las que se quiera otorgar permisos de re-transmisión sin restricciones o con permiso para enviar correo electrónico sólo a cuentas locales. Puede definir también una lista negra de direcciones de correo electrónico, dominios y direcciones IP a las que se desee denegar el acceso. Considere que:
  • Cualquier elemento con RELAY tendrá permitido enviar correo electrónico, sin necesidad de autenticar y re-transmitir éste sin restricción alguna.
  • Cualquier elemento con OK tendrá permitido enviar correo electrónico, sin necesidad de autenticar pero sólo a las cuentas locales.
  • Cualquier elemento con REJECT tendrá prohibida cualquier tipo de comunicación de correo electrónico.
Nota.
Jamás configure una segmento completo de red local con RELAY, ya que dejaría de tener sentido utilizar autenticación a través de SMTP y potencialmente podría permitir que los problemas de seguridad de maquinas infectadas con virus, gusanos o troyanos, se magnifiquen, siendo que permitiría el envío, sin restricciones, de correo electrónico infectado o bien cantidades extraordinarias de spam, originadas por los equipos cuya seguridad se haya visto comprometida.
Ejemplo de configuración para el archivo /etc/mail/access:
Connect:localhost.localdomain RELAY
Connect:localhost  RELAY
Connect:127.0.0.1  RELAY
#
# Dirección IP del propio servidor.
Connect:192.168.70.51  RELAY
#
# Otros servidores de correo en la LAN a los que se les permitirá enviar
# correo libremente a través del propio servidor de correo.
Connect:192.168.70.52  RELAY
#
# Direcciones IP que sólo podrán entregar correo de forma local, es decir,
# no pueden enviar correo fuera del propio servidor.
Connect:192.168.2.24  OK
#
# Lista negra
usuario@molesto.com REJECT
productoinutil.com.mx REJECT
10.4.5.6  REJECT
#
# Bloques de Asia Pacific Networks, ISP desde el cual se emite la mayor
# parte del Spam del mundo.
# Las redes involucradas abarcan Australia, Japón, China, Corea del Sur, Taiwan,
# Hong Kong e India por lo que bloquear el correo de dichas redes significa
# cortar comunicación con estos países, pero acaba con entre el 60% y 80%
# del Spam.
222   REJECT
221   REJECT
220   REJECT
219   REJECT
218   REJECT
212   REJECT
211   REJECT
210   REJECT
203   REJECT
202   REJECT
140.109   REJECT
133   REJECT
61   REJECT
60   REJECT
59   REJECT
58   REJECT

Alias de root.

Es peligroso autenticarse con la cuenta de root para revisar los mensajes de correo electrónico originados por el sistema. Defina un alias hacia el cual se entregará todo el correo electrónico que originalmente fue dirigido a root.
Edite el archivo /etc/aliases:
vi /etc/aliases
Defina al final del archivo la cuenta de usuario regular al que le será entregado el correo electrónico originalmente iba dirigido a root:
root:  fulano
Ejecute newaliases para convertir el archivo /etc/aliases en /etc/aliases.db y verificar que la sintaxis esté correcta o determinar si existen aliases duplicados.
newaliases
Lo anterior debe devolver una salida similar a la siguiente:
/etc/aliases: 77 aliases, longest 10 bytes, 777 bytes total

Configuración de opciones de Sendmail.

Edite el archivo /etc/mail/sendmail.mc.
vi /etc/mail/sendmail.mc

confSMTP_LOGIN_MSG.

Esta opción permite establecer el mensaje de bienvenida al establecer la conexión al servidor y ocultar el nombre y la versión de Sendmail para agregar seguridad por oscuridad. Funciona haciendo que quien establezca una conexión hacia el servidor sea incapaz determinar qué versión de Sendmail se está utilizando y con ésto dificultar se puedan determinar las debilidades del servicio o determinar una vulnerabilidad específica. Habilite la siguiente línea resaltada eliminando el dnl y el espacio sobrante:
dnl # Do not advertize sendmail version.
dnl #
define(`confSMTP_LOGIN_MSG',`$j Sendmail; $b')dnl
dnl #
dnl # default logging level is 9, you might want to set it higher to
dnl # debug the configuration
Guarde los cambios y salga del editor.
Reinicie el servicio:
service sendmail restart
Realice una conexión al puerto 25. Obtendrá una salida similar a la siguiente:
$ telnet 127.0.0.1 25
220 mail.dominio.com ESMTP Sendmail ; Mon, 17 May 2004 02:22:29 -0500
quit
221 2.0.0 mail.dominio.com closing connection
Connection closed by foreign host.
$

confAUTH_OPTIONS.

Vuelva a editar el archivo /etc/mail/sendmail.mc:
vi /etc/mail/sendmail.mc
La siguiente línea resaltada permite realizar el proceso de autenticación a través del puerto 25 utilizando el método PLAIN o bien el método LOGIN, los cuales transmiten el nombre de usuario junto con su correspondiente contraseña en texto simple, garantizando 100% de compatibilidad con todos los clientes de correo electrónico existentes. Sin embargo ésto también implica un enorme riesgo de seguridad, por lo cual se recomienda implementar seguridad a través de SSL/TLS.
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS',`A')dnl
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
Inhabilite ésta añadiendo un dnl y un espacio como se muestra a continuación:
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
dnl define(`confAUTH_OPTIONS',`A')dnl
dnl #
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
Localice la siguiente línea resaltada y habilite ésta eliminado el dnl y el espacio sobrante como se muestra a continuación:
dnl # The following allows relaying if the user authenticates, and disallows
dnl # plaintext authentication (PLAIN/LOGIN) on non-TLS links
dnl #
define(`confAUTH_OPTIONS',`A p')dnl
dnl # 
dnl # PLAIN is the preferred plaintext authentication method and used by
dnl # Mozilla Mail and Evolution, though Outlook Express and other MUAs do
Lo anterior hará que sea obligatorio a utilizar SSL/TLS para todas las conexiones con cualquier cliente de correo electrónico

TRUST_AUTH_MECH y confAUTH_MECHANISMS.

El soporte de autenticación requiere habilitar las siguientes dos líneas resaltadas:
dnl # guaranteed secure.
dnl # Please remember that saslauthd needs to be running for AUTH. 
dnl #
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl #     cd /etc/pki/tls/certs; make sendmail.pem
Elimine el soporte para GSSAPI, DIGEST-MD5 y CRAM-MD5. El primero requiere un servidor Kerberos y para los otros el algoritmo de ciframiento es demasiado débil para ser utilizado sin SSL/TLS y además sólo es soportado por algunos clientes de correo electrónico.
dnl # guaranteed secure.
dnl # Please remember that saslauthd needs to be running for AUTH. 
dnl #
TRUST_AUTH_MECH(`EXTERNAL LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL LOGIN PLAIN')dnl
dnl #
dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl #     cd /etc/pki/tls/certs; make sendmail.pem

Soporte para SSL/TLS.

Habilite las siguientes líneas resaltadas para hacer el uso de la firma digital y certificado creados:
dnl # Complete usage:
dnl #     make -C /etc/pki/tls/certs usage
dnl #
define(`confCACERT_PATH',`/etc/pki/tls/certs')dnl
define(`confCACERT',`/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT',`/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY',`/etc/pki/tls/certs/sendmail.pem')dnl
dnl #
dnl # This allows sendmail to use a keyfile that is shared with OpenLDAP's
dnl # slapd, which requires the file to be readble by group ldap

DAEMON_OPTIONS.

De modo predeterminado Sendmail sólo escucha peticiones a través de la interfaz de retorno del sistema (127.0.0.1). Localice la siguiente línea resaltada:
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
Elimine el valor Addr=127.0.0.1 y la coma sobrante:
dnl # 127.0.0.1 and not on any other network devices. Remove the loopback
dnl # address restriction to accept email from the internet or intranet.
dnl #
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 587 for
dnl # mail from MUAs that authenticate. Roaming users who can't reach their
El puerto 587 (submission) puede ser utilizado también para envío de correo electrónico. Por estándar se utiliza como puerto alternativo en los casos donde un cortafuegos impide a los usuarios acceder hacia servidores de correo electrónico —que normalmente utilizan el puerto 25. Localice y habilite la siguiente línea resaltada:
dnl # preferred sendmail daemon due to port 25 being blocked or redirected find
dnl # this useful.
dnl #
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
dnl #
dnl # The following causes sendmail to additionally listen to port 465, but
dnl # starting immediately in TLS mode upon connecting. Port 25 or 587 followed
El acceso con STARTTLS se realizará a través de los puertos 25 o 587, sin embargo el acceso con SSL se realizará a través del puerto 465. Localice y habilite la siguiente línea resaltada:
dnl #
dnl # For this to work your OpenSSL certificates must be configured.
dnl #
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
dnl #
dnl # The following causes sendmail to additionally listen on the IPv6 loopback
dnl # device. Remove the loopback address restriction listen to the network.

FEATURE(`accept_unresolvable_domains').

A fin de permitir el envío local del correo electrónico para los mensajes y alertas del sistema en un escenario sin servidores DNS, se utiliza la opción FEATURE(`accept_unresolvable_domains'). Debe inhabilitarse para impedir se acepte correo de dominios inexistentes (generalmente utilizado para el envío de correo masivo no solicitado o Spam). Inhabilite la línea añadiendo un dnl y un espacio:
dnl # protect yourself from spam. However, the laptop and users on computers
dnl # that do not have 24x7 DNS do need this.
dnl #
dnl FEATURE(`accept_unresolvable_domains')dnl
dnl #
dnl FEATURE(`relay_based_on_MX')dnl
dnl #

Archivo plantilla de todo lo anterior.

Si lo prefiere, puede descargar un archivo plantilla con todas las opciones para el archivo /etc/mail/sendmail.mc mencionadas arriba.
wget http://www.alcancelibre.org/linux/secrets/sendmail.mc \
    -O /etc/mail/sendmail.mc

Enmascaramiento.

El enmascaramiento sólo es necesario en casos donde el nombre de anfitrión del sistema es distinto al del dominio(s) administrado(s) en el servidor.
Habilite las siguientes tres líneas resaltadas eliminando los dnl y los espacio sobrantes y adapte el valor de MASQUERADE_AS para definir la máscara que utilizará el servidor para enviar correo electrónico (es decir, define lo que va después de la @ en la dirección de correo):
dnl # The following example makes mail from this host and any additional
dnl # specified domains appear to be sent from mydomain.com
dnl #
MASQUERADE_AS(`dominio1.com')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
FEATURE(masquerade_envelope)dnl
dnl #
dnl # masquerade not just @mydomainalias.com, but @*.mydomainalias.com as well
dnl #
FEATURE(masquerade_entire_domain)dnl
dnl #
dnl MASQUERADE_DOMAIN(localhost)dnl
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
En el ejemplo anterior dominio1.com es sólo un ejemplo hipotético. Remplace por un dominio real.
Si se van a administrar múltiples dominios, añada aquellos que considere deban conservar su propia máscara. Utilice la opción MASQUERADE_EXCEPTION para cada uno como se muestra en el siguiente ejemplo:
dnl # specified domains appear to be sent from mydomain.com
dnl #
MASQUERADE_AS(`dominio1.com')dnl
MASQUERADE_EXCEPTION(`dominio2.net')dnl
MASQUERADE_EXCEPTION(`dominio3.org')dnl
MASQUERADE_EXCEPTION(`dominio4.com.mx')dnl
dnl #
dnl # masquerade not just the headers, but the envelope as well
dnl #
En el ejemplo anterior dominio1.com, dominio2.net, dominio3.org y dominio4.com.mx son sólo ejemplos hipotéticos. Remplace por dominios reales.

Control del correo chatarra (spam) a través de DNSBLs.

Si se desea utilizar listas negras para mitigar el correo chatarra (spam), pueden añadir la siguiente línea para definir la lista negra de SpamCop.net, casi al final del archivo /etc/mail/sendmail.mc y justo arriba de MAILER(smtp)dnl:
dnl MASQUERADE_DOMAIN(localhost.localdomain)dnl
dnl MASQUERADE_DOMAIN(mydomainalias.com)dnl
dnl MASQUERADE_DOMAIN(mydomain.lan)dnl
FEATURE(`enhdnsbl', `bl.spamcop.net', `"Spam blocked see: http://spamcop.net/bl.shtml?"$&{client_addr}', `t')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
dnl MAILER(cyrusv2)dnl

Iniciar, detener o reiniciar servicio.

Ejecute lo siguiente para aplicar cambios realizados a la configuración:
service sendmail restart
Ejecute lo siguiente para iniciar por primera vez el servicio:
service sendmail start
Ejecute lo siguiente para detener el servicio:
service sendmail stop
Examine el contenido de /var/log/maillog ejecutando tail con la opción -f para detectar errores en la configuración:
tail -f /var/log/maillog

Comprobaciones.

Realice una conexión con nc (netcat) o bien con telnet, hacia al puerto 25 del anfitrión local:
telnet 127.0.0.1 25

Ejecute EHLO usando como argumento el nombre del dominio configurado y pulse la tecla ENTER. La salida deberá devolver todas las funciones del servidor y entre éstas debe devolver una línea que indica STARTTLS. La salida puede ser similar a la siguiente:
220 dominio.com ESMTP Sendmail ; Sat, 19 Jun 2010 18:18:02 -0500
ehlo dominio.com
250-dominio.dom Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-STARTTLS
250-DELIVERBY
250 HELP
QUIT
Ejecute QUIT y pulse la tecla ENTER para salir.
Ejecute lo siguiente para verificar el soporte SSL/TLS estableciendo conexiones SSL y TLS hacia los puertos 25, 465 y 587:
openssl s_client -crlf -connect 127.0.0.1:25 -starttls smtp
openssl s_client -connect 127.0.0.1:465
openssl s_client -crlf -connect 127.0.0.1:587 -starttls smtp
La salida de cualquiera de los anteriores será muy extensa, mostrando la información del certificado utilizado.
Ingrese EHLO con el dominio configurado. La salida deberá devolver todas las funciones del servidor y entre éstas debe devolver una línea que indica AUTH LOGIN PLAIN. La salida después del la información del certificado puede ser similar a la siguiente:
220 dominio.com ESMTP Sendmail ; Sat, 19 Jun 2010 18:18:02 -0500
ehlo dominio.com
250-dominio.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-DELIVERBY
250 HELP
QUIT
Realice el ejemplo de conexión para SMTP descrito en el documento titulado Introducción a los protocolos de correo electrónico para verificar el funcionamiento del envío de correo a través de SSL/TLS.

Modificaciones necesarias en el muro cortafuegos.

Como medida de seguridad siempre abra los puertos del cortafuegos sólo hasta después de finalizar la configuración del servidor de correo electrónico y que sólo hasta que haya comprobado las configuraciones.
El funcionamiento normal de un servicio de correo electrónico estándar requiere abrir los puertos 25 (smtp), 465 (smtps) y 587 (submission), todos a través de TCP.

Servicio iptables.

Ejecute lo siguiente:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
Ejecute lo siguiente para guardar los cambios:
service iptables save
O bien edite el archivo /etc/sysconfig/iptables:
vi /etc/sysconfig/iptables
Añada lo siguiente:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
Reinicie el servicio:
service iptables restart

Shorewall.

Edite el archivo /etc/shorewall/rules:
vi /etc/shorewall/rules
Las reglas corresponderían a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO  DEST  SOURCE
#    PORT  PORT(S)1
ACCEPT all fw tcp 25,465,587
Reinicie el servicio para aplicar los cambios:
service shorewall restart

Equipamiento lógico para servicios de IMAP y POP3.

Dovecot es una ligera, rápida y transparente solución de fácil administración para los servicios de IMAP y POP3. Sólo es apropiado para servidores que serán accedido preferentemente a través de POP3, menos de 100 usuarios o bien a través de IMAP con buzones de menos de 50 MB y baja a mediana carga de trabajo. Si así fuesen las circunstancias, por favor consulte el documento titulado «Configuración de Dovecot con soporte SSL/TLS.».
Cyrus IMAP es una compleja pero muy robusta y escalable solución que permite acceder hacia enormes cantidades de correo electrónico a través de IMAP o POP3 con mediana a elevada carga de trabajo. Si así fuesen las circunstancias, por favor consulte el documento titulado «Configuración de Cyrus IMAP con soporte SSL/TLS».

Lecturas posteriores.

Se recomienda consultar los documentos titulados «Configuración de Cyrus IMAP con soporte SSL/TLS», «Configuración de Dovecot con soporte SSL/TLS», «Configuración avanzada de Sendmail», «Cómo instalar y configurar Spamassassin» y «Configuración simple para Antivirus y Antispam».

octubre 02, 2019

Cómo mover Windows desde HDD a SSD manteniendo todos los datos


Cómo mover Windows desde HDD a SSD manteniendo todos los datos

Publicado el

en https://www.muycomputer.com/2018/05/24/mover-windows-desde-hdd-a-ssd/

Alternativas a Windows 10

El reemplazo de un disco duro por una SDD (unidades de estado sólido) ofrece grandes ventajas en cualquier equipo informático. Mayor velocidad en transferencia de datos, mejores tiempos de arranque del sistema operativo, en el acceso a las aplicaciones o en los reinicios desde modos de suspensión o hibernación.

La ausencia de partes móviles de SSD les permite mejorar el ruido emitido, la emisión calorífica y el consumo, mientras que formatos avanzados como M.2 con tamaños similares a una tarjeta de memoria, permiten crear equipos cada vez más delgados y ligeros, un aspecto esencial en informática móvil.

Reemplazar físicamente un disco duro por una SSD es sencillo como vimos en esta guía práctica. A partir de ahí tenemos que instalar el sistema operativo. Uno de los métodos es reemplazar la unidad arrancando desde la SSD y realizar una instalación limpia sobre ella (guardando previamente los archivos personales en una unidad externa) o utilizar discos de recuperación del fabricante.

Pero qué ocurre si queremos conservar el sistema operativo existente, aplicaciones, configuraciones y datos personales de usuario, trasladando una copia entera de todos los datos del disco duro al SSD. La mayoría de fabricantes incluye herramientas de clonación con la compra del SSD. La idea básica es crear una imagen de la partición del sistema operativo del disco duro y trasladarla a la SSD.

En un PC de sobremesa, simplemente se instala el SSD junto al disco duro y se realiza la clonación.

Si tenemos un ordenador portátil con una sola bahía el tema cambia y necesitamos kits de conversión y/o cableado que pase los datos desde un USB a la interfaz de la SSD, generalmente SATA, antes de realizar el reemplazo de las unidades.

Si no tenemos este tipo de adaptadores ni software de clonación, podemos utilizar otro método que sirve para mover cualquier sistema Windows instalado en un disco duro y copiarlo después en un USB, manteniendo las particiones, sistema, aplicaciones y todos los datos.

Eliminar archivos innecesarios

La ventaja de los discos duros sobre SSD es su menor precio por GB y por ello los discos duros suelen tener una capacidad superior a SSD. La clonación es una copia 1:1 por lo que la capacidad de la SSD debe tener un tamaño mínimo a la cantidad de datos a trasladar. Un ejemplo. Si tenemos una partición con 300 Gbytes datos ocupados en el disco duro y la SSD es de 250 GB, tendremos que reducir 50 GB para poder trasladar los datos.

En estos casos o adquirimos unidades de estado sólido de mayor capacidad (más caras) o debemos eliminar previamente archivos innecesarios, liberando espacio con el limpiador de disco de Windows o desinstalando algunas aplicaciones o juegos.

Descargar e instalar Macrium Reflect

Todo el proceso de migración podemos realizarlo con el software Macrium Reflect, disponible en versión gratuita y una trial para prueba durante 30 días. Descargamos e instalamos la aplicación en nuestro equipo.

HDD_SSD_2

Crear la unidad de arranque

El instalador de Macrium se encargará de descargar los archivos necesarios Windows PE, para crear la unidad de arranque que podremos grabar en una unidad óptica CD/DVD, en un pendrive USB o en una unidad de almacenamiento externo que también utilizaremos en el paso siguiente para crear la imagen de respaldo.

HDD_SSD_3

Crear la copia de respaldo

Desde el mismo Macrium Reflect podemos crear la copia de seguridad de nuestro equipo. Activa la creación de una “copia de seguridad -imagen de disco”, marca todas las particiones y selecciona la carpeta de la unidad externa donde se creará.

HDD_SSD_5

Reemplaza el disco duro por la SSD

Una vez creado el disco de arranque y la copia de respaldo es la hora de reemplazar el disco duro por la SSD. Como la inmensa mayoría de estas unidades SATA tiene un formato estándar de 2,5 pulgadas necesitaremos un adaptador a 3,5 pulgadas para acoplarla en nuestra torre de PC. Si se trata de un ordenador portátil es cuestión de sustituir una unidad por otra.

HDD_SSD_7

Restaurar la copia de respaldo

Una vez instalada la SSD, reinicia el equipo desde la unidad de arranque creada en CD/DVD, pendrive o disco externo USB. Selecciona la imagen de copia de seguridad creada.

HDD_SSD_8

Selecciona copiar todos los datos en la SSD de destino arrastrando y soltando cada partición en la unidad de estado sólido. Macrium Reflect realiza todo el proceso de forma automática e incluso cambia el tamaño de las particiones para que quepan en la SSD, aunque conviene señalar la precaución precia, la SSD tiene que tener un tamaño superior a la cantidad de datos a trasladar.

Alternativas

Personalmente, en un reemplazo de la unidad de almacenamiento y tras salvaguardar los archivos personales, recomendaría la realización de una instalación limpia desde cero utilizando un disco de arranque o los discos de recuperación del fabricante, pero si necesitas realizar una clonación del disco duro para mover una instalación completa de Windows y sus datos, este método utilizando aplicaciones como Macrium Reflect funciona realmente bien.

La mayoría de fabricantes incluye herramientas de clonación con la compra de una SSD. La idea básica es la misma que hemos realizado aquí: crear una imagen de la partición del sistema operativo del disco duro y trasladarla a la SSD.

¿Cómo poner el conteo de las filas en una consulta en MySql?

 ¿Cómo poner el conteo de las filas en una consulta en MySql? SELECT  @rownum := @rownum + 1 AS contador,  /*Contador*/ t.*  /* nombre d...