Sunday, December 20, 2020

Instalar certificado SSL gratis

Basado en :

Instalar un certificado SSL gratis de Let’s Encrypt en lighttpd

https://geekland.eu/instalar-certificado-ssl-gratis-lets-encrypt-lighttpd/

 

 #Para añadir el repositorio Backports en Raspbian Stretch hay que ejecutar el siguiente comando en la terminal:

sudo sed -i "$ a\deb http://ftp.debian.org/debian stretch-backports main" /etc/apt/sources.list

sudo apt-get update

sudo apt-get install certbot -t stretch-backports -y --force-yes

sudo apt-get install lighttpd

sudo certbot certonly --webroot -w /var/www/html/ -d dominio.net   (en mi caso fue pbeltran.ddns.net)

 

 

sudo cat /etc/letsencrypt/live/dominio.net/cert.pem /etc/letsencrypt/live/dominio.net/privkey.pem > /etc/letsencrypt/live/dominio.net/web.pem

#CREAR UNA CLAVE PARA REFORZAR LA SEGURIDAD DEL INTERCAMBIO DE CLAVES

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

 

sudo nano /etc/lighttpd/lighttpd.conf

 

#agregar este texto al final

# Activar y configurar https en el servidor

$SERVER["socket"] == ":443" {

  ssl.engine = "enable"

  ssl.pemfile = "/etc/letsencrypt/live/dominio.net/web.pem"

  ssl.ca-file = "/etc/letsencrypt/live/dominio.net/chain.pem"

  server.name = "dominio.net" # Domain Name OR Virtual Host Name

  ssl.use-sslv2 = "disable"

  ssl.use-sslv3 = "disable"

  ssl.use-compression = "disable"

  ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"

  ssl.dh-file = "/etc/ssl/certs/dhparam.pem" 

  ssl.ec-curve = "secp384r1"

}  

 

# forzar peticiones https

$HTTP["scheme"] == "http" {

    # capture vhost name with regex conditiona -> %0 in redirect pattern

    # must be the most inner block to the redirect rule

    $HTTP["host"] =~ ".*" {

        url.redirect = (".*" => "https://%0$0")

    }

}

 

Forzar HTTP Strict Transport Security

setenv.add-response-header = ( "Strict-Transport-Security" => "max-age=15768000; includeSubdomains" )

 

#Acto seguido comprueben que el modulo setenv esté activado. Para ello deberán comprobar que el fichero que estamos editando contenga el siguiente código:

server.modules = (

#....

"mod_setenv",

#....

)

sudo service lighttpd restart

RENOVACIÓN DEL CERTIFICADO SSL DE LET’S ENCRYPT

sudo certbot renew --dry-run

Friday, December 18, 2020

Intento de accesos fallidos en SSHD

basado en 

https://blog.desdelinux.net/como-saber-que-intentos-fallidos-de-ssh-ha-tenido-nuestro-servidor/

https://www.jesusamieiro.com/ssh-ver-los-fallos-en-los-intentos-de-acceso-en-debian/


cat /var/log/auth* | grep Failed

cat /var/log/auth.log | grep Accepted*

Thursday, December 17, 2020

habilitar SSH 2FA de google

basado en: https://www.entredevyops.es/posts/ssh-2fa.html

 

sudo apt-get install -y libpam-google-authenticator

sudo nano /etc/pam.d/sshd

#y agregar auth required pam_google_authenticator.so

sudo nano /etc/ssh/sshd_config

ChallengeResponseAuthentication yes

sudo service sshd restart

#al usuario al cual le quieres activar el 2FA

google-authenticator


Tuesday, December 15, 2020

Enviar correo con adjunto en python

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
 
# Iniciamos los parámetros del script
remitente = 'Origen@gmail.com'
destinatarios = ['destinatarioseparadosPorcoma','dest2','dest3']
asunto = 'Correo de prueba'
cuerpo = 'Este es el contenido del mensaje'
ruta_adjunto = 'D:/Proyectos/Python/Archivo.xlsx'
nombre_adjunto = 'Archivo.xlsx'
 
# Creamos el objeto mensaje
mensaje = MIMEMultipart()
 
# Establecemos los atributos del mensaje
mensaje['From'] = 'origen@gmail.com'
mensaje['To'] = ", ".join(destinatarios)
mensaje['Subject'] = asunto
 
# Agregamos el cuerpo del mensaje como objeto MIME de tipo texto
mensaje.attach(MIMEText(cuerpo, 'plain'))
 
# Abrimos el archivo que vamos a adjuntar
archivo_adjunto = open(ruta_adjunto, 'rb')
 
# Creamos un objeto MIME base
adjunto_MIME = MIMEBase('application', 'octet-stream')
# Y le cargamos el archivo adjunto
adjunto_MIME.set_payload((archivo_adjunto).read())
# Codificamos el objeto en BASE64
encoders.encode_base64(adjunto_MIME)
# Agregamos una cabecera al objeto
adjunto_MIME.add_header('Content-Disposition', "attachment; filename= %s" % nombre_adjunto)
# Y finalmente lo agregamos al mensaje
mensaje.attach(adjunto_MIME)
 
# Creamos la conexión con el servidor
sesion_smtp = smtplib.SMTP('smtp.gmail.com', 587)
 
# Ciframos la conexión
sesion_smtp.starttls()
 
# Iniciamos sesión en el servidor
sesion_smtp.login('origen@gmail.com','ClaveSegura')
 
# Convertimos el objeto mensaje a texto
texto = mensaje.as_string()
 
# Enviamos el mensaje
sesion_smtp.sendmail(remitente, destinatarios, texto)
 
# Cerramos la conexión
sesion_smtp.quit()
 

basado en https://gist.github.com/2624789/d42aaa12bf3a36356342 

Friday, December 11, 2020

Enviar correo por PowerShell con archivo adjunto

recomiendo crear un archivo Ps1 ademas para llamarlo via cmd se debe agregar este codigo

powershell -ExecutionPolicy Bypass -File D:\Proyectos\correo.txt.ps1


Este es el contenido para el archivo PS1

$EmailTo = "CuentaDestino@gmail.com"  

$EmailFrom = "CuentaOrigen@gmail.com"  

$Emailuser = "username@gmail.com"  

$Emailpass = "XXXXXXXXX"  

$Subject = "Subject"  

$Body = "Test Body" 

$SMTPServer = "smtp.gmail.com" 

$filenameAndPath = "D:\BK\17-03-2019-archivos-bk.RAR"  

$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)

$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)

$SMTPMessage.Attachments.Add($attachment)

$SMTPClient = New-Object System.Net.Mail.SmtpClient($SMTPServer, 587);

$SMTPClient.EnableSSL = $true

$SMTPClient.credentials = New-Object System.Net.NetworkCredential($Emailuser, $Emailpass);

$SMTPClient.Send($SMTPMessage)