在我的伺服器中為多個域(網站)使用 DKIM
由於我在 Stack 中找不到這個確切的教程,所以我與大家分享我的發現。多虧了這個社區,我總能解決問題。謝謝!
原始問題:我已閱讀 MountainX 發布的教程(https://askubuntu.com/questions/134725/setup-dkim-domainkeys-for-ubuntu-postfix-and-mailman),但我不知道如何如果我想為多個域託管和發送電子郵件,請應用這些步驟。有人有線索嗎?
好的!我從問題中提到的文章中弄清楚了這一點。我在答案本身和其中提供的連結之間做了一種混合。特別是第四個連結是我使用的那個。
所以事情是這樣的。假設您有一台伺服器或 VPS,並將您的一個域作為主域並用作伺服器名稱(在我的範例中:mydomain.com)。
因此,首先,我們將更改為 root 以使事情變得更容易,但您可以跳過這一步並在每個命令之前使用 sudo。
sudo su
現在,我們安裝 OpenDKIM:
apt-get install opendkim opendkim-tools
讓我們修復配置文件。我們正在開
/etc/opendkim.conf
版。我使用nano,但與其他編輯器相同。nano /etc/opendkim.conf
打開後,讓它看起來像這樣。如果您覺得舒服,您可以更改一些選項,但
Domain
,KeyFile
和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
接下來,我們創建一些文件夾和文件,其中包含有關 OpenDKIM 應該使用和處理什麼的資訊。目前,該
TrustedHosts
文件。我們創建和編輯它:mkdir /etc/opendkim nano /etc/opendkim/TrustedHosts
我們必須在此文件中放入受信任地址列表:localhost 和 127.0.0.1,以及您的伺服器名稱和 IP:
127.0.0.1 localhost 192.99.34.121 mydomain.com
現在我們編輯 OpenDKIM 配置文件。
nano /etc/default/opendkim
並在文件末尾添加這些行。他們會告訴 OpenDKIM 它應該在哪個埠接受簽名請求:
SOCKET="inet:8891@localhost" # listen on loopback on port 8891
我們打開 Postfix 配置文件。
nano /etc/postfix/main.cf
並將這些行添加到文件的末尾。他們會告訴 Postfix 它應該發送要簽名的電子郵件以及在哪裡簽名。
milter_default_action = accept milter_protocol = 6 smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891
如果您現在不添加域,則可以重新啟動所有內容,以便配置生效。
/etc/init.d/opendkim restart /etc/init.d/postfix reload /etc/init.d/postfix restart
完畢!伺服器已準備好使用 DKIM。現在,您需要將您的域添加到此系統。以下過程對於您要添加的所有域都是相同的。我將使用 otherdomain.com 作為範例,將其替換為您自己的。
請記住,我以前是 root,但如果您不是,請執行
sudo su
或在您的命令前加上關鍵字sudo
.sudo su
首先,我們為我們的域創建一個目錄並進入其中:
mkdir -p /etc/opendkim/keys/otherdomain.com cd /etc/opendkim/keys/otherdomain.com
現在我們為域生成一個密鑰:
opendkim-genkey -r -d otherdomain.com
我們賦予 OpenDKIM 使用者新創建文件的所有權:
chown opendkim:opendkim default.private
我們打開
KeyTable
文件為我們的新域添加我們的新密鑰:nano /etc/opendkim/KeyTable
我們添加到文件的末尾(在我們可能擁有的所有其他域之後):
default._domainkey.otherdomain.com otherdomain.com:default:/etc/opendkim/keys/otherdomain.com/default.private
我們打開
SigningTable
文件。nano /etc/opendkim/SigningTable
並在文件末尾追加(同樣,我們將為每個域保留一行):
otherdomain.com default._domainkey.otherdomain.com
我不確定是否有必要進行下一步,但我只是這樣做了,以防萬一……我們打開
TrustedHosts
文件。nano /etc/opendkim/TrustedHosts
並在文件末尾添加:
otherdomain.com
最後一件事:我們顯示文件的內容
/etc/opendkim/keys/otherdomain.com/default.txt
。cat /etc/opendkim/keys/otherdomain.com/default.txt
並將引號之間的資訊添加到
TXT
域的DNS Zone中的記錄中,我們也必須使用default._domainkey
該記錄的名稱。注意:“引號之間”是以“v=DKIM1;k=rsa; p=WIGfM...
”開頭的文本。如果我們完成了添加域(到現在為止),我們重新啟動一切以應用 cnages。
/etc/init.d/opendkim restart /etc/init.d/postfix reload /etc/init.d/postfix restart
完畢!