Jag ska visa dig hur du E-postserver TLS i Postfix och välja starka chiffersviter så att SMTP-anslutningar skyddas på ett konsekvent sätt. Baserat på beprövade och testade parametrar för TLS 1.2/1.3, DANE, MTA-STS och moderna nyckelpar guidar jag dig steg för steg genom konfiguration, testning och inställning så att din säkerhet för e-post grepp rent.
Centrala punkter
- Postfix Konfigurera på ett säkert sätt: Aktivera TLS, begränsa protokoll, ange loggning.
- Ciffer Prioritera: ECDHE + GCM/CHACHA20, genomdriva PFS, blockera äldre data.
- Certifikat hålla rent: RSA+ECDSA, komplett kedja, starka kurvor.
- DANE/MTA-STS utnyttja: Förankra riktlinjer och minska nedgraderingsrisker.
- Tester och övervakning: Kontrollera OpenSSL, TLS-skanner, MTA-loggar regelbundet.
SMTP via TLS: vad är egentligen säkrat?
Jag säkrar SMTP med STARTTLS, så att e-posttransporten inte sker i klartext. Opportunistisk TLS via smtpd_tls_security_level = may säkerställer att inkommande anslutningar använder kryptering så snart fjärrstationen erbjuder det. För utgående leveranser använder jag smtp_tls_security_level = dane DNSSEC-stödda policykontroller för att göra nedgraderingsattacker svårare. Utan TLS kan e-postmeddelanden läsas och manipuleras under transporten, vilket är särskilt farligt för formulär, beställningar eller kontodata. Med TLS aktivt hela tiden minskar jag avsevärt risken för avlyssning och MITM, och jag uppnår bättre leveranshastigheter eftersom stora leverantörer värderar säkra anslutningar positivt.
Nycklar, certifikat och protokoll i Postfix
Jag har två certifikat redo: ett RSA-certifikat och ett ECDSA-certifikat så att gamla och nya MTA:er är optimalt anslutna. Jag ställer in sökvägarna i Postfix tydligt, till exempel smtpd_tls_cert_fil för RSA och smtpd_tls_eccert_fil för ECDSA, var och en med en matchande nyckel. För ren autentisering är jag uppmärksam på hela kedjan, ett CN/SAN som matchar värden exakt och en kurva som secp384r1 för ECDSA-nyckeln. Jag avaktiverar strikt äldre protokoll, dvs SSLv2 och SSLv3, för att förhindra påtvingade nedgraderingar. Om du överväger vilken typ av certifikat du ska använda kan en snabb titt på DV, OV eller EV, så att du väljer rätt nivå av förtroende.
Val av chiffer: Prioriteringar för TLS 1.2/1.3
Jag prioriterar chiffersviter med PFS, dvs. ECDHE före DHE, och använd GCM eller CHACHA20-POLY1305. Under TLS 1.3 avlastar stacken dig från många gamla uppgifter, medan TLS 1.2 fortfarande kräver en tydlig lista. Osäkra eller svaga sviter som t.ex. RC4, Jag tar bort 3DES, CAMELLIA, aNULL, eNULL. För Postfix använder jag smtpd_tls_ciphers = hög och en restriktiv tls_high_cipherlist, så att inga föråldrade algoritmer slinker igenom. Om du går djupare, så är Cipher Suites Guide en lättförståelig kategorisering utan ballast.
| TLS-version | Favoritchiffersviter | Status | Ledtråd |
|---|---|---|---|
| TLS 1.3 | TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256 | aktiv | Urvalet är fast i protokollet, inga fler äldre frågor. |
| TLS 1.2 | ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305 | aktiv | Prioritera PFS, föredra GCM/CHACHA. |
| Föråldrad | RC4, 3DES, CAMELLIA, AES128-SHA, aNULL/eNULL | låst | Avaktivera helt av säkerhetsskäl. |
Postfix: konkreta parametrar för main.cf
Jag ställer in en tydlig konfiguration så att MTA talar säkert både inkommande och utgående. För efemära ECDH använder jag smtpd_tls_eecdh_grade Jag ställer in kurvans kvalitet och avaktiverar komprimering för att undvika CRIME-liknande attacker. En stark DH-fil med 4096 bitar förhindrar svaga DHE-förhandlingar. Jag lägger hårda restriktioner på protokoll och genomdriver hög chifferkvalitet, med TLS 1.3 som favorit. I början hjälper en måttlig loggnivå mig att kontrollera handskakningar utan att översvämma journalen.
# Aktivering och policy
smtpd_tls_security_level = may
smtp_tls_security_level = dane
# Certifikat (exempel på sökvägar)
smtpd_tls_cert_file = /etc/ssl/certs/mail.example.de.cer
smtpd_tls_key_file = /etc/ssl/private/mail.example.de.key
smtpd_tls_eccert_file = /etc/ssl/certs/mail.example.de_ecc.cer
smtpd_tls_eckey_file = /etc/ssl/private/mail.example.de_ecc.key
#-protokoll och chiffer
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_ciphers = hög
tls_high_cipherlist = !aNULL:!eNULL:!RC4:!3DES:!CAMELLIA:HIGH:@STRENGTH
tls_ssl_options = NO_COMPRESSION
smtpd_tls_eecdh_grade = ultra
# DH-parametrar
smtpd_tls_dh1024_param_file = /etc/postfix/dh_4096.pem
# DNSSEC/DANE (om tillgängligt)
smtp_dns_support_level = dnssec
# Loggning
smtpd_tls_loglevel = 1
Jag håller certifikatkedjan komplett, var uppmärksam på korrekta rättigheter för privat nyckelfiler och kontrollera loggarna efter omladdningen. Om TLS 1.2 krävs för äldre partners håller jag mig strikt till GCM/CHACHA och blockerar allt annat. För TLS 1.3 förlitar jag mig på stackens standarder och undviker specialvägar som gör underhållet svårare. OCSP-häftning spelar bara en roll med SMTP om en uppströms proxy tillhandahåller det, så jag kontrollerar bara detta för motsvarande inställningar. Efter varje ändring validerar jag med OpenSSL för att tidigt upptäcka biverkningar och för att säkerställa att Kryptering av e-post konsekvent.
Transportautenticitet med DANE, MTA-STS, SPF, DKIM och DMARC
Jag kombinerar TLS med DANE, genom att publicera signerade TLSA-poster under DNSSEC. Dessutom ställer jag in MTA-STS så att fjärranslutna peers vet att min värd kräver TLS och vilken MX de ska följa. För identitetsbindning signerar jag utgående e-postmeddelanden med DKIM och säker domänleverans via SPF-regler. Slutligen definierar DMARC hur mottagarna ska hantera avvikelser, vilket gör spoofing mycket svårare. Dessa komponenter fungerar tillsammans: TLS skyddar transporten, medan autentisering stärker avsändaren och märkbart ökar leveranshastigheten.
Om prestandan är en flaskhals optimerar jag återupptagandet av sessioner, hårdvarufunktioner och själva handskakningen. Du kan komma igång med praktiska knep med Snabbare TLS-handskakning, för att minska fördröjningen vid upprättandet av en anslutning. Viktigt: Jag håller balansen mellan val av chiffer och återupptagande, eftersom svaga kompromisser inte lönar sig säkerhetsmässigt. Snabb TLS-förhandling ger betydande besparingar, särskilt med höga postvolymer. På det här sättet Genomströmning och säkerhet i balans.
Testning, övervakning och revisioner
Jag kontrollerar handskakningar lokalt med openssl och kontrollera protokollversion, chiffer och certifikatkedja. Kommandot openssl s_client -connect mail.example.de:25 -starttls smtp visar mig i realtid vad fjärrservern förhandlar om. Efter konfigurationsändringar använder jag postfix-kontroll och titta särskilt på smtpd_tls_logle-nivå, för att isolera felmönster. Externa TLS-skannrar hjälper till att kategorisera den offentliga synligheten, särskilt efter certifikatbyten. En regelbunden revisionscykel skyddar mot smygande försämringar, t.ex. om en biblioteksändring påverkar chifferprioriteringarna.
Frekventa felkonfigurationer och snabba lösningar
Jag ser ofta föråldrade chiffer som AES128-SHA, som fortfarande är aktiva och förhindrar PFS. En strikt chiffersträng och den tydliga blockeringen av LOW/MD5/RC4/3DES hjälper till här. Andra mönstret: mellanliggande certifikat saknas, vilket hindrar fjärrstationer från att verifiera kedjan; jag lägger till buntfilen och testar igen. På apparater som en Synology ställer jag in TLS-profilen till modern och tar bort äldre alternativ så att SMTP-servern talar modernt. Med Microsoft Exchange kontrollerar jag specifikt TLS 1.2/1.3-policyer, certifikattilldelning per anslutning och eventuella chifferöverskrivningar i värdkonfigurationen så att Handskakning-urvalet är rätt.
Förhandsgranskning: TLS 1.3, 0-RTT och postkvantum
Jag föredrar TLS 1.3 eftersom handskakningen är kortare och gamla alternativ utelämnas, vilket minskar attackytorna. Valet av chiffer är klart begränsad där, och moderna stackar ger bra standardvärden. Jag använder inte 0-RTT i SMTP-sammanhang, eftersom replay-attacker medför onödiga risker här. I framtiden håller jag ett öga på hybrida postkvantumprocedurer, som skulle kunna hitta sin väg in i e-postmiljön så snart standardisering och stöd mognar. Det är fortfarande viktigt att jag sätter upp policyer och övervakning på ett sådant sätt att nya procedurer kan integreras senare utan störningar.
Prestanda och leveranshastighet i en överblick
Jag mäter Fördröjning av TLS-handskakningen och optimera cacheminnet för att möjliggöra återanvändning. Återupptagande av sessioner (biljetter/ID:n) minskar datorbelastningen och snabbar upp återkommande anslutningar mellan MTA:er. För återkallande av certifikat förlitar jag mig på stapelbar information hos proxyn uppströms, om sådan finns, för att spara ytterligare åtkomster. Stora mottagare värderar säkra transporter positivt, vilket ökar leveranshastigheten, medan osäkra vägar ökar risken för spam och avvisande. Med en tydlig TLS-policy, stabila DNS-poster och en ren signaturkedja skapar jag en pålitlig grund för Leveransförmåga.
Mitt installationsschema
Jag börjar med att skaffa certifikatet från en pålitlig CA, genererar ECDSA och RSA och lagrar båda på ett rent sätt på värden. Sedan anpassar jag main.cf med TLS-parametrarna, ställa in starka chiffer och avaktivera gamla protokoll. En ny DH-fil med 4096 bitar läggs till, följt av en omladdning och de första OpenSSL-kontrollerna. Sedan konfigurerar jag DANE, lägger till MTA-STS och verifierar SPF/DKIM/DMARC för giltighet. Slutligen kör jag tester mot externa mål, kontrollerar loggar under drift och schemalägger regelbundna revisioner så att Konfiguration förblir säker på lång sikt.
Saknade moduler: Submission, SMTPS och SNI
Jag säkrar inte bara port 25, utan även submission (587) och eventuellt SMTPS (465). För submission tillämpar jag kryptering och autentisering så att användarlösenord aldrig skickas i klartext. I master.cf Jag aktiverar tjänsterna och ställer in specifika åsidosättningar:
# inlämning (port 587) med STARTTLS och auth-krav
inlämning inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_auth_only=yes
-o smtpd_sasl_auth_enable=yes
-o milter_macro_daemon_namn=ORIGINATING
# SMTPS (port 465) som omslagsläge, om så krävs
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o milter_macro_daemon_namn=ORIGINATING
Om jag betjänar flera e-postdomäner på en host med mina egna certifikat använder jag SNI. Jag använder en SNI-karta för att tilldela rätt certifikatsökväg för varje målvärd och ser till att MUA-klienter också ser rätt certifikat. Det är så jag säkerställer klientseparation med konsekvent TLS-identitet.
Policyer för enskilda domäner: finkornig kontroll
Utöver den globala policyn hanterar jag även smtp_tls_policy_maps Undantag och åtstramning per mottagardomän. Detta gör att jag gradvis kan migrera äldre partners eller tillämpa särskilt strikta krav för känsliga mål.
# huvud.cf
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
# /etc/postfix/tls_policy (exempel på poster)
exempel.org endast dansk
legacy.example.net får
secure.example.com secure
dane-only verkställer DANE-skydd utan CA-beroende, säker kräver en giltig CA-kedja och vägrar leverans i klartext, kan förblir opportunistisk. Efter ändringar bygger jag kartan med postmapp och ladda om Postfix.
DANE och MTA-STS: konkret genomförande
För DANE Jag publicerar TLSA-poster under DNSSEC. Jag föredrar att använda DANE-EE (3 1 1) eftersom det tillåter pinning till den publika nyckeln och underlättar certifikatändringar med samma nyckel. Ett exempel på en TLSA-post under _25._tcp.mail.example.de ser ut så här:
_25._tcp.mail.example.de. IN TLSA 3 1 1
Jag genererar hashen från ECDSA- eller RSA-certifikatet och ser till att rotera det innan det går ut. Det är viktigt att DNS-zonen är signerad och att kedjan av delegeringar valideras utan luckor.
För MTA-STS Jag hostar policyfilen via HTTPS och lägger till TXT DNS-post. På så sätt anger jag att fjärranslutna peers talar TLS och endast accepteras med en definierad MX. En minimalistisk policyfil:
version: STSv1
läge: genomdriva
mx: mail.example.de
max_age: 604800
En TXT-post läggs till i DNS under _mta-sts.example.de med den aktuella versionen. Eventuellt ställer jag in TLS-RPT via TXT under _smtp._tls.example.de för att få rapporter om policyöverträdelser. Den här telemetrin hjälper mig att upptäcka fel, nedgraderingar och felaktiga certifikat på ett tidigt stadium.
Strama upp protokoll, specificera chiffer
Jag skärper protokollgränserna och genomdriver serverpreferenser. TLS 1.0/1.1 är överflödiga idag; jag tillåter endast TLS 1.2 och 1.3 på djupet och på utgående basis. För TLS 1.2 definierar jag en explicit positivlista för att utesluta blandade lager av gamla chiffer:
# Ytterligare härdning (main.cf)
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
# Explicit TLS 1.2 chifferlista (endast PFS + AEAD)
tls_high_cipherlist = ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:!aNULL:!eNULL:!MD5:!RC4:!3DES:!CAMELLIA
# Använd serverpreferens
tls_preempt_cipherlist = ja
Jag ser till att ECDHE föredras och att DHE endast är en reservlösning. Jag håller min DH-fil uppdaterad; under TLS 1.3 spelar den ingen roll, men den är fortfarande användbar för sällsynta DHE-åtgärder.
Återupptagande av sessioner och cacheminnen
För att snabba upp processen aktiverar jag sessionscacher för klienten och servern för att göra återanslutningar mer gynnsamma. CPU-belastning och latens minskar märkbart, särskilt med hög postgenomströmning:
#-sessionscache (main.cf)
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
smtp_tls_session_cache_database = btree:/var/lib/postfix/smtp_scache
smtp_tls_connection_reuse = ja
Jag övervakar träfffrekvensen i loggarna och ser till att inga är för korta. biljett_livslängd i TLS-biblioteket för att sakta ner återupptagandet. Viktigt: Återupptagandet får inte försvaga policyn; jag håller mig till samma chifferkrav.
Certifierat företag: Rotation och kedjeunderhåll
Jag automatiserar förnyelsen och omladdningen av MTA så att inga utgångna certifikat hamnar i drift. Efter varje förnyelse kontrollerar jag att blad- och mellanliggande certifikat är kompletta i paketet. Vid dubbel ECDSA/RSA-drift ser jag till att båda paren roterar innan en massändring orsakar problem för kunderna. Jag testar SNI-sökvägen och inlämningen separat eftersom MUA:er kan visa andra felmönster än MTA:er.
Fördjupad loggning och diagnostik
Jag ökar tillfälligt loggdjupet när ett problem uppstår och använder ombordverktyg för korskontroller:
# riktad loggning (main.cf)
smtp_tls_loglevel = 1
smtp_tls_note_starttls_offer = ja
Med posttls-finger mål.exempel.com Jag kontrollerar vilken policy en fjärr-MTA förväntar sig och vilka chiffer/protokoll som förhandlas. Jag använder postconf -n | grep tls, för att bara se explicit inställda TLS-parametrar; jag kan hitta avvikelser från standardvärden snabbare på det här sättet. I loggarna söker jag efter termer som ingen delad kryptering, certifikatverifiering misslyckades eller . protokollversion, som direkt indikerar chiffermissmatchning, kedjeproblem eller protokollgränser som är för strikta/för slappa.
Hantera kompatibilitet utan att offra säkerheten
Jag planerar övergångar medvetet: Jag håller mig uppdaterad med kan, för att undvika att förlora e-post från äldre servrar över hela linjen, men loggar leveranser i klartext. Utgående förblir jag strikt (DANE/MTA-STS/secure) och använder smtp_tls_policy_maps för enskilda fall. Om enskilda partners endast kan hantera TLS 1.2 med AES-GCM är detta acceptabelt; jag hanterar allt under detta via överenskomna undantag med en begränsad körtid, dokumenterar dem och inkluderar dem i migrationsplaneringen. Detta håller den övergripande nivån hög utan att blockera affärsverksamheten.
En överblick över systemets TLS-standardinställningar
Observera att Postfix använder systemets TLS-bibliotek. Uppdateringar av OpenSSL/LibreSSL kan ändra chifferprioriteringar och TLS 1.3-beteende. Efter systemuppdateringar kontrollerar jag därför slumpmässigt handskakningar och jämför utdata från postconf -n med mina målvärden. En uppsättning kompatibilitet_nivå i Postfix hjälper till att upprätthålla stabila standardvärden, men jag litar inte blint på det och dokumenterar uttryckliga avvikelser i main.cf/master.cf.
Kort sammanfattning för administratörer
Jag vill understryka att starka chiffer med PFS, rena certifikat och tydliga policyer är avgörande för att SMTP avgörande. TLS 1.3 befriar dig från äldre problem, medan TLS 1.2 kräver en disciplinerad chifferlista. DANE och MTA-STS gör transportvägen hårdare, SPF/DKIM/DMARC säkrar identitet och rapportering. Regelbundna tester och logganalyser visar tidigt om en förändring har oönskade bieffekter. Med den här guiden kan du konfigurera din e-postserver så att den blir säker, välfungerande och framtidssäker - utan onödiga Risker.


