TLS Rapporten Monitoren met n8n

tls rapport a
Inleiding

zijn cruciaal voor het bewaken van de beveiliging van je e-mailverkeer. Ze geven inzicht in hoe e-mails worden verzonden en ontvangen en of deze correct beveiligd zijn met TLS. Het monitoren van deze rapporten helpt bij het identificeren van potentiële beveiligingslekken en het voorkomen van “man-in-the-middle” aanvallen. In dit artikel laten we zien hoe je TLS rapporten kunt monitoren met behulp van n8n, inclusief het loggen van failures in een PostgreSQL-database en het bijhouden van een logbestand.

Wat zijn TLS rapporten?

TLS rapporten zijn om de status van TLS-versleuteling te rapporteren. Deze rapporten bevatten informatie over:

  • Of e-mails succesvol zijn verzonden met TLS.
  • .
  • De redenen waarom TLS-verbindingen mislukten.

Door deze rapporten te monitoren, kun je snel reageren op beveiligingsproblemen en ervoor zorgen dat je e-mailverkeer altijd beveiligd is.

De workflow in n8n

De workflow in n8n is ontworpen om TLS rapporten automatisch te verwerken, te analyseren, en te loggen. Hier is een overzicht van de belangrijkste stappen en kenmerken van de workflow:

1. E-mails Ontvangen

We beginnen met het ontvangen van e-mails die TLS rapporten bevatten. Dit doen we met de IMAP Email node, die verbinding maakt met een waar de TLS rapporten binnenkomen.

{
"parameters": {
"mailbox": "TLS-SMTP",
"format": "resolved",
"options": {}
},
"name": "IMAP Email",
"type": "n8n-nodes-base.emailReadImap"
}
2. Bijlagen Controleren

Vervolgens controleren we of de ontvangen e-mail een bijlage bevat. Dit doen we met een Code node die de structuur van de e-mail analyseert.

return items.map(item => {
if (item.binary && item.binary.attachment_0) {
return {
json: {
message: '✅ Bijlage gevonden',
fileName: item.binary.attachment_0.fileName,
mimeType: item.binary.attachment_0.mimeType,
dataSize: item.binary.attachment_0.data?.length || 0,
},
binary: item.binary
};
} else {
return {
json: {
message: '❌ Geen bijlage gevonden onder binary.attachment_0',
binaryKeys: item.binary ? Object.keys(item.binary) : null,
}
};
}
});
3. Bijlage Decomprimeren

De bijlage is gecomprimeerd in .gz formaat. We gebruiken de Compression node om de bijlage te decomprimeren.

{
"parameters": {
"operation": "decompress",
"fileFormat": "gzip",
"binaryPropertyName": "attachment_0",
"outputPrefix": "decompressedData"
},
"name": "Compression",
"type": "n8n-nodes-base.compression"
}
4. JSON Data Extraheren

Na decompressie gebruiken we de Extract from File node om de JSON data uit het bestand te halen.

{
"parameters": {
"operation": "fromJson",
"binaryPropertyName": "=decompressedData0",
"options": {
"encoding": "utf8",
"keepSource": "json"
}
},
"name": "Extract from File",
"type": "n8n-nodes-base.extractFromFile"
}
5. JSON Data Verwerken

Nu de data beschikbaar is in JSON-formaat, verwerken we deze data in een Code node om het aantal mislukte TLS-sessies te tellen.

const data = items[0].json.data;

let totaalFailures = 0;

if (data.policies && Array.isArray(data.policies)) {
for (const policy of data.policies) {
if (policy.summary && typeof policy.summary[’total-failure-session-count’] === ‘number’) {
totaalFailures += policy.summary[’total-failure-session-count’];
}
}
}

return [
{
json: {
aantal_failures: totaalFailures,
reportId: data[‘report-id’],
policies: data.policies,
}
}
];

6. E-mail Alerts en Loggen

Als er mislukte TLS-sessies zijn, sturen we een e-mail alert en loggen we de failure in een PostgreSQL-database en een logbestand.

E-mail Alert
{
"parameters": {
"fromEmail": "info@adagia.eu",
"toEmail": "info@adagia.eu",
"subject": "LET OP - FOUTEN IN DE TLS-SMTP CONFIGURATIE",
"html": "=Er zijn fouten aangetroffen in de aflevering van e-mails volgens het TLS-rapport.<br><br>Aantal failures: {{$json.aantal_failures}}<br><br>Rapport ID: {{$json.reportId}}<br>\n",
"options": {}
},
"name": "Send email",
"type": "n8n-nodes-base.emailSend"
}
PostgreSQL Log
{
"parameters": {
"operation": "executeQuery",
"query": "INSERT INTO tls (report_id, failure_count, failure_details, created_at) VALUES ($1, $2, $3, NOW())",
"options": {
"queryReplacement": "=[ { \"name\": \"1\", \"value\": \"={{ $('Code Verwerk JSON').item.json.reportId }}\" }, { \"name\": \"2\", \"value\": \"={{ $('Code Verwerk JSON').item.json.aantal_failures }}\" }, { \"name\": \"3\", \"value\": \"={{ JSON.stringify($('Code Verwerk JSON').item.json.policies) }}\" }]"
}
},
"name": "Postgres Log Failure",
"type": "n8n-nodes-base.postgres"
}
SSH Log
{
"parameters": {
"command": "=echo \\\"$(date \\\"+%Y-%m-%d %H:%M:%S\\\") [WAARSCHUWING] TLS rapportage uitgevoerd. {{$json.aantal_failures}} failures gevonden. Zie tabel tls in database n8n.\\\" >> /volume1/cron/logs/tls.log"
},
"name": "SSH log",
"type": "n8n-nodes-base.ssh"
}
Aandachtspunten

Ook bij deze workflow, net zoals die van WP Scan, is het een kwestie van proberen en uittesten. Aandachtspunten zijn:

  1. Structuur van de Data: De structuur van de ontvangen data kan variëren. Het is belangrijk om de data goed te inspecteren en te begrijpen hoe deze is opgebouwd.

  2. Foutafhandeling: Zorg voor . Dit helpt bij het snel identificeren en oplossen van problemen.

  3. Testen: met verschillende soorten TLS rapporten om ervoor te zorgen dat deze in alle scenario’s correct functioneert.

  4. Documentatie: Houd je workflow en code goed gedocumenteerd. Dit maakt het gemakkelijker om later wijzigingen door te voeren en problemen op te lossen.

  5. Loggen: Het loggen van failures in zowel een database als een logbestand zorgt voor een betrouwbare audit trail en maakt het gemakkelijker om problemen te analyseren.

Conclusie

Het monitoren van TLS rapporten is essentieel voor het waarborgen van de beveiliging van je e-mailverkeer. Met n8n kun je dit proces automatiseren en efficiënter maken. De workflow helpt bij het snel identificeren en oplossen van TLS-problemen, waardoor je .

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *