Walka ze spamem cz.2 – Postfix DKIM

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

Walka ze spamem cz.4 – Postfix SpamAssassin

Walka ze spamem cz.5 – Dovecot Sieve

2 myśli na “Walka ze spamem cz.2 – Postfix DKIM”

  1. 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

    1. 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ść.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*