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.

septiembre 30, 2019

Códigos útiles .htaccess para WordPress y no web normales

Códigos útiles .htaccess para WordPress y no web normales

Escrito por  Luis Méndez Alejo

Códigos útiles .htaccess para sitios web WordPress

Hoy en día, la mayoría de ofertas de alojamiento web son para el servidor web Apache . Es una solución mucho más barata en comparación con la plataforma IIS en Windows. Apache es bien conocido por su capacidad para usar .htaccess, donde podemos controlar determinados aspectos de nuestro sitio web, incluyendo el rendimiento.
Uno de los más populares es redirigir cualquier dominio sin www al dominio con www.. En este ejemplo, si intentas tener acceso a https://webempresa.com, el servidor te redirigirá a https://www.webempresa.com. Esto puede garantizar que el PageRank no se divida en dos. Para tu información, Google trata a estos dos dominios como diferentes. He aquí una guía de los códigos .htaccess que puedes utilizar en tus sitios web.

Redirigir la URL sin www a la dirección con www

Como explique anteriormente, el siguiente código redirigirá de la URL de tu dominio sin alias www a la URL de tu dominio con alias www.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^webempresa.com [NC]
RewriteRule ^(.*)$ http://www.webempresa.com/$1 [L,R=301]

Antes de avanzar, seguramente te habrás hecho a ti mismo una pregunta ¿donde localizo el archivo .htaccess?

El archivo .htaccess es un archivo "oculto" (el . delante del nombre indica que se trata de archivo oculto).
Para poder visualizarlo debes:
  1. Accede a tu cPanel.
  2. Ve al Administrador de Archivos (te abre un diálogo y una de las opciones es "Mostrar archivos ocultos" que debe estar seleccionada).
  3. Navega a la carpeta /public_html.
  4. Ahí podrás localizar el archivo .htaccess (no confundir con htaccess.txt que si es visible).
Ahora que ya lo tienes claro, seguimos conociendo otros códigos que puedes utilizar en tu archivo .htaccess.

Cómo cambiar de la URL con alias www a la URL sin alias www

Y el siguiente código debe redirigir al usuario de la dirección URL de tu dominio con www a la dirección URL sin www.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.webempresa.com [NC]
RewriteRule ^(.*)$ http://webempresa.com/$1 [L,R=301]

Redirigir siempre al alias www cualquier dominio apuntado

Este código es útil para redirigir uno o varios dominios para que trabajen con el alias www usando comodines www.*.*:
RewriteCond %{REQUEST_URI} !^/robots\.txt$ [NC]
RewriteCond  %{HTTP_HOST} !^www\.[a-z-]+\.[a-z]{2,6} [NC]
RewriteCond %{HTTP_HOST} ([a-z-]+\.[a-z]{2,6})$   [NC]
RewriteRule  ^/(.*)$ http://%1/$1 [R=301,L]
Si tenemos varios dominios gestionado en la cuenta de Hosting, para no tener que crear una redirección 301 de uno en uno cada dominio, otra forma de hacerlo es redirigiendo todos los .tld de los dominios utilizados "sin alias www" a dominios "con alias www":
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]


Redirigir url de una carpeta a otra carpeta del mismo dominio

Una Redirección 301 útil cuando cometemos el error de indicar una carpeta nombrada de forma incorrecta o que fue renombrada posteriormente es la siguiente, de forma que podamos redireccionar peticiones que vayan a /carpeta1/ para que aterricen en /carpeta2/
Se deben añadir este tipo de redirecciones en el archivo .htaccess, en la parte más alta del mismo posible:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^carpeta1/(.*)$ http://dominio.com/carpeta2/$1 [R=301,L]

Redirigir un dominio a otro dominio

Para evitar que las urls se vean afectadas al cambiar de un dominio a otro dominio es conveniente que hagas la siguiente redirección en .htaccess de forma que quieres vengan de enlaces de la antigua url aterricen en la nueva url de forma correcta, lo contrario afectaría al posicionamiento y habría un aumento de pérdida de tráfico.
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^anteriordominio.com$ [OR]
  RewriteCond %{HTTP_HOST} ^www.anteriordominio.com$
  RewriteRule (.*)$ http://www.nuevodominio.com/$1 [R=301,L]
</IfModule>

Redirigir del localhost (tu PC) a un dominio remoto

Con esta regla puedes redireccionar de localhost (tu ordenador) a tu sitio web remoto (Hosting):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule (.*)$ http://www.dominio.com/$1 [R=301,L]
Si solo quieres redireccionar un subdominio concreto puedes crear la siguiente regla en tu .htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdominio.dominio.com$
RewriteRule (.*)$ http://www.nuevodominio.com/$1 [R=301,L]
Una forma más sencilla de hacer esto con comodines es creando una regla en .htaccess como la siguiente:
Redirect 301 (.*)$ http://www.nuevodominio.com/$1

