Domain Keys στον Exchange Server
Σε μια κουβέντα που είχα με τον εκλεκτό συνάδερφο κ.Σίμο ετέθη το θέμα των Domain Keys στον Exchange server τόσο στην έκδοση 2010 όσο και σε παλιότερες.Η Microsoft λόγω της υποστήριξης του δικού της SPF Record όσο και του SenderID επίσημως δεν υποστηρίζει Domain Keys. ( Όσον αφορά τον Exchange 2010 μιλάμε πάντα πρό SP1 καθώς άγνωσται αι βουλαί των Developpers ).
Παρόλα αυτά οι μεγάλοι mail hosters/providers ( Hotmail,Yahoo,Gmail, κλπ ) έχουν υιοθετήσει υποδομή τόσο Domain Key (RFC 4780)όσο και την εξέλιξη του το DKIM (RFC 4781) με αποτέλεσμα πολλά mail μας να κατάλήγουν στον spam/junk folder όταν ο παραλήπτης είναι σε τέτοιο Account.
Η λύση για το παραπάνω πρόβλημα είναι λίγο περίπλοκη και χρονοβόρα αλλά δουλεύει σε όλους τους
Exchange Server (2000/2003/2007 SP1 rollup 9 ή SP2 /2010) όπως επίσης και σε όλα τα IIS SMTP Services.
Ας δούμε όμως πρώτα πως δουλεύει η παραπάνω υποδομή:
Τα Domain Keys/DKIM συνδυάζουν την κρυπτογράφηση δημόσιου κλειδιού και έναν DNS server για να παρέχουν domain-level authentication για τα email μας.
Όταν ο αποστολέας ενός email ισχυρίζεται ότι προέρχεται από συγκεκριμένο domain, τα DomainKeys/DKIM παρέχουν έναν μηχανισμό με τον οποίον μπορούμε να προσδιορίσουμε αν αυτό είναι αληθές ή όχι.
Για να έχει ένα email υπογραφή DomainKeys/DKIM, θα πρέπει να έχουμε ένα ζευγάρι private key/pulic key.
Πώς δουλεύει:
Email sender->
IIS SMTP Service/Exchange Server->
DomainKeys/DKIM Sink->
DomainKeys/DKIM Sink δημιουργεί digital signature μέσω του private key βασισμένο στο email content.->
IIS SMTP Service/Exchange Server παραδίδει το μήνυμα.
Remote Server received the email->
Ελέγχει το public key απο τον DNS record του αποστολέα->
Επαληθεύει το digital signature χρησιμοποιώντας το public key.
Για να δουλέψουν όλα τα παραπάνω θα χρειαστεί να εγκαταστήσουμε αυτό.
Αφού κάνουμε την εγκατάσταση ( κρατήστε μία υποσημείωση εδώ για το τέλος ) και τρέξουμε τον DomainKeys Sink Manager επιλέγουμε Setup DomainKeys/DKIM Signature->New DomainKeys. Εκεί προσθέτουμε το domain name μας όπως επίσης και έναν selector ο οποίος προτείνεται να είναι ο s1024.Αφήνουμε τα υπόλοιπα όπως είναι και πατάμε ΟΚ.
Συγχαρητήρια μόλις δημιουργήσαμε το DomainKeys/DKIM certificate για το domain μας.
Σειρά έχει το export το οποίο γίνεται επιλέγοντας το domain name μας και πατώντας Export Public Key αυτό μας δημιουργεί ένα Public Key και ένα TXT για τον DNS μας.
Ας δούμε τώρα πως κάνουμε Import στον DNS μας:
Έστω ότι το TXT μας είναι της μορφής:
s1024._domainkey.secureitservices.eu text =
"t=y; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsu9Oe+Xq6k/SyU9dMS1hzcWj8RtjsxQ6VhLhBHoic3Fw48yaEGXiAtAJfapEKwEeVs/rF581y1pvVncIHlRjg9wp6NY3mOXBIh0Vrbklo2zqq4j4bIOtkiRkaFPjbE2WM7KmfldjhOTrzedQmbuMMFjPtUNFlpGR9Ux6zCqG1QwIDAQAB"
Step 1: Επιλέγουμε το domain μας (secureitservices.eu).
Δεξί κλίκ στο record list και επιλέγουμε "Other New Records..."
Step 2: Επιλέγουμε το Text (TXT) record και πατάμε "Create Record..."
Step 3: Εισάγουμε το t=y; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsu9Oe+Xq6k/SyU9dMS1hzcWj8RtjsxQ6VhLhBHoic3Fw48yaEGXiAtAJfapEKwEeVs/rF581y1pvVncIHlRjg9wp6NY3mOXBIh0Vrbklo2zqq4j4bIOtkiRkaFPjbE2WM7KmfldjhOTrzedQmbuMMFjPtUNFlpGR9Ux6zCqG1QwIDAQAB στο "Text" textbox και το "s1024._domainkey" Record Name.
Πατώντας ΟΚ έχουμε τελειώσει με απόλυτη επιτυχία.
Η ώρα της υποσημείωσης πριν προχωρήσουμε παρακάτω:
Σε πολλαπλούς servers:
Σε περίπτωση πολλαπλών SMTP servers πρέπει να βάλουμε το certificate ώς εξής: Αφού εγκαταστήσουμε το πρόγραμμα στον πρώτο server και δημιουργήσουμε το certificate για το domain μας, εγκαθιστούμε το πρόγραμμα και στους υπόλοιπους servers κάνοντας copy το *.pfx certificate και αποεπιλέγοντας το "I don't have a certificate ..." .
IIS SMTP Event Sink
Το παραπάνω πρόγραμμα εγκαθιστά ένα event sink που ονομάζεται "EA DomainKeys Sink" στον IIS SMTP(Exchange 2000 and Exchange 2003) OnMessageStart Event. Αυτό είναι το τελευταίο σχεδόν event πρίν ο IIS SMTP στείλει το email. Αυτό γίνεται για λόγους συμβατότητας με άλλα SMTP plug-ins που μπορεί να υπάρχουν. Σε περίπτωση που υπάρχει μόνο αυτό το plugin προτείνεται να εγκατασταθεί στο OnPostCategorize event, για λόγους performance.
Σε περιβάλλον IIS SMTP Service, Exchange 2000, Exchange 2003, θα βρείτε τα "InstallOnPostCategorize.bat" και "InstallOnMessageStart.bat" στον installation folder
Exchange 2007 Transport-Agent
Σε περιβάλλον Exchange 2007 εγκαθίσταται ένας transport-agent "EA DomainKeys Agent". Η παγίδα εδώ είναι ότι ο συγκεκριμένος transport agent πρέπει να είναι πάντα ο τελευταίος αλλιώς ο Exchange δεν δουλεύει.
Πως θα ελέγξουμε ότι το έχουμε κάνει σωστά:
Στέλνουμε ένα mail απο τον server μας σε ένα yahoo account.Αν ανοίξουμε το mail απο webmail και δούμε εικονίδιο με κλειδί δίπλα απο τον αποστολέα σημαίνει ότι το έχουμε κάνει σωστά και δουλεύει.
Καλή επιτυχία!
Υ.Γ ζητώ συγνώμη για την απουσία φωτογραφιών αλλά το Blog αρνείται να δεχτεί φωτογραφίες απο οπουδήποτε ( ADMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIINS ) . Μόλις επιλυθεί το πρόβλημα θα ανέβουν και τα σχετικά screenshots.
7 Comments
Recommended Comments