Slipp spamstämpel

Om du hamnat här vet du säkert att det finns risk att e-post skickad från din mailserver kan märkas som spam av mottagande mailservrar. Men vi ska försöka undvika det genom att lägga till olika tjänster. Till att börja med är det spf och dkim vi ska konfigurera. Det gäller alltså för utgående e-post. Vill du att din server ska kolla spf för inkommande e-post får du vänta på en kommande guide; det nämner jag också i slutet av denna guide.

På vår dns-server lägger vi till följande txt-rad: "v=spf1 ip4:din ipadress  mx:mail.dindomän.se -all"

Jag ska försöka förklara vad allt detta betyder. För att få spf:en att fungera krävs denna rad i din dns-server oavsett om du har den hemma eller låter någon domänkontrollant sköta den. Det finns inga risker med att börja skriva in detta i dns-servern innan du har konfigurerat e-post-servern. Däremot kan du inte göra detsamma med dkim. Det måste vara korrekt på din server. I det här fallet beskriver jag hur allt konfigureras på postfix. För det första måste vi ha strängen omgärdad av citats-tecken, annars finns det risk att servern blir en open-relay. Och det är det sista vi vill och det betyder att spammare kan använda vår server för att överösa andra med skräp-post. Det kan alltså betyda att vi blir svartlistade för en lång tid framöver. En så kort txt-rad som "v=spf1 mx -all" är allt som krävs för att ha en godkänd spf.

Ett verktyg för att kontrollera din spf, och om du över huvud taget har spf, är dig, som finns till Linux i alla fall. Här frågar jag en av de namnservrar som har hand om min domän om de olika txt-direktiven. Skulle du inte veta vilka namnservrar du har kanske det här är överkurs. Men be någon om hjälp eller använd dig av någon sökmotor för att reda ut hur dns fungerar.

dig @ns1.afraid.org ingos.se txt

En del av svaret kan se ut så här. I ANSWER SECTION visas det här och det betyder att dns-servern har en spf-anvisning.

Och då blir resultatet så här när ett brev skickas till gmail. Det står "spf=pass"

 

Innan vi lade till spf i dns-servern blev det som bilden nedan visar: "spf=neutral"

Nu när vi har ett fungerande spf ska vi fortsätta med dkim. Det är också något som, när det saknas, gör att t ex Google, kan bedöma ens e-post som skräp.

Installera dkim

För det första installerar vi opendkim.

Nu ska vi göra nycklar med hjälp av följande kommando. Nycklarna hamnar i /etc/opendkim/keys och består av en privat och en publik nyckel.

# opendkim-default-keygen

 

Det fina är också att tilldelningen av ägare och rättigheter till nycklarna blir rätt när man kör kommandot. Den privata nyckeln ska ju inte få läsas av vem som helst. Och det hindras då inga rättigheter har getts åt andra (others) för den privata nyckeln.

Nu återstår det inte så mycket av jobbet. Vi ska redigera fyra textfiler och lägga till den publika nyckeln i dns-servern. Vi börjar med opendkim.conf och jag ska visa vad som ska finnas i den.

PidFile /var/run/opendkim/opendkim.pid
Mode   sv
Syslog  yes
SyslogSuccess   yes

##  Vi kommenterar denna då loggfilen annars skulle bli alltför stor.
##LogWhy  yes

UserID opendkim:opendkim
Socket inet:8891@127.0.0.1
Umask 002
Canonicalization relaxed/simple
Domain ingos.se
Selector default
MinimumKeyBits  1024

##KeyFile /etc/opendkim/keys/default.private Vi kommenterar denna då vi inte ska använda nycklarna i keys och som genererades med kommandot opendkim-default-keygen

KeyTable        /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
OversignHeaders From

Nu är vi klara med den filen. Sen måste vi fylla KeyTable-filen och de andra tre filerna med användbara direktiv. Det här ska vi lägga till i KeyTable-filen.

I filen SigningTable lägger vi till följande innehåll. Asterisken framför @ingos.se gör att alla som har en e-postadress med domännamnet ingos.se får sin e-post signerad av Opendkim. Till exempel olle.andersson@ingos.se eller erik.olsson@ingos.se; ja ni förstår säkert.

I filen TrustedHosts är det ett absolut måste att ha localhost med först. Den pekar på den egna servern och det är ju vår e-postserver som är med i arbetet med att signera utgående e-post. De andra är jag inte säker på om de behövs. Jag vet bara att här kan man fylla i andra servrar som arbetar under huvudservern för att e-post som skickas med dem också får signerad utgående e-post. Andra har också låtit hela det interna nätverket anges här. I det här fallet har vi förslaget 192.168.0.1/24. Men eftersom den raden är kommenterad är den inte med.

Nu måste Postfix få reda på att Opendkim finns. Det krävs bara någon rad i /etc/postfix/main.cf

smtpd_milters              = inet:127.0.0.1:8891
non_smtpd_milters     = $smtpd_milters
milter_default_action  = accept

Det sista är att göra den publika nyckeln tillgänglig för mottagande e-postservrar. Det gör man genom att sätta in ett TXT-textavsnitt i DNS-servern. Jag visar en bild här nedan på hur det såg ut för mig. Men det finns många olika dns-servrar och tjänster så det går inte att täcka alla. Var beredd på att det kan krångla innan man hittar rätt. Testa med dig på det sätt som jag visar längst ner så ser ni om det fungerar. Därefter kan man prova med någon av de otaliga tjänster som finns på nätet. Googla på "dkim check" så hittar ni en hel del. På de siterna skriver man sedan in domännamnet i en ruta och selectorn i den andra. För mig blir det ingos.se och default. Men det beror på vad ni har för domän och vilken selector ni valde.  

Någonstans i det här läget är det helt klart dags att starta tjänsten. Och innan du avslutar är det bäst att se till att tjänsten också startar automatiskt, dvs vid omstart. Annars kommer givetvis inte signeringen att fungera. Här kommer kommandona. De är nog självförklarande.

# systemctl start opendkim.service


Sedan kommer det spännande momentet då det är dags att testa om det fungerar. Börja med verktyget dig.

#dig default._domainkey.ingos.se TXT

Det här blev resultatet för mig. Det ser bra ut.  

 Till sist ska vi testa att skicka ett mail till en gmail-adress. Har du ingen egen så får du be någon kompis kolla upp åt dig hur det ser ut i brevhuvudet. Men jag vill först visa hur det såg ut innan det började fungera.

Här ser ni att det står dkim=temperror. Det betyder att mottagande e-postserver inte kunde identifiera den publika nyckeln på dns-servern och därmed inte låsa upp den privata nyckeln. Men här nedanför ser ni att Google bekräftar att DKIM fungerar och därför står det signerat av: ingos.se. Om det inte fungerar står det inget alls. Det här hittar ni i informationsfältet när ni klickar på den lilla pilen. Ni ser det på bilden nedan.

Och till sist har vi brevhuvudet som visar att DKIM fungerar. Det hittar ni genom att klicka på "Mer" till höger och bredvid klockslaget för brevets ankomst, och sedan på "Visa original"; ja, i alla fall på en skrivbordsdator. 

och

Lycka till med eran signering!

Om du vill att din server ska göra spf-kontroll på inkommande e-post krävs mer. Men det tar vi en annan gång.

 

 

Föregående sida: Curl behöver openssl Nästa sida: Skapa självsignerat certifikat