Ik zal je laten zien hoe je Mailserver TLS in Postfix en sterke cipher suites selecteren zodat SMTP-verbindingen consistent beschermd zijn. Op basis van beproefde parameters voor TLS 1.2/1.3, DANE, MTA-STS en moderne sleutelparen zal ik je stap voor stap begeleiden bij het configureren, testen en afstellen, zodat je postbeveiliging grepen goed vast.
Centrale punten
- Postfix Veilig configureren: TLS activeren, protocollen beperken, logboekregistratie instellen.
- Cijfer prioriteit geven: ECDHE + GCM/CHACHA20, PFS afdwingen, verouderde gegevens blokkeren.
- Certificaten schoon te houden: RSA+ECDSA, volledige keten, sterke krommingen.
- DANE/MTA-STS gebruiken: Verankeringsrichtlijnen en het verminderen van downgraderisico's.
- Tests en bewaking: Controleer OpenSSL, TLS scanner, MTA logs regelmatig.
SMTP via TLS: wat is er echt beveiligd?
Ik beveilig SMTP met STARTTLS, zodat e-mailtransport niet in platte tekst plaatsvindt. Opportunistische TLS via smtpd_tls_security_level = may zorgt ervoor dat inkomende verbindingen versleuteling gebruiken zodra het externe station dit aanbiedt. Voor uitgaande leveringen gebruik ik smtp_tls_security_level = dane DNSSEC-ondersteunde beleidscontroles om downgrade-aanvallen moeilijker te maken. Zonder TLS kunnen e-mails onderweg worden gelezen en gemanipuleerd, wat vooral gevaarlijk is voor formulieren, bestellingen of accountgegevens. Als TLS altijd actief is, verlaag ik het risico op afluisteren en MITM aanzienlijk en behaal ik betere afleveringspercentages omdat grote providers beveiligde verbindingen gunstig beoordelen.
Sleutels, certificaten en protocollen in Postfix
Ik heb twee certificaten klaarliggen: een RSA-certificaat en een ECDSA-certificaat zodat oude en nieuwe MTA's optimaal verbonden zijn. Ik stel de paden in Postfix duidelijk in, bijvoorbeeld smtpd_tls_cert_bestand voor RSA en smtpd_tls_eccert_bestand voor ECDSA, elk met een bijpassende sleutel. Voor schone authenticatie let ik op de volledige keten, een CN/SAN die precies overeenkomt met de host en een curve zoals secp384r1 voor de ECDSA-sleutel. Ik schakel oudere protocollen, d.w.z. SSLv2 en SSLv3, strikt uit om gedwongen downgrades te voorkomen. Als u het type certificaat aan het afwegen bent, kijk dan even naar DV, OV of EV, zodat je het juiste niveau van vertrouwen kiest.
Cijferselectie: Prioriteiten voor TLS 1.2/1.3
Ik geef voorrang aan cipher suites met PFS, d.w.z. ECDHE voor DHE, en gebruik GCM of CHACHA20-POLY1305. Onder TLS 1.3 verlost de stack je van veel legacy problemen, terwijl TLS 1.2 nog steeds een duidelijke lijst vereist. Onveilige of zwakke suites zoals RC4, Ik verwijder 3DES, CAMELLIA, aNULL, eNULL. Voor Postfix gebruik ik smtpd_tls_cijfers = hoog en een beperkende tls_hoge_cijferlijst, zodat er geen verouderde algoritmen doorheen glippen. Als je dieper kijkt, zie je de Handleiding voor codeersuites een gemakkelijk te begrijpen categorisatie zonder ballast.
| TLS-versie | Favoriete codeersuites | Status | Tip |
|---|---|---|---|
| TLS 1.3 | TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_128_GCM_SHA256 | actief | Selectie stevig in het protocol, geen oude problemen meer. |
| TLS 1.2 | ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305 | actief | Geef prioriteit aan PFS, geef de voorkeur aan GCM/CHACHA. |
| Verouderd | RC4, 3DES, CAMELLIA, AES128-SHA, aNULL/eNULL | vergrendeld | Volledig uitschakelen om veiligheidsredenen. |
Postfix: concrete parameters voor main.cf
Ik stel een duidelijke configuratie in zodat de MTA zowel inkomend als uitgaand veilig spreekt. Voor efemere ECDH gebruik ik smtpd_tls_eecdh_grade Ik stel de curvekwaliteit in en schakel compressie uit om CRIME-achtige aanvallen te voorkomen. Een sterk DH-bestand met 4096 bits voorkomt zwakke DHE-onderhandelingen. Ik leg harde beperkingen op aan protocollen en dwing een hoge cipher kwaliteit af, met een voorkeur voor TLS 1.3. In het begin helpt een gematigd logniveau me om handshakes te controleren zonder het journaal te overspoelen.
# activering en beleid
smtpd_tls_beveiligingsniveau = mei
smtp_tls_beveiligingsniveau = dane
# Certificaten (voorbeeldpaden)
smtpd_tls_cert_file = /etc/ssl/certs/mail.example.de.cer
smtpd_tls_key_bestand = /etc/ssl/private/mail.example.de.key
smtpd_tls_eccert_bestand = /etc/ssl/certs/mail.example.de_ecc.cer
smtpd_tls_eccert_bestand = /etc/ssl/private/mail.example.de_ecc.key
# protocollen en cijfers
smtpd_tls_protocollen = SSLv2, SSLv3
smtpd_tls_verplichte_protocollen = SSLv2, SSLv3
smtpd_tls_cijfers = hoog
tls_high_cipherlist = !aNULL:!eNULL:!RC4:!3DES:!CAMELLIA:HIGH:@STRENGTH
tls_ssl_opties = NO_COMPRESSION
smtpd_tls_eecdh_grade = ultra
# DH parameters
smtpd_tls_dh1024_param_file = /etc/postfix/dh_4096.pem
# DNSSEC/DANE (indien beschikbaar)
smtp_dns_support_level = dnssec
# Loggen
smtpd_tls_logniveau = 1
Ik houd de certificaatketen compleet, let op de juiste rechten voor privé sleutelbestanden en controleer de logs na het herladen. Als TLS 1.2 nodig is voor legacy-partners, houd ik me strikt aan GCM/CHACHA en blokkeer ik al het andere. Voor TLS 1.3 vertrouw ik op de standaarden van de stack en vermijd ik speciale paden die het onderhoud bemoeilijken. OCSP stapling speelt alleen een rol bij SMTP als een upstream proxy dit aanbiedt, dus ik controleer dit alleen bij overeenkomstige setups. Na elke wijziging valideer ik met OpenSSL om neveneffecten in een vroeg stadium te herkennen en om er zeker van te zijn dat de e-mailversleuteling consistent.
Transportauthenticiteit met DANE, MTA-STS, SPF, DKIM en DMARC
Ik combineer TLS met DANE, door ondertekende TLSA-records te publiceren onder DNSSEC. Daarnaast stel ik MTA-STS in zodat peers op afstand weten dat mijn host TLS vereist en welke MX ze moeten aanhouden. Voor identiteitsbinding onderteken ik uitgaande mails met DKIM en veilige domeinaflevering via SPF-regels. Tot slot definieert DMARC hoe ontvangers moeten omgaan met afwijkingen, waardoor spoofing veel moeilijker wordt. Deze componenten werken samen: TLS beschermt het transport, terwijl authenticatie de afzender versterkt en de afleversnelheid merkbaar verhoogt.
Als prestaties een knelpunt zijn, optimaliseer ik sessiehervatting, hardwarefuncties en de handshake zelf. Je kunt aan de slag met praktische trucs met TLS handdruk sneller, om de wachttijd bij het opzetten van een verbinding te verminderen. Belangrijk: Ik houd cipher selectie en resumption in balans, omdat zwakke compromissen niet lonen in termen van veiligheid. Snelle TLS-onderhandeling levert aanzienlijke besparingen op, vooral bij grote mailvolumes. Deze manier Doorvoer en veiligheid in evenwicht.
Testen, bewaking en audits
Ik controleer handshakes lokaal met openssl en controleer de protocolversie, de versleuteling en de certificaatketen. De opdracht openssl s_client -connect mail.example.de:25 -starttls smtp laat me live zien wat de server op afstand aan het onderhandelen is. Na configuratiewijzigingen gebruik ik postfix controleren en kijk specifiek naar smtpd_tls_logniveau, om foutpatronen te isoleren. Externe TLS-scanners helpen bij het categoriseren van publieke zichtbaarheid, vooral na certificaatwijzigingen. Een regelmatige auditcyclus beschermt tegen sluipende verslechtering, bijvoorbeeld als een bibliotheekwijziging de codeerprioriteiten beïnvloedt.
Vaak verkeerde configuraties en snelle oplossingen
Ik zie vaak verouderde cijfers zoals AES128-SHA, die nog steeds actief zijn en PFS voorkomen. Een strikte cipher string en de duidelijke blokkering van LOW/MD5/RC4/3DES helpt hier. Tweede patroon: ontbrekende tussenliggende certificaten, waardoor externe stations de keten niet kunnen verifiëren; ik voeg het bundelbestand toe en test opnieuw. Op apparaten zoals een Synology, stel ik het TLS profiel in op modern en verwijder ik legacy opties zodat de SMTP server modern spreekt. Voor Microsoft Exchange controleer ik specifiek TLS 1.2/1.3 policies, certificaattoewijzing per connector en eventuele cipher overrides in de hostconfiguratie zodat de Handdruk-selectie is goed.
Voorbeeld: TLS 1.3, 0-RTT en Post-Quantum
Ik geef de voorkeur aan TLS 1.3 omdat de handdruk korter is en oude opties zijn weggelaten, wat het aanvalsoppervlak verkleint. De selectie van de cijfer Ik gebruik 0-RTT niet in de SMTP context, omdat replay aanvallen hier onnodige risico's met zich meebrengen. Voor de toekomst houd ik hybride post-quantum procedures in de gaten, die hun weg naar de mailomgeving zouden kunnen vinden zodra standaardisatie en ondersteuning volwassen worden. Het blijft belangrijk dat ik beleid en monitoring zo inricht dat nieuwe procedures later zonder verstoring kunnen worden geïntegreerd.
Prestaties en leveringspercentage in een oogopslag
Ik meet de Latency van de TLS-handdruk en het optimaliseren van caches om hergebruik mogelijk te maken. Sessiehervatting (tickets/ID's) vermindert de computerbelasting en versnelt terugkerende verbindingen tussen MTA's. Voor het intrekken van certificaten vertrouw ik op stapelbare informatie bij de upstream proxy, indien beschikbaar, om extra toegang te besparen. Grote ontvangers beoordelen veilige transporten positief, wat de afleveringsgraad verhoogt, terwijl onveilige paden het risico op spam en afwijzing verhogen. Met een duidelijk TLS-beleid, solide DNS-vermeldingen en een schone handtekeningketen creëer ik een betrouwbare basis voor Bezorgbaarheid.
Mijn instelschema
Ik begin met het verkrijgen van het certificaat van een betrouwbare CA, genereer ECDSA en RSA en sla beide netjes op de host op. Dan pas ik de main.cf met de TLS-parameters, stel sterke cijfers in en schakel oude protocollen uit. Een vers DH-bestand met 4096 bits wordt toegevoegd, gevolgd door een reload en de eerste OpenSSL-controles. Daarna stel ik DANE in, voeg MTA-STS toe en controleer SPF/DKIM/DMARC op geldigheid. Tot slot voer ik tests uit tegen externe doelen, controleer ik logs tijdens het gebruik en plan ik regelmatige audits zodat de Configuratie op lange termijn veilig blijft.
Ontbrekende modules: Indiening, SMTPS en SNI
Ik beveilig niet alleen poort 25, maar ook submission (587) en optioneel SMTPS (465). Voor verzending dwing ik encryptie en authenticatie af, zodat gebruikerswachtwoorden nooit in platte tekst worden verzonden. In master.cf Ik activeer de services en stel specifieke overrides in:
# indiening (poort 587) met STARTTLS en auth verplichting
indiening inet n - y - - smtpd
-o syslog_name=postfix/indiening
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_auth_only=yes
-o smtpd_sasl_auth_enable=yes
-o milter_macro_daemon_name=ORIGINATING
# SMTPS (poort 465) als wrapper-modus, indien nodig
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_name=ORIGINATING
Als ik meerdere maildomeinen op één host bedien met mijn eigen certificaten, gebruik ik SNI. Ik gebruik een SNI-map om het juiste certificaatpad voor elke doelhost toe te wijzen en ervoor te zorgen dat MUA-clients ook het juiste certificaat te zien krijgen. Zo zorg ik ervoor dat clients gescheiden worden met een consistente TLS-identiteit.
Beleid per domein: fijnkorrelige controle
Naast het wereldwijde beleid beheer ik ook smtp_tls_policy_maps Uitzonderingen en aanscherping per ontvangersdomein. Zo kan ik legacy-partners geleidelijk migreren of bijzonder strenge eisen opleggen voor gevoelige doelen.
# main.cf
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
# /etc/postfix/tls_policy (voorbeeldregels)
example.org dane-only
legacy.example.net mag
secure.example.com secure
alleen-dan dwingt DANE-bescherming af zonder CA-afhankelijkheid, beveilig vereist een geldige CA-keten en weigert de levering van platte tekst, mei blijft opportunistisch. Na wijzigingen bouw ik de kaart op met postmap en Postfix opnieuw laden.
DANE en MTA-STS: concrete implementatie
Voor DANE Ik publiceer TLSA-records onder DNSSEC. Ik geef de voorkeur aan DANE-EE (3 1 1) omdat het pinnen op de openbare sleutel mogelijk maakt en certificaatwijzigingen met dezelfde sleutel vergemakkelijkt. Een voorbeeld van een TLSA-record onder _25._tcp.mail.example.de ziet er als volgt uit:
_25._tcp.mail.example.de. IN TLSA 3 1 1
Ik genereer de hash van het ECDSA- of RSA-certificaat en zorg ervoor dat ik het roteer voordat het verloopt. Het is belangrijk dat de DNS-zone ondertekend is en dat de keten van delegaties zonder hiaten gevalideerd is.
Voor MTA-STS Ik host het beleidsbestand via HTTPS en voeg de TXT DNS entry toe. Op deze manier geef ik aan dat peers op afstand TLS spreken en alleen worden geaccepteerd met een gedefinieerde MX. Een minimalistisch beleidsbestand:
versie: STSv1
modus: afdwingen
mx: mail.example.de
maximale leeftijd: 604800
Er wordt een TXT-vermelding toegevoegd in het DNS onder _mta-sts.voorbeeld.de met de huidige versie. Optioneel stel ik het volgende in TLS-RPT via TXT onder _smtp._tls.example.de om rapporten te ontvangen over schendingen van het beleid. Deze telemetrie helpt me om storingen, downgrades en defecte certificaten in een vroeg stadium te herkennen.
Protocollen aanscherpen, vercijfering specificeren
Ik verscherp de protocollimieten en dwing servervoorkeur af. TLS 1.0/1.1 zijn vandaag de dag overbodig; ik sta TLS 1.2 en 1.3 alleen toe in de diepte en op uitgaande basis. Voor TLS 1.2 definieer ik een expliciete positieve lijst om gemengde bestanden van oude cijfers uit te sluiten:
# Extra verharding (main.cf)
smtpd_tls_protocollen = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocollen = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_verplicht_protocollen = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
# Expliciete cijfermatige lijst TLS 1.2 (alleen 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
# Servervoorkeur gebruiken
tls_preempt_cipherlist = ja
Ik zorg ervoor dat ECDHE de voorkeur krijgt en DHE slechts een noodoplossing is. Ik houd mijn DH bestand up-to-date; onder TLS 1.3 speelt het geen rol, maar het is nog steeds nuttig voor zeldzame DHE acties.
Sessiehervatting en caches
Om dingen te versnellen, activeer ik sessiecaches voor de client en server om herverbindingen gunstiger te maken. CPU-belasting en latentie zijn merkbaar verminderd, vooral bij een hoge doorvoer van mail:
#-sessiecache (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_verbinding_hergebruik = ja
Ik controleer de trefkans in de logboeken en zorg ervoor dat er geen te kort is. ticket_levensduur in de TLS-bibliotheek om de hervatting te vertragen. Belangrijk: Hervatting mag het beleid niet verzwakken; ik houd me aan dezelfde ciphervereisten.
Gecertificeerd bedrijf: Rotatie en kettingonderhoud
Ik automatiseer het vernieuwen en herladen van de MTA zodat er geen verlopen certificaten in werking komen. Na elke vernieuwing controleer ik of de blad- en tussenliggende certificaten volledig in de bundel zitten. Voor ECDSA/RSA dubbele werking, zorg ik ervoor dat beide paren roteren voordat een massale verandering problemen veroorzaakt voor clients. Ik test het SNI pad en indiening apart omdat MUA's andere foutpatronen kunnen vertonen dan MTA's.
Logging en diagnostiek uitdiepen
Ik vergroot tijdelijk de logboekdiepte wanneer zich een probleem voordoet en gebruik on-board tools voor kruiscontroles:
# gerichte logging (main.cf)
smtp_tls_logniveau = 1
smtp_tls_note_starttls_aanbieding = ja
Met posttls-vinger target.example.com Ik controleer welk beleid een MTA op afstand verwacht en welke cijfers/protocollen worden onderhandeld. Ik gebruik postconf -n | grep tls, om alleen expliciet ingestelde TLS-parameters te zien; op deze manier kan ik sneller afwijkingen van de standaardwaarden vinden. In de logboeken zoek ik naar termen als geen gedeeld cijfer, certificaat verifiëren mislukt of protocolversie, die direct wijzen op een cipher mismatch, ketenproblemen of te strenge/te lakse protocollimieten.
Compatibiliteit beheren zonder de beveiliging op te offeren
Ik plan overgangen bewust: ik blijf op de hoogte van mei, om te voorkomen dat mails van legacy servers over de hele linie verloren gaan, maar log leveringen in platte tekst. Uitgaand blijf ik streng (DANE/MTA-STS/secure) en gebruik ik smtp_tls_policy_maps voor individuele gevallen. Als individuele partners alleen TLS 1.2 met AES-GCM kunnen beheren, is dat acceptabel; ik beheer alles daaronder via overeengekomen uitzonderingen met een beperkte runtime, documenteer ze en neem ze op in de migratieplanning. Dit houdt het algemene niveau hoog zonder de bedrijfsvoering te blokkeren.
TLS standaardinstellingen van het systeem in een oogopslag
Houd er rekening mee dat Postfix de TLS-bibliotheek van het systeem gebruikt. Updates van OpenSSL/LibreSSL kunnen cipher prioriteiten en TLS 1.3 gedrag veranderen. Na systeemupdates controleer ik daarom steekproefsgewijs handshakes en vergelijk de uitvoer van postconf -n met mijn doelwaarden. Een set compatibiliteitsniveau in Postfix helpt om stabiele standaardinstellingen te behouden, maar ik vertrouw er niet blindelings op en documenteer expliciete afwijkingen in main.cf/master.cf.
Kort overzicht voor beheerders
Ik wil benadrukken dat sterke cijfers met PFS, schone certificaten en duidelijk beleid essentieel zijn voor SMTP cruciaal. TLS 1.3 verlost je van legacy problemen, terwijl TLS 1.2 een gedisciplineerde cipherlijst vereist. DANE en MTA-STS verharden het transportpad, SPF/DKIM/DMARC beveiligen identiteit en rapportage. Regelmatige tests en logboekanalyses laten in een vroeg stadium zien of een verandering ongewenste neveneffecten heeft. Met deze handleiding kunt u uw mailserver veilig, performant en toekomstbestendig maken, zonder onnodige wijzigingen. Risico's.


