Mostrando entradas con la etiqueta correo. Mostrar todas las entradas
Mostrando entradas con la etiqueta correo. Mostrar todas las entradas

miércoles, 23 de mayo de 2018

Script in Python3 que chequea fecha de vencimiento de certificados SSL y envia correos

Intro:
  Abajo les dejo un script realizado en Python3 que chequea fecha de vencimiento de certificados SSL (https) y realiza el envio de correos.

Importante:
  Que corra en OS modernos (Ubuntu 16.04 o mayor por ejemplo).., la razón es el soporte de librerías actualizadas SSL

El Script:
$ more check_ssl_certificates.py 




#!/usr/bin/python3

#El objetivo de este script es revisar los hostnames en la lista hostnames

#revisar cuantos dias faltan para que expire el certificado SSL

#y se expira pronto (definido por la variable umbral) enviar un correo

#con dicha notificacion




import OpenSSL

import ssl, socket

import argparse

from OpenSSL import SSL

from datetime import datetime




# Please add every FQDN you wish to be checked

hostnames = ["www.sitio1.com","www.sitio2.com","www.sitio3.com"]

umbral = 10 #threshold - number of days left in order to send the notification

notify_to= "you@yourserver.com, youyou@yourserver.com" #list of email addresses to send email separated by ,




def cert_expiration_date(hostname):

# get SSL Cert info

try:

cert = ssl.get_server_certificate((hostname, 443))

x509 = OpenSSL.crypto.load_certificate(OpenSSL.crypto.FILETYPE_PEM, cert)

x509info = x509.get_notAfter()




exp_day = x509info[6:8].decode('utf-8')

exp_month = x509info[4:6].decode('utf-8')

exp_year = x509info[:4].decode('utf-8')




exp_date = str(exp_day) + ' ' + str(exp_month) + ' ' + str(exp_year)

expire_date = datetime.strptime(exp_date, "%d %m %Y")







except Exception:

MSG='el host ' + str(hostname) + ' no pudo ser chequeado '

sendnotification(hostname, 0, MSG)

return #will enter here if could not connect to the website port 443




#print('SSL Certificate for hostname', hostname, 'will be expired on (DD-MM-YYYY)', exp_date)

#print('SSL Certificate for hostname', hostname, 'will be expired on (DD-MM-YYYY)', expire_date)



expire_in = expire_date - datetime.now()

expire_in = str(expire_in).split(' ')[0]




if int(expire_in) < umbral :

MSG='el cert ssl de ' + str(hostname) + ' expira en ' + str(expire_in) + ' dias'

sendnotification(hostname, str(expire_in), MSG)




#print ('Expira en: ', expire_in)




def sendnotification(hostname, expire_in, MSG):

from smtplib import SMTP_SSL as SMTP

import logging

import logging.handlers

import sys

from email.mime.text import MIMEText




#MSG = 'el cert ssl de ' + str(hostname) + ' expira en ' + str(expire_in) + ' dias'

#text = MSG

msg = MIMEText(MSG, 'plain')

msg['Subject'] = MSG

me = 'your@email.com'




recipients = notify_to

msg['To'] = notify_to

try:

conn = SMTP('yourmailserver.com')

conn.set_debuglevel(True)

conn.login('authusr', 'yourpassword')

try:

conn.sendmail(me,recipients.split(',') , msg.as_string())

finally:

conn.close()

except Exception as exc:

logger.error("ERROR!!!")

logger.critical(exc)

sys.exit("Mail failed: {}".format(exc))






if __name__ == "__main__":

for hostname in hostnames:

cert_expiration_date(hostname)


viernes, 19 de octubre de 2012

Normas o reglas en Listas de Correo (Netiquette)


En líneas generales a la hora de estar en una lista de correo (mailing-list) uno debe comportarse igual o mejor a como lo haríamos en nuestra vida diaria.
  Aquí dejo una lista de normas que de manera general son convenientes seguir en todas aquellas listas de correo en las que participemos. Muchas a su vez sirven de nuestra vida diaria en el uso del correo electrónico.

