Este es el tipo de cosas que uno hace cada 120 días y claro, cuando lo vas hacer
ya se te olvidó; así que para el blog:
Como compartir un directorio vía rsyncd. En el siguiente ejemplo, usaré mi
directorio de Downloads, donde tengo cosas que copiar por SSH requiere mucha
entropía y la copia se vuelve lenta, por ejemplo, los ficheros con la wikipedia
(kiwix)
La configuración de rsyncd radica en un lugar bastante obvio:
/etc/rsyncd.conf a mi me quedó así:
“/etc/rsyncd.conf”
1234567891011
max connections=2log file=/var/log/rsync.logtimeout=300[descargas]comment=las cosas que descargué path = /home/lazaro/Download/ read only = yes list = yes uid = lazaro gid = nobody
Ahí tenemos el directorio descargas servido por rsyncd. Vamos a efectuar una
copia:
Conflictivísima tarea, lograr que el cron mande correos adecuadamente… En este
caso, cronie, da la solución al problema. Aunque me imagino que dicha
configuración sea estándar para el cron.
Así es la cosa, declaramos MAILTO y MAILFROM como unas variables en el
fichero crontab.
crontab
12345678910
# DO NOT EDIT THIS FILE - edit the master and reinstall.# (/tmp/crontab.f36hiB/crontab installed on Tue May 5 08:48:38 2015)# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)# añadimos las variablesMAILTO=root@tudominio.cuMAILFROM=cron@tudominio.cu# m h dom mon dow command0000***/bin/bash/home/fulanito/script.sh
Ahora faltaría un MTA. Pues la solución más sensilla es esmtp y su
configuración sería más o menos así en el fichero /etc/esmtprc
Aunque no de mi agrado, reconozco que es una solución muy buena. DKIM y SPF, se
ha vuelto hoy en día un mecanismo para mitigar el SPAM en el correo electrónico.
Esto no quita, que un spammer puede hacerse con un buen esquema de DKIM para sus
dominos de porquería; lo cual sería un estupendo negocio, teniendo en cuenta que
un servidor puede tener tantos dominios como quiera. Si conoce a algún spammer
que quiera tener DKIM y SPF en su negocio, por favor, mándele mi tarjeta.
Me imagino que a los usuarios de nauta, les duela bajar un mensaje que
aparentemente tiene dos lineas, pagando por uno que realmente tiene más de 20
líneas de pura mierda que no les incumbe. Espero que etecsa se digne a retirar
encabezados innecesarios como esos (para el cliente).
Por otra parte, mucha gente tiene antivirus que modifican el correo o son
fanáticos a instalar mil gangarreas (mailscanner, clamav, etc…) que también
modifican el correo. Con esto, DKIM y SPF se van a la mierda.
Le diré que hice con un postfix que ya estaba instalado en un debian8 para
ponerle DKIM y SPF.
y establecemos los permisos adecuados, ojo con esto, ya que dkim es muy riguroso
con el tema de los permisos
1
adduser postfix opendkim
SPF
Ahora procedemos a crear el registro DNS. Como hay muchos DNS y cada quién tiene
sus preferencias, me reduciré a describir de manera abstracta los registros.
Usted, aterrize la idea en su DNS.
Esto tiene DOS formas de hacerse:
La primera:
Declarar que TODOS los MX del dominio, pueden mandar correo (lo cual
inspira desconfianza) en este caso, registra un puntero del tipo TXT con el
siguiente valor
v=spf1 mx -all
Por ejemplo, bind9
“registro”
1
@ IN TXT "v=spf1 mx -all"
La segunda:
Declarar que un host, que tiene un registro A, está autorizado a enviar
correos (esta me gusta más, si tienes un solo servidor de correo) Si fueran
varios, por ejemplo 3. Podrías declarar un A para cada uno y de manera
individual, ellos generarían su SPF apuntándose a si mismo.
v=spf1 a:mx1.tudominio.cu -all
Como ya sabemos, un puntero MX siempre deberá apuntar a un rgistro A, ya que no
se recomienda apuntar a un CNAME…
Nota para los apurados: “Si declaras ambos registros, no pincha, LEE!!”
Otra cosa, puedes declarar -all o ~all El primero le dirá al receptor
que si el correo no viene del dominio que dice enviarlo (el puntero A o los MX),
lo rechace porque es falso (muy radical) y el segundo, que empieza por ~ le
indica al receptor, que puede recibir el mensaje y si no pude verificarlo que lo
marque como spam, pero que por favor, no lo rechaze.
Esto nos lleva a una:
Situación peligrosa
Cuba, un descerebrado configuró verificación de DKIM, porque está de moda.
PERO! Está detrás de un smarthost (pasarela) o simplemente, su configuración de
DNS no vale un quilo (por culpa del proveedor)
Metedura de pata - A:
Ese servidor de correo, que se cree Oggun con machete en mano; descartará todo
correo con -all debido a su incapacidad de realizar un lookup decente.
Metedura de pata - B:
Uno más descerebrado todavía, vio que DKIM estaba de moda y sin importar que no
tiene control de su DNS, lo hizo todo, saltándose el paso del DNS. Su servidor
le estará gritando a toda voz al mundo entero, que está falseando el dominio
Su ignorancia le costará caer de cabeza en las listas negras…
Y es que:
Generalmente, los servidores que entregan a través de un smarthost, carecen de
DNS real. También hay una pila de gente que administran servidores sin tener
control de su DNS.
Seguimos…
Ya que tenemos el SPF pinchando, podemos añadirle chequeo de SPF a nuestro
postfix que tiene bien configurado el DNS y entrega de cara a internet sin
smarthost
En el fichero /etc/postfix/master.cf le agregamos esto:
y a los posftfix cubanos, le decimos que sea paciente con el proceso de
verificación, incrementando el tiempo que tiene que esperar por el policyd, ya
que dicha verificación puede tardar (dns lookup, cpu a tope, etc..) Añadimos
esto a /etc/postfix/main.cf
main.cf
1
policyd-spf_time_limit=3600
Ahora viene una parte complicada, pues no hay manera de que pueda reflejarla
como para copiar y pegar.
Deberás modificar tus reglas de postfix, de forma que antepongas el chequeo SPF,
como una más de tus restricciones de recibo. Para mi caso, está bien la última
linea.
De ahí puede que quizás te interese la variables SubDomains, sobre todo si
eres proveedor de correo.
Como ya te dije, los permisos son sumamente importantes en este caso
permisos
1
chmod u=rw,go=r /etc/opendkim.conf
Ahora creamos el directorio donde vamos a meter todo el zoológico requerido para
que DKIM pinche. Hay quién prefiere meterlo en /var, para mi en
/etc/opendkim es un buen lugar.
Ahora vamos a crear la tabla de rúbricas (se aceptan contribuciones para
traducir). Ahí, ponemos una linea por cada dominio que tengas. Creas el fichero
/etc/opendkim/signing.table y está recomendado que le pongas lo siguiente:
“como dicen que debe ser”
1
*@tudominio.cutudominio
Nota para los imbéciles: No olvide remplazar tudominio.cu por el nombre
del dominio suyo.
Con eso, casamos todos los correos que parezcan a tu dominio, con el DKIM que
llamamos “tudominio”, si quiere atrás le puede poner “pepe”. Lo que debe
quedarte claro, es que todos los correos que macheen a la expresión regular de
alante, pasarán por el filtro llamado tudominio (o “pepe” si lo cambiaste) ¿Se
entendió?
Por ejemplo, si tu dominio fuera *@cacocum.hlg.sld.cu podrías ponerle detrás
“midkim” para que todos los correos de ese dominio, se firmen con la firma que
será configurada bajo el nombre “midkim” Quedaría así:
*@cacocum.hlg.sld.cu midkim
Resumen:
El primero campo, es una expresión regular que mache las direcciones de correo y
el segundo el nombre de la firma que se usará. Para mayor confusión, se
recomienda que se hagan nombres parecidos. Finalmente nos quedó así:
/etc/opendkim/signing.table
1
*@tudominio.cutudominio
La clave
Ahora creamos el fichero, donde le diremos a “midkim” donde va a encontrar su
parafernalia cifradora. Crea el fichero /etc/opendkim/key.table y ponle
dentro esto:
Ya que estamos en el año 2016 y el mes 06 no el 6 (lleva cero delante).
Ojo aquí, ya que si tienes más dominios, es complicado. Nota que debes reflejar
a localhost con sus pertinentes ip, además, tu nombre de host, tu dominio y el
nombre del host conjugado con el dominio. Siendo entonces fulanito el nombre
del host, quedaría así en el fichero /etc/opendkim/trusted.hosts
FINALMENTE! Vamos a generar la clave para el dominio:
“generando las claves”
12
cd /etc/opendkim/keys/
opendkim-genkey -b 2048 -r -s 201606
Las claves se generan en base a la fecha, pero luego se colocan en base al
dominio. Esto se hace porque hay que renovarlos pero si configuramos
opendkim para que apunte a un fichero cuyo nombre sea la fecha, tendríamos que
cambiar la configuración cada vez que renovamos.
Si tu clave se llamase “pepe” o “midkim”, ya sabes que esos ficheros se
llamarían “pepe.private” o “tudkim.txt” ¿Entiendes ahora? Seguimos…
El argumento -b indica la longitud de clave en Bit. En otros tiempo 1024 era
la tisa, pero ahora, se recomienda usar 2048 porque las máquinas son más
potentes. Quizás dentro de un par de años, sea 4096.
Arranca opendkim y asegúrate mirando los; log que esté pinchando.
“arranca opendkim”
12
systemctl restart opendkim
systemctl status -l opendkim
El DNS
El patico feo de internet, el DNS. El remedio que se inventó pa ir tirando y acabó quedándose con su pésimo diseño y su horrible arquitectura que hasta el sol de hoy, pretende llamarse “distribuida”
Agregamos le registro TXT con la clave. Te cuento que el fichero “.txt” contiene
el tabaco base64 que usualmente vemos en el encabezado DKIM-Signature, pues
proviene de este registro TXT que estamos creando.
Añade un registro del tipo TXT que apunte a un hostname llamado
201606._domainkey dentro de tu domino. Pero ahora viene la parte difícil:
Copia el texto que contiene el fichero tudominio.txt dentro de la primera
comilla hasta la última, pero sin tomar las comillas.
¿Se entendió?
O sea, dentro del fichero tiene esto:
“tudominio.txt”
1
201606._domainkey IN TXT ( "**v=DKIM1; k=rsa; s=email; " "p=ZjiONVGXom64jANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5oIUrFDWZK7F4thFxpZa2or6jBEX3cSL6b2TJdPkO5iNn9vHNXhNX31nOefN8FksX94YbLJ8NHcFPbaZTW8R2HthYxRaCyqodxlLHibg8aHdfa+bxKeiI/xABRuAM0WG0JEDSyakMFqIO40ghj/h7DUc/4OXNdeQhrKDTlgf2bd+FjpJ3bNAFcMYa3Oeju33b2Tp+PdtqIwXR" "ZksfuXh7m30kuyavp3Uaso145DRBaJZA55lNxmHWMgMjO+YjNeuR6j4oQqyGwzPaVcSdOG8Js2mXt+J3Hr+nNmJGxZUUW4Uw5ws08wT9opRgSpn+ThX2d1AgQePpGrWOamC3PdcwIDAQAB**") ; ----- DKIM key 201606 for tudominio.cu
Al extraer la parte que nos interesa, no quedamos con esto (sin las comillas)
Auxíliate de un editor de texto decente. Deshabilita el wrap y busca la comilla
como cadena de texto.
Ese texto, será el valor del puntero TXT
A mi me quedó así:
“puntero TXT de 201606._domainkey”
1
201601._domainkey IN TXT "**v=DKIM1; k=rsa; s=email; p=ZJiONVGXom64zhNjwdAmo2XnMhAXeGXxB0p5PJkHxUk5XMXNaoUbMwfGOBOQYKsiQp0k9KwcYu2SNAlcFrGIugPG035Ng4r8mlBRLS5+dak90HuH+hb2d8aa+djRFn4PIS2RcAZZJgJjRgF1NbWZpBlj8IpXJ7MywrUxtj1e+TU/tCiWQxCc9uMqgWA53NeqRGEFPwCuTfDMKWbbMhZkbe+pOOtEqQBQ0HsvJ3n09ZNhh3AjbNP6JOpAyK+4hqHohDTrLhxdSFsNiaoAaJXsxDdAHIs2U3QNmrbAFEg7aPOBgaHLXv28k88EDqo4cIuOxa/c24e3F4O6TY3fpydRmekadtCW+waY3aCIIwIA7DdAABFUTR3ABI8WnFTjgDyj1/IQ53Af**"
Completo! Vamos a probarlo a ver que pasa:
“1, 2, 3, probando”
1
opendkim-testkey -d example.com -s 201606
Si sale silentemente sin mostrar algo. Es que todo está bien.
opendkim y postfix
Finalmente, nuestro postfix tendrá el privilegio de firmar los correos usando el
aparataje recién configurado. Vamos a crearle un cuartico de dkim en la casa de
postfix
y habilitamos el socket de opendkim, editando el fichero /etc/default/opendkim
/etc/default/opendkim
12345678910
# Command-line options specified here will override the contents of# /etc/opendkim.conf. See opendkim(8) for a complete list of options.#DAEMON_OPTS=""## Uncomment to specify an alternate socket# Note that setting this will override any Socket value in opendkim.confSOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"#SOCKET="inet:54321" # listen on all interfaces on port 54321#SOCKET="inet:12345@localhost" # listen on loopback on port 12345#SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345
Note como retiramos el comentario de la línea 7
Ahora declaramos en postfix que debe usar a opendkim como demonio de
preprocesamiento en el típico /etc/postfix/main.cf
Esa dirección le hará una prueba al DKIM+SPF de tu correo. No solo eso, le hará
una prueba del Pi al Pa a tu correo y te dirá todo lo que necesitas.
Si quieres ponerle la guinda al pastel, puede añadirle ADSP (Author Domain
Signing Practices) a tu esquema. Esto indica que todos los correos que salgan de
tu dominio deben estar firmados con DKIM, proveiendo aún más confianza al
receptor.
Crea un registro TXT para el hostname adsp.domainkey y el valor del
TXT será dkim=all. A mi me quedó así:
“registro”
1
_adsp._domainkey IN TXT "dkim=all"
Con eso, tus correos no caerán más en la bandeja SPAM de gmail.
Otra cosa importante, asegúrate de tener el reverse lookup de tu MX bien puesto.
El reducido espacio de trabajo que tengo en la casa para colocar la laptop; me
hace sentir como si viviera en el apartamento más pequeño de Tokio. Tanto así,
que no tengo ni donde desplazar el mouse y los cables me la ponen aún más
difícil. Comprar una casa más grande no es una opción; sin embargo, reducir el
mouse es más viable. Se me ocurrió adquirir un mouse inalámbrico, ya que son
pequeñitos.
Pero un mouse pequeño liviano, resulta que se desplaza mucho más rápido, que mi
antiguo General Electric Pixart Inc. Optical Mouse. Lo que más me molesta es;
no solo lo rápido que se desplaza, si no el picor que tiene en la aceleración.
Alguna vez han pensado, que en algunos servidores o estaciones, en las cual
trabajan múltiples personas remotamente via consola; el historial de comandos
puede llegar a ser un problema???
Pues deshabilítalo. En el fichero /etc/environment ponle
“/etc/environment”
1
export HISTFILE=/dev/null
La próxima vez que etres, la función historial será deshabilitada. OJO!!! LA
PRÓXIMA VEZ esta sesión aún salva historial… Sale y vuelve a entrar.
Los archivos binarios que almacenan las bases de datos de mysql (percona o
mariadb) suelen acabar corruptos o dañados por fallos eléctricos. Al mirar el
log, podemos ver que, a pesar de que la base de datos funciona; por un motivo u
otro, hay miles de warning y los ficheros binarios se vuelven cada vez más
frágiles.
Solución, exportar TODAS las bases de datos un fichero “.sql”, reinstalar mysql
e importar las bases de datos. Tenga en cuenta que también se crean los
usuarios y sus debidos permisos. Por tanto, su usuario de root se configurará de
manera automática.
“mysqldump”
1
mysqldump --all-databases > dumpeo.sql
Desinstalar mySQL y eliminar los ficheros binarios, generalmente están en
/var/lib/mysql Por último, instala mySQL y restaura las bases de datos.