Możesz ułatwić zapobieganie podszywaniu się przez dodanie podpisu cyfrowego do nagłówków wiadomości wychodzących z wykorzystaniem standardu DKIM. Wymaga to użycia klucza prywatnego domeny do szyfrowania nagłówków poczty wychodzącej domeny oraz dodania publicznej wersji tego klucza do rekordów DNS domeny. Serwery adresatów mogą następnie pobrać klucz publiczny na potrzeby odszyfrowania nagłówków wiadomości przychodzących i sprawdzenia, czy wiadomość faktycznie pochodzi z Twojej domeny i nie została w międzyczasie zmodyfikowana.

Zaczynamy:

Oczywiście potrzebujemy dostępu do serwera z prawami administratora:

su
  1. Instalujemy OpenDKIM:
apt-get install opendkim opendkim-tools

2. Edytujemy plik konfiguracyjny odkomentowując Domain, KeyFile i Selector:

# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.
#
#Domain                  example.com
#KeyFile                 /etc/opendkim/201205.private
#Selector                201205
#
# Commonly-used options
Canonicalization        relaxed/simple
Mode                    sv
SubDomains              yes
# Log to syslog
Syslog                  yes
LogWhy                  yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask                   022
UserID                  opendkim:opendkim
#
KeyTable                /etc/opendkim/KeyTable
SigningTable            /etc/opendkim/SigningTable
ExternalIgnoreList      /etc/opendkim/TrustedHosts
InternalHosts           /etc/opendkim/TrustedHosts
#
Socket                  inet:8891@localhost
#EOF

3. Następnie tworzymy foldery i pliki, przechowujące informacje o tym, z czego OpenDKIM wykorzysta. Na razie plik TrustedHosts. Tworzymy i edytujemy go:

mkdir /etc/opendkim
nano /etc/opendkim/TrustedHosts

4. Dodajemy do pliku hosty, które ma obsługiwać OpenDKIM (w przypadku wielu domen, dodajemy je również):

127.0.0.1
localhost
mydomain.com
mydomain1.com
mydomain2.com

5. Edytujemy plik konfiguracyjny:

nano /etc/default/opendkim

6. Dodajemy tę linię na końcu pliku. Powiedzą OpenDKIM, który port powinien obsługiwać żądanie podpisywania:

SOCKET="inet:8891@localhost" # listen on loopback on port 8891

7. Edytujemy plik konfiguracyjny Postfixa:

nano /etc/postfix/main.cf

8. Dodajemy tę linię na końcu pliku. Będą informować, Postfix, że wysyłane e-maile mają być podpisane i gdzie.

milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

9. Restartujemy wszystko:

/etc/init.d/opendkim restart
/etc/init.d/postfix reload
/etc/init.d/postfix restart

10. Teraz musimy zająć się kluczami.
Ale najpierw stwórzmy katalogi dla domen i przejdźmy do nich:
otherdomain.com jest tu przykładową domeną, należy ją zastąpić swoją domeną

mkdir -p /etc/opendkim/keys/otherdomain.com
cd /etc/opendkim/keys/otherdomain.com

11. Wygenerujmy klucz dla domeny:

opendkim-genkey -r -d otherdomain.com

12. Nadajmy odpowiednie prawa dla wygenerowanego klucza:

chown opendkim:opendkim default.private

13. Utwórzmy plik KeyTable i edytujmy:

nano /etc/opendkim/KeyTable

14. Teraz dodajemy wpis:

default._domainkey.otherdomain.com otherdomain.com:default:/etc/opendkim/keys/otherdomain.com/default.private

Przypominam, że otherdomain.com jest przykładową domeną i należy ją zamienić.

15. Znów edytujemy lub tworzymy plik:

nano /etc/opendkim/SigningTable

16. Dodajemy wpis:

otherdomain.com default._domainkey.otherdomain.com

17. Jeszcze jeden plik:

nano /etc/opendkim/TrustedHosts

18. I dodajemy domenę:

otherdomain.com

19. Ostatni, ale bardzo ważnym krokiem jest dodanie klucza do konfiguracji domeny.
To robimy u operatora domeny, np nazwa.pl czy OVH.
W nazwa.pl należy wejść do konfiguracji domeny, wybrać ustawienia zaawansowane i dodać wpis TXT do konfiguracji domeny. Jaki? Za chwilę napiszę.
W przypadku OVH jest łatwiej. Są tam dedykowane wpisy dla DKIM – wystarczy je wypełnić

To wracamy do tego, co mamy dodać do konfiguracji domeny:

Wyświetlamy zawartość klucza dla domeny, którą konfigurowaliśmy:

cat /etc/opendkim/keys/otherdomain.com/default.txt

Zawartość klucza jest w cudzysłowiu:

"v=DKIM1;k=rsa; p=WIGfM..."

Kopiujemy całość zaczynając od v i wklejamy jako pole txt lub DKIM jeśli taką opcję posiada operator domeny.

W pole subdomena wklejamy:

default._domainkey

To tyle.

Jeszcze tylko restart wszystkiego:

/etc/init.d/opendkim restart
/etc/init.d/postfix reload
/etc/init.d/postfix restart

W przypadku wielu domen powtarzamy czynności od punktu 10, łącznie z dodaniem konfiguracji dla domen u operatora.