1.- Respete las normas (este listado).
2.- Para enviar nuevos correos a la lista:
  • No contestar un correo comenzando un nuevo subject
  • No contestar un correo y cambiar el subject y el tema
  • No contestar un correo, mantener el subject y comenzar un nuevo tema
  • Crear un correo completamente nuevo y enviarlo a la dirección de la lista

3.- El correo a enviar a la lista debe ser relacionado con tópico de la misma.
4.- Evitar correos OFF-TOPIC al menos que sean muy esporádicos o pueda considerarse de interés a los participantes de la lista.
5.- Enfrentamientos, malas palabras, groserías son visto con mal gusto por parte del resto de los participantes.
6.- Es una demostración de cortesía ante los integrantes del grupo:
  • Si usted comentió un error: reconocerlo
  • Ser humilde en sus respuestas a pesar de sus conocimientos
  • Enviar respuestas directas a las preguntas
  • Suscribirse con una cuenta de correo donde no utilice Auto-Responder
  • Ser cordial, decir buenos días, gracias, por favor, me gustaría, entre otros
  • Compartir tus conocimientos con los otros
  • Respetar la privacidad de los demás

6.- El correo máximo por línea debe contener 75 caracteres
7.- Se aconseja el uso de emoticones como: :-(, :-) ellos ofrecen cuerpo al mensaje y mejora la intención del mismo expresando mejor chistes, mensajes sarcásticos, etc.
8.- Es una buena práctica contestar dentro del cuerpo del correo anterior, el mismo utilizar el cáracer “ >” como indicador del correo previo
9.- Borrar el final de algunos correos (información de Antivirus y cosas no relevantes de la conversación)
10.- No escribir correos todo en mayúsculas ni todo en minúsculas. Un correo en MAYÚSCULAS indica que estás gritando.
11.- Para destacar argumentos dentro del correo se recomienda usar comillas o raya inferior (_) alrededor de la palabra
12.- Se prohiben mensajes: SPAM y/o cualquier correo relacionado a publicidad de un producto, venta de servicios o productos, políticos, religiosos y otras indoles que puedan considerarse de mal gusto a los participantes.
13.- Se cuidadoso con ciertas palabras (slangs), recuerda que hay personas de diferentes países y nacionalidades que potencialmente pueden leer tu correo. El significado de cierta palabra no es la misma para tí que para el receptor.
14.- Evitar mensajes unilaterales en la lista
15.- Para algunos integrantes puede ser mal visto enviar un correo a muchas listas de correo simultáneamente. Favor crear un correo por cada lista a la que se desea enviar.
16.- Favor incluir -al menos- tu nombre en el correo. Esto es particularmente importante en aquellos participantes que usan direcciones de correo donde no aparece el nombre o cuentas de correo genéricas (noc@... routing@... ventas@)
17.- Favor revisa el correo antes de enviarlo.
18.- Configura la hora correcta de tu cliente de correo electrónico, basado en timezone.
19.- Se tolerante en los debates. Objetivo en las discusiones
20.- Por ultimo: "Se tolerante con lo que recibes, se precavido con lo que envías". Recuerda que un correo tuyo es potencialmente leído por otras personas.


El listado de arriba es un resumen de mi experiencia como participante por muchos años en listas de correo, ser co-fundador de otras listas y moderador actual de una lista de más de 800 participantes.

Espero sea útil,



lunes, 27 de junio de 2011

Lista de correo de IPv6. LAC-TF de Lacnic

Hola todos(as)!,
  En esta oportunidad solo quería dar un consejo a todas aquellas personas que deseen mantenerse actualizadas y aprender en el área de IPv6

