DomainKeys Identified Mail (DKIM) – metoda łączenia domeny internetowej z wiadomością email, przez to pozwalająca organizacji brać odpowiedzialność za treść emaila. Sygnatura DKIM zabezpiecza przed podszywaniem się pod nadawcę (e-mail spoofing) z innych domen. – Wikipedia
Jest to kontynuacją ciągu postów na temat walki z spamem na własnych serwerach poczty opartych o Postfix.
Instalujemy niezbędne paczki:
#debian/ubuntu apt-get install opendkim opendkim-tools
Konfigurujemy opendkim, jeżeli port 12301 jest zajęty zmieńmy go tutaj i pamiętajmy by w innych miejscach zrobić to także:
#vim /etc/opendkim.conf OversignHeaders From AutoRestart Yes AutoRestartRate 10/1h UMask 002 Syslog yes SyslogSuccess Yes LogWhy Yes Canonicalization relaxed/simple ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts KeyTable refile:/etc/opendkim/KeyTable SigningTable refile:/etc/opendkim/SigningTable Mode sv PidFile /var/run/opendkim/opendkim.pid SignatureAlgorithm rsa-sha256 UserID opendkim:opendkim Socket inet:12301@localhost
#vim /etc/default/opendkim SOCKET="inet:12301@localhost"
Poinformujmy postfix-a, że ma kolejne narzędzie do zwalczania spamu:
#vim /etc/postfix/main.cf milter_protocol = 2 milter_default_action = accept smtpd_milters = inet:localhost:12301 non_smtpd_milters = inet:localhost:12301
Jeżeli w smtpd_milters i/lub non_smtpd_milters mamy już jakieś wpisy można dodać nowe po przecinku
Utwórzmy teraz foldery i pliku konfiguracyjne, które wskazaliśmy jako tablice źródłowe:
mkdir -p /etc/opendkim/keys #vim /etc/opendkim/TrustedHosts 127.0.0.1 localhost 192.168.0.1/24 *.example.com ip_zewnętrzne_serwera #vim /etc/opendkim/KeyTable mail._domainkey.example.com example.com:mail:/etc/opendkim/keys/example.com/mail.private #vim /etc/opendkim/SigningTable *@example.com mail._domainkey.example.com
Teraz musimy wygenerować klucze, które posłużą do mechanizmu DKIM:
mkdir /etc/opendkim/keys/example.com cd /etc/opendkim/keys/example.com opendkim-genkey -s mail -d example.com chown opendkim:opendkim mail.private
Teraz będziemy musieli dodać klucz do wpisu domeny w rekordzie TXT, aby to zrobić musimy wyświetlicz klucz i dodać następujący wpis:
cat /etc/opendkim/keys/example.com/mail.txt #bind9 mail._domainkey.example.com. TXT "v=DKIM1; k=rsa; p=WARTOSC_WYSWIETLONA_ZOSTALA_POLECENIEM_WYZEJ" _adsp._domainkey.example.com. IN TXT "dkim=unknown" # unknown - część maili jest podpisanych, część nie # all - wszystkie maile powinny podpisane # discardable - wszystkie maile powinny być podpisane, jeżeli nie są usuń je po cichu
Zrestartujmy teraz wszystkie usługi, w których zmienialiśmy konfigurację:
service postfix restart service opendkim restart service bind9 restart
Aby przetestować czy udało nam sie dodać mechanizm DKIM można wysłać mail na adres: check-auth(at)verifier.port25.com
Pozostałe wpisy dotyczące tego cyklu:
Posftix i Dovecot – Idealny duet tworzący serwer poczty
Walka ze spamem cz.1 – Postfix SPF
Walka ze spamem cz.3 – Postfix DMARC
Twój opis dotyczy podpisywania wysyłanych maili. Nie dotyczy natomiast tego aby postfix sprawdzał przychodząca poczte pod kontem poprawności wpisów dla DKIM
Z tego co się orientuje, jednak jest ustawione na sprawdzanie przychodzących ustawiając:
smtpd_milters, non_smtpd_milters
Przeanalizowałem wpis, w tej konfiguracji nie był dodawany wpis DKIM do poczty wychodzącej, dzięki za czujność.