Configurar DKIM con Exim en Centos 7


13 Febrero 2019

Vamos a configurar DKIM con Exim en CentOS 7.

Primero vamos a generar las claves privada y pública con openssl, sin utilizar opendkim ni nada parecido. Conectamos vía SSH al servidor en cuestión y ejecutamos:

openssl genrsa -out private.key 2048
openssl rsa -in private.key -pubout -out public.key

Éstos comandos generan la clave pública y privada (keys). La clave privada la utiliza dkim para verificar que la clave pública (configurada en los DNS) que está en el mail enviado se correspondan. En caso de que estén bien se valida dkim sino falla.

Segundo creamos la carpeta /etc/exim/dkim, copiamos la clave private a la carpeta /etc/exim/dkim/ y luego asignamos el grupo "exim" a la carpeta dkim y a la clave private.key.

mkdir /etc/exim/dkim/
cp private.key /etc/exim/dkim/private.key
chown root:exim -R /etc/exim/dkim/

Tercero, hay que poner la clave pública en los DNS. Con el comando "cat public.key" vemos en la consola la clave. Copiamos el texto que está dentro de "-----BEGIN PUBLIC KEY-----" y "-----END PUBLIC KEY-----". Si por ejemplo la clave es la siguiente:

-----BEGIN PUBLIC KEY----
asdfasdfasdfasdfasdfasdfasJQ
asdfasdfasdfasdfasdfaRJ
qweqwewq
-----END PUBLIC KEY-----

Copiamos solo lo de adentro y lo ponemos en un solo renglon, borrando los saltos de linea, quedando así:

asdfasdfasdfasdfasdfasdfasJQasdfasdfasdfasdfasdfaRJqweqwewq

Éste valor lo remplazamos en lo siguiente: "v=DKIM1; g=*; k=rsa; p=MI_CLAVE_PUBLICA". Quedando así:

v=DKIM1; g=*; k=rsa; p=asdfasdfasdfasdfasdfasdfasJQasdfasdfasdfasdfasdfaRJqweqwewq

Todo este valor hay que configurar en un DNS del dominio. Vamos a CPanel, Ferozo o el gestor de DNS que tengamos. Creamos el DNS con el nombre: "mail._domainkey.midominio.com" de tipo "TXT" con el valor "v=DKIM1; g=*; k=rsa; p=asdfasdfasdfasdfasdfasdfasJQasdfasdfasdfasdfasdfaRJqweqwewq". La duración podemos dejar la que seteé el gestor de DNS, si lo llega a pedir con 14400 (4 horas) esta bien.

Por último vamos a configrar la clave privada en "exim". Para esto vamos al archivo de configuración en /etc/exim/configure, hacemos un backup del archivo por las dudas, luego buscamos la sección "remote_smtp:" y agregamos la configuración para que funcione dkim:

cp /etc/exim/configure /etc/exim/configure.bak
nano /etc/exim/configure

# Buscamos con ctrl + w la palabra "remote_smtp:" y vamos a encontra algo así:
remote_smtp:
  driver = smtp

# Agregamos debajo de "driver = smtp" lo siguiente:
  dkim_domain = $sender_address_domain
  dkim_selector = mail
  dkim_private_key = /etc/exim/dkim/private.key
  dkim_canon = relaxed

El valor de dkim_selector se corresponde con el DNS mail._domainkey.midomio.com. El valor de dkim_private_key con la ruta de la clave privada.
Reiniciamos "exim":

service exim restart

Listo, ya tenemos dkim funcionando con exim en CentOs7. Cómo verificar que funciona? Enviamos un mail desde un mail del dominio en cuestión a un mail de Gmail. Cuando llega a Gmail ingresamos al mail, vamos a los 3 puntitos en vertical para ver más opciones y hacemos click en "Mostrar original". Buscamos la sección DKIM y debería decir 'PASS' con el dominio midominio.com".

Configurar DKIM con Exim en Centos 7

Más artículos


Soy Desarrollador Mercado Pago Certificado

02 Octubre 2020
Para Online Payments Checkout Pro. Esta semana participé del "Mercado Pago Developer Partner Program" y luego de realizar el examen correspondiente fuí aprobado para ser "Mercado Pago Certified Developer for Online Payments ...

Calculadora Compuesta de Cauciones - Proyecto personal

17 Marzo 2020
Bueno, encaré este proyecto viendo que IOL (InvertirOnline) daba un excel para el cálculo estimativo de las ganancias para las cauciones y siempre por mi cuenta calculaba las ganancias haciendo interés compuesto. Por ejemplo s...

Libreria PHP para Andreani REST

24 Agosto 2019
Qué es esto? Es una librería php para conectar con la Api REST de Andreani. Creé la librería porque me ví casi forzado a migrar a la Api REST de Andreani. Hice un módulo en su momento, y sigo manteniendo, para Prestashop de And...

Liberar memoria ram en servidor CentOS

01 Agosto 2019
Cómo hacemos para liberar la memoria ram de nuestro servidor CentOS? Bueno, entramos por ssh al servidor y luego ejecutamos los siguientes comandos: free -m sudo sync && sudo sysctl -w vm.drop_caches=3 free -m ...

Agregar reCaptcha en Joomla 1.5

03 Abril 2019
Para agregar reCaptcha al contacto en Joomla 1.5 (SOLO J1.5) instalamos el plugin reCAPTCHAIntegrator y luego copiamos el archivo /components/com_contact/views/contact/tmpl/default_form.php a /templates/NOMBRE_TEMPLATE/html/com...

Configurar DKIM con Exim en Centos 7

13 Febrero 2019
Vamos a configurar DKIM con Exim en CentOS 7. Primero vamos a generar las claves privada y pública con openssl, sin utilizar opendkim ni nada parecido. Conectamos vía SSH al servidor en cuestión y ejecutamos: openssl genrs...