Impedir listar el directorio

Si tienes una carpeta en el servidor web utilizada para almacenar archivos como los eBooks, software legal, etc., si la carpeta no tiene archivo index.html, los visitantes pueden ver todos los archivos dentro de la carpeta sin problemas. En este caso puedes utilizar el código siguiente para evitar que esto suceda.
Options -Indexes

Orden de ejecución de archivos

Si tienes tanto el archivo index.html como el archivo index.php en la carpeta /public_html, el archivo index.html tiene mayor prioridad y se ejecutará en primer lugar. Aunque la mayoría de scripts web utilizan el archivo index.php como punto de partida. Si se puede eliminar el archivo index.html, se soluciona el problema, aunque no siempre es así y en estos casos hay una mejor solución que es utilizar el siguiente código para dar prioridad al archivo index.php en vez de index.html.
DirectoryIndex index.php index.html

Comprimir archivos CSS, JavaScript, XML y texto

El siguiente código está diseñado para comprimir el código de salida CSS, JavaScript, XML y de texto antes de ser mostrado en el navegador. La idea básica es ahorrar tiempo en la carga y no consumir tanto ancho de banda.
<ifmodule>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/x-javascript
</ifmodule>

Almacenamiento en caché de imágenes

Cada vez que recibimos visitas en la web, el servidor web obtiene todos los archivos necesarios, tales como archivos CSS y JavaScript, así como fotos e imágenes para poder mostrarla. Podemos usar el código de abajo para gestionar los archivos de caché, y que cuando un visitante vuelva a visitarnos por segunda vez, el servidor cargue el archivo de la caché lo que acelerará el tiempo de carga sitio web.
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif A432000
ExpiresByType image/jpg A432000
ExpiresByType image/jpeg A432000
ExpiresByType image/png A432000
ExpiresByType image/ico A432000
ExpiresByType image/bmp A432000
ExpiresByType text/css A432000
ExpiresByType text/javascript A432000
ExpiresByType application/javascript A432000
ExpiresByType application/x-javascript A432000
</ifmodule>
El código anterior guarda caché de los archivos durante cinco días o 432.000 segundos. Puedes cambiar el período de almacenamiento en caché, asegurándote de utilizar el valor expresado en segundos.

Proteger el archivo .htaccess

El siguiente código evita que tu archivo .htaccess puedan ser leído directamente desde el navegador web.
<Files .htaccess>
Order allow,deny
Deny from all
</Files>

Prevenir el hotlinking

A veces, otros webmasters, hacen suyas las imágenes de nuestras webs, artículos, etc., afectando con ello el ancho de banda de que disponemos en nuestro Hosting. Si además ellos tienen una gran cantidad de visitantes al día, estos van a utilizar nuestro ancho de banda del servidor para visualizar nuestras imágenes en la web ajena a nosotros.
Se puede utilizar el código que se muestra a continuación para evitar el hotlinking, y de esta forma reemplazar la imagen original por otra con algún aviso para hacerles saber que la imagen es nuestra o que el hotlinking es una mala práctica.
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?webempresa\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|gif|bmp|png)$ http://hotlink.webempresa.com/no_se_permite_hotlinking.jpg [L]
Puedes subir la imagen a un sitio de alojamiento de imágenes como ImageShack para evitar que tu ancho de banda se vea afectado.

Cambiar la ubicación de la carpeta de dominio a otra carpeta de /public_html

Si ya tienes un sitio web en /public_html, y quieres actualizar la página web, pero no quieres que los demás lo vean, pero tampoco quieres afectar al sitio web en producción existente, la forma más fácil es la construcción de la nueva página web en una subcarpeta de /public_html, por ejemplo, /public_html/web2.
Al finalizar todas las pruebas y mejoras, necesitas reemplazar el antiguo sitio web con el nuevo, pero transferir archivos y carpetas a la carpeta /public_html es bastante molesto. La mejor solución es usar.htaccess para decirle a Apache que utilice la carpeta /public_html/web2 en lugar de /public_html para el dominio.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^webempresa\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.webempresa\.com$
RewriteCond %{REQUEST_URI} !^/web2/
RewriteRule (.*) /web2/$1 [L]

Crear URLs de uso fácil o "amigables"