Sobre la lista/foro LAC-TF:
   Este foro, patrocinado por Lacnic,  está destinado a todas las personas interesadas en el desarrollo de IPv6 en la región. Sean preguntas sobre su implementación y despliegue o bien información actualizada sobre los avances en la adopción de IPv6, esta lista representa un espacio para la innovación tecnologica a través del nuevo protocolo IPv6.

Que hay que hacer:
  Suscribirse a la lista de LAC-TF. Procedimiento:

1) Ir a: https://mail.lacnic.net/mailman/listinfo/lactf  y llenar el formulario de la página Web.
2) En los siguientes minutos recibirá un correo confirmando la suscripción a la lista

Posteriormente para publicar mensajes debe enviar un correo a lactf@lacnic.net

Ventajas:
1) Cualquier persona se puede suscribir
2) Experiencia real de otras personas en cuanto al uso y del día a día en el mundo de IPv6
3) Gente dispuesta a escuchar y ayudar sin importar
4) La lista posee un volumen de correos ligero, con ello quiero decir que no molesta mucho
5) Facilmente filtrable con la intención de mover automaticamente el correo a la carpeta deseada (todos los correos tienen LAC-TF en el subject
6) Se publican noticias periodicamente que ayudan a mantenerse al día
7) Cualquier persona puede participar realizando y/o respondiendo preguntas


Más información:
https://mail.lacnic.net/mailman/listinfo/lactf
http://www.lacnic.net


Espero se suscriban!!!!

viernes, 1 de octubre de 2010

Sendmail e IPv6. Hacer que sendmail escuche en IPv6

Problema:
Tengo un servidor de correo en Linux Debian con Sendmail, en IPv4 todo funciona bien pero no escucha conexiones en IPv6

Escenario:
Servidor Debian con Sendmail 8.14.3 e IPv6 configurado

Procedimiento:
Primero verificar que efectivamente Sendmail no escucha en IPv6. Por ejemplo:

#netstat -pan | grep sendmail

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 2596/sendmail: MTA:
unix 2 [ ACC ] STREAM LISTENING 4198 1025/mysqld / var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 13539 2596/sendmail: MTA: / var/run/sendmail/mta/smcontrol
unix 2 [ ] DGRAM 13535 2596/sendmail: MTA:

En la salida anterior notamos que sendmail se encuentra escuchando solo sobre la red IPv4.

Solucion:
La solucion es indicarle al Sendmail que también levante sobre la familia Inet6. Para ello es necesario modificar el sendmail.mc para reconstruir el sendmail.cf y luego reiniciar el sendmail. Los pasos son los siguientes:

1) Editar el sendmail.mc y agregar las siguientes lineas:
DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=DIRIPV6')dnl
DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl

OJO: Sustituir DIRIPV6 por tu dirección IPv6


2) Ejecutar sendmailconfig (para procedar el sendmail.mc con m4 y generar el .cf)

3) Luego de ejecutar el comando anterior lo siguiente es siempre indicarle que Y en las siguientes preguntas:

Configure sendmail with the existing /etc/mail/sendmail.conf? [Y] y
Configure sendmail with the existing /etc/mail/sendmail.mc? [Y] y
Reload the running sendmail now with the new configuration? [Y] y

Verificar:
Para verificar ejecuta el comando:
#netstat -pan | grep sendmail

Realiza un telnet de la siguiente manera:

#telnet ::1 25

debes recibir respuesta similar a:

Trying ::1...
Connected to ::1.
Escape character is '^]'.
220 ipv6.para.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9.1ubuntu1; Fri, 1 Oct 20 10 11:52:48 -0430; (No UCE/UBE) logging access from: localhost(OK)-localhost [IPv6:::1]

Suerte, espero haya sido util.

Una mejora práctica en el Transporte DNS sobre UDP en IPv6

Por Hugo Salgado y Alejandro Acosta Introducción y planteamiento del problema En el presente documento queremos discutir sobre un draft (bor...