I mitt tidigare inlägg skrev jag angående GDPR och kryptering. För den som är intresserad, skriver jag nedan om att kryptera loggfiler i Linux-miljö. Inlägget är inspirerat av det som skrevs i ctrl.blog, eftersom skribenten inte gick djupare i det ämnet. Förhoppningsvis kan mitt inlägg ge lite bättre svar i ämnet.

1. Skapa ett nyckelpar, i en separat maskin

GnuPG är ett fritt program som implementerar OpenPGP-standarden enligt RFC4880 (även känt som PGP). För att öka säkerheten bör ett nyckelpar skapas i en separat maskin. Det minskar eventuella skador, om någon obehörig skulle ta över måldatorn som skall kryptera loggfilerna.

Nyckelpar kan skapas i Linux-, Windows- och Mac-datorer i olika program. Github har skrivit ett inlägg om hur man skapar ett nyckelpar med GPG.

2. Importera enbart den publika nyckeln

För att kryptera loggfilerna i servern måste gpg2 vara installerad i servern. Därefter måste den publika nyckeln importeras till loggservern. Nyckeln används för att kryptera filerna, och kan inte användas för att avkryptera dem. När nyckeln hos på den berörda användaren som exekverar logrotate, skall även nyckeln importeras med kommandot nedan (förutsatt att den publika nyckeln heter public.key):

gpg --import public.key

Det viktiga är också att nyckeln är betrodd. För att få nyckelidentiteter som man har på Linux-servern kör man nedan kommando.

gpg --list-keys --keyid-format LONG

Nyckeln som man importerat kan man också modifiera, om den inte känns igen som betrodd. Kör då nedan kommando (obs! Du bör vara helt säker på att detta är din importerade nyckel):

gpg --edit-key keyid

Därefter väljs förtroende för denna nyckel, som är viktig för att kunna kryptera loggfilerna framöver.

3. Modifiera konfigurationsfilen för att kryptera loggfiler

Lägg till nedan kod för de program som du önskar krypteras. Keyid är det användar-id som är lagrat med nyckeln (exempelvis namn@e-post.com). ”Shred” tar bort loggen i klartext efter att den krypteras och komprimeras. Loggen finns i maskinen enbart 24 timmar i klartext innan den komprimeras och krypteras:

daily
shred
compress
compresscmd /usr/bin/gpg2
compressoptions -r keyid --encrypt --default-key keyid --trust-model always
compressext .gpg

Observera! Ovan kod antar att nyckeln hela tiden är betrodd. Det betyder att ingen kontroll genomförs av nyckelns identitet.