¿Cuál de las dos URL a continuación parece más amigable?
http://tusitio.com/acercade
http://tusitio.com/paginas/acercade.html
Cuando se trata de direcciones URL, siempre y cuando el significado sea claro, cuanto más corto es, mejor. htaccess con una llamada al módulo de Apache mod_rewrite permite configurar las direcciones URL como quieras. El servidor puede mostrar el contenido de "/paginas/acercade.html" cada vez que alguien visita "http://tusitio.com/acercade".
A continuación algunos ejemplos:
RewriteEngine on
RewriteRule ^acercade/$    /paginas/acercade.html [L]
RewriteRule ^caracteristicas/$ /caracteristicas.php [L]
RewriteRule ^comprar/$      /comprar.html [L]
RewriteRule ^contacto/$  /paginas/contacto.htm [L]

Forzar el uso de SSL

Este código fuerza a utilizar SSL, no permitiendo conexiones http. Para evitar escuchas en http:// utilizamos por debajo la directiva ErrorDocument.
SSLOptions + StrictRequire
SSLRequireSSL
Cuando una línea comienza por # es un comentario que no tiene ningún efecto.
Si alguien visita tu sitio el servidor web Apache verifica si tiene un archivo .htaccess en algún lugar de su espacio web a partir de la carpeta raíz o la carpeta principal y rastrea todas las carpetas hasta llegar al archivo solicitado. Si encuentra un archivo .htaccess, sus directivas se aplican a la solicitud actual.
Es importante saber que el archivo .htaccess debe ser legible por el servidor Apache. Por tanto es importante consultar con su Hosting si se requiere algún permiso especial que hayan establecido para los archivos .htaccess. En general los permisos correctos para este archivo son 644.

Redireccionar de HTTP a HTTPS

Cabe decir que es necesario disponer de un Certificado SSL instalado en el Hosting para poder hacer uso de este protocolo más seguro.
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{HTTP_HOST} ^tu_dominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tu_dominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]
Pueden existir casos en los que queramos añadir excepciones en el forzado de la redirección de HTTP a HTTPS (por ejemplo, la página de notificación de Redsys). Esto lo podemos hacer añadiendo una línea de código adicional. Si por ejemplo, queremos añadir una excepción para la url https://tudominio.com/?wc-api=WC_redsys habría que dejar el código anterior de la siguiente forma:
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{QUERY_STRING} !wc-api [NC]
RewriteCond %{HTTP_HOST} ^tu_dominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tu_dominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]
Otro ejemplo: si no queremos forzar el uso del HTTPS para la url https://tudominio.com/blog/entrada1.html tendremos que poner un código como el siguiente:
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteCond %{REQUEST_URI} !\/blog\/entrada1\.html$ [NC]
RewriteCond %{HTTP_HOST} ^tu_dominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tu_dominio\.com$
RewriteRule ^(.*)$ https://tudominio.com/$1 [R=301,L,NE]

Redireccionar de HTTPS a HTTP

Puede darse el caso que aún teniendo un Certificado SSL instalado (Comodo, Let's Encrypt, etc) quieras forzar el tráfico encriptado SSL para que se sirva con HTTP por diversas razones (pruebas con plugins conflictivos, configuración de una pasarela pago que no trabaja bien por HTTPS, etc), en cuyo caso códigos como el siguiente te permitirán pasar de HTTPS a HTTP sin desinstalar el Certificado SSL de tu Hosting.
RewriteEngine On
RewriteCond %{ENV:HTTPS} on [NC]
RewriteCond %{HTTP_HOST} ^tu_dominio\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tu_dominio\.com$
RewriteRule ^(.*)$ http://tudominio.com/$1 [R=301,L,NE]
Este código debes colocarlo por encima de cualquier otro código de redireccionamiento, al principio del archivo .htaccess.

Forzar la carga de contenido mixto bajo HTTPS en lugar de HTTP

Si tenemos instalado un Certificado SSL para servir la web bajo protocolo https pero por alguna razón estamos entregando contenido bajo protocolo http como contenido mixto, podemos añadir la siguiente directiva en el archivo .htaccess para forzar que los contenidos "no seguros" sean forzados a cargar bajo protocolo HTTPS.
Esta directiva es compatible con la mayoría de navegadores actuales.
<ifModule mod_headers.c>
Header always set Content-Security-Policy "upgrade-insecure-requests;"
</IfModule>

Forzar la carga de index.html

Para que un sitio HTML funcione sin añadir index.html deberías apuntar un dominio o un subdominio directamente a la carpeta que contenga la web, de modo que solo llamando a http://dominio.com o subdominio.dominio.com (por ejemplo) cargue la web HMTL sin necesidad de añadir el archivo index.html.
Si una web se llama desde una ruta como http://domino.com/otra_carpeta/ es normal que tengas que añadir el archivo index.html para que el navegador sepa que debe cargar.
No obstante puedes forzar mediante .htaccess para que cargue el archivo index.html sin tener que escribirlo en el navegador.
RewriteEngine on
RewriteRule ^(.*)\.php$ $1.html%{QUERY_STRING} [L]


Estas apenas son unas pinceladas de las muchas posibilidades que tiene la correcta gestión del archivo .htaccess que en la mayoría de sitios webs, del nivel que sean, suele pasar desapercibido y es relegado al estatus de un archivo más, cuando el potencial del mismo es tan grande como quiera otorgarle el usuario.

Fuente: https://www.webempresa.com/blog/codigos-utiles-htaccess-para-wordpress.html 

septiembre 06, 2019

Subir fotos a Instagram desde PC

Subir fotos a Instagram desde PC 

1. Abrir el navegador Chrome.

2. Ingresar a instagram.com

3. Iniciar sesión en Instagram

4. Inspeccionar el código.

  • Esto se hace presionando F12.


  • Otra opción es pulsando botón derecho del mouse, sobre alguna parte blanca del sitio y seleccionar Inspeccionar.


5. Seleccionar la versión mobile / tablet.



6. Recargar el sitio web.

  • Esto se hace presionando F5.


7. Ya se encontrará el botón + para subir la imagen en la parte inferior de la página.



septiembre 03, 2019

Cómo eliminar la entrada CRC-SHA del menú contextual en Windows 10

Cómo eliminar la entrada CRC-SHA del menú contextual en Windows 10

Si ha instalado la última versión del programa 7-Zip en su computadora con Windows 10, es posible que haya notado que la entrada CRC-SHA se ha agregado automáticamente al menú contextual, junto con las opciones de 7-Zip. Si señala la flecha lateral, muestra las entradas CRC-64, SHA-256, SHA-1, CRC-32 y *.


CRC es una forma abreviada de verificación de redundancia cíclica, y se emplea en redes digitales para verificar / identificar cualquier cambio realizado en los datos. Su hermano, SHA, significa algoritmo de hash seguro que encuentra su uso potente para determinar la integridad de los datos descargados de Internet, asegurando que no estén dañados.

Los usuarios que no estén interesados en conocer la función de estos algoritmos pueden encontrar su entrada en el menú contextual no deseada y desearían eliminarlos por completo. A continuación, le indicamos cómo puede eliminar la entrada CRC-SHA del menú contextual en Windows 10.


Eliminar la entrada CRC-SHA del menú contextual


Abra el Administrador de archivos 7-Zip escribiendo 7-Zip en el cuadro Iniciar búsqueda y presionando la tecla "Entrar".

Una vez ubicado, abra el programa, seleccione el menú Herramientas y luego presione el botón Opciones.





Luego, cambie a la pestaña 7-Zip, justo al lado del Sistema. En la sección de elementos del menú contextual, desactive la casilla de verificación etiquetada CRC SHA> y luego haga clic en el botón Aplicar.


¡Eso es! Se eliminará la entrada CRC SHA del menú contextual.

Si ve un cuadro de diálogo de error con el mensaje "Un evento no pudo invocar a ninguno de los suscriptores", simplemente haga clic en el botón Aceptar para eliminar la entrada del menú contextual.

Ya hemos cubierto la herramienta 7-Zip en detalle en nuestro sitio web. Es una práctica herramienta de compresión de archivos que le ayuda a reducir el tamaño del archivo sin perder datos importantes. Como tal, se ha ganado la reputación de una alternativa de código abierto bien conocida al software de compresión pagado.

A cerca de 7-Zip https://blogdeecomputo.blogspot.com/2017/09/7zip.html

Fuente: https://www.thewindowsclub.com/remove-crc-sha-entry-from-context-menu









Verificar MD5, SHA256 o SHA512 en Windows 10 usando certutil

Verificar MD5, SHA256 o SHA512 en Windows 10 usando certutil


¿Qué es MD5, SHA256 o SHA512 Checksum?


Debe haber encontrado este término a menudo al descargar archivos grandes de Internet.

MD5, SHA256 o SHA512 son los algoritmos más comunes utilizados para medir la verificación de los archivos.

Ayuda a detectar archivos que han sido manipulados o distorsionados durante las transferencias / descargas.

Instrucciones


Paso 1: Abre una ventana nueva ejecutando el comando CMD desde el menú Inicio.


Paso 2: Navega al directorio donde sea que esté tu archivo.

cd /ruta/del/archivo


Paso 3: ejecuta alguno de los siguientes comandos.

MD5 Checksum
certutil -hashfile path-to-your-file MD5

SHA256 Checksum
certutil -hashfile path-to-your-file SHA256

SHA512 Checksum
certutil -hashfile path-to-your-file SHA512


Fuente: https://www.thewindowsclub.com/verify-md5-checksum-of-files-using-certutil


Como hacer un mapa conceptual en Word 2019

Como hacer un mapa conceptual en Word 2019 https://youtu.be/CZHMq3UvSwc