Ubuntu, Postfix ve Mailman için DKIM (DomainKeys) Kurulumu


22

Ubuntu 12.04'ü Postfix ve Mailman ile çalıştırıyorum. DKIM'i kurmak istiyorum . DomainKeys Identified Mail veya DKIM, Yahoo'nun "DomainKeys" inin halefidir. Cisco'nun Tanımlanmış Postasını içerir.

Bunu ayarlamak için adımlar nelerdir?

Opendkim önerilir mi?

Sahip olduğum tek referans HowToForge , ancak burada yardım almayı tercih ediyorum (bu bağlantıdaki adımların sadece bir teyidi olsa bile). Aslında, HowToForge'daki bilgilerin modası geçmiş olduğunu düşünüyorum çünkü opendkim yerine dkim-filter'ten bahsediyor.

Yanıtlar:


39

Ubuntu Sunucusu 12.04LTS’de openDKIM ve Postfix

Geri dönüp bunu daha iyi biçimlendirmeye çalışacağım. Ancak cevabımı gönderme isteği geldiğinden, doğru biçimlendirmek için zamanım olana kadar beklemek yerine şimdi göndermek istiyorum. Zaman yetersizliğinden dolayı tüm cevabımı bir blok alıntı olarak tamamladım. Umarım bu çözüm yardımcı olur.

Bunlar benim referanslarım:

ve Wikipedia'nın konuyla ilgili iyi bir girişi var.

En azından ihtiyacınız olacak:

  • Posta sunucunuza kök erişimi
  • Alan adınız için dns kayıtlarını güncelleme erişimi

Opendkim'i depolardan yükleyin:

# sudo apt-get install opendkim opendkim-tools

Hangi “seçiciyi” kullanmak istediğinize karar vermelisiniz. Seçici, kullanmak istediğiniz anahtarı tanımlayan bir kelimedir. Burada anahtar, Mayıs 2012'de geçerli olacak şekilde 201205 seçicisini kullanacağım (kurnaz ha?). Çeşitlilik için iki örnek verdim, umarım netlik getirecektir. Sadece BİR anahtar oluşturmanız gerekir. Ancak, iki örneği de veriyorum, böylece bunları karşılaştırabilirsiniz.

  • 201205 (1. anahtar)
  • my_selector (2. anahtar)

Etki example.comalanım olacak , ancak ikinci örneğim için bir alt etki alanı kullanacağım :

  • example.com (1. anahtar)
  • mail.example.com (2. anahtar)

Aşağıdaki dizinde çalışmaya karar verdim:

# mkdir /etc/opendkim/
# cd /etc/opendkim

Seçtiğiniz seçiciyi ve etki alanını kullanarak geçerli dizindeki anahtarları oluşturun.

# opendkim-genkey -s 201205 -d example.com

Sahipliği değiştirmeniz gerekebilir veya gerekmeyebilir. Sahiplik ve izinlerin ne olması gerektiğine ilişkin aşağıdaki 2. anahtar için benim örneğimdeki ayrıntılara bakın.

İlk önce bir opendkimkullanıcı olup olmadığını kontrol etmelisiniz (kullanıcı / grup kimliğiniz farklı olabilir):

# grep opendkim /etc/passwd
opendkim:x:108:117::/var/run/opendkim:/bin/false

Ve muhtemelen bunu yapmanız gerekir:

# chmod 700 /var/run/opendkim

NOT: Bu sonraki iki komuta Ubuntu 12.04’te gerekli DEĞİLDİR. Ancak yukarıdaki komut kullanıcı opendkim'in uygun şekilde kurulduğunu göstermediyse, buna benzer şekilde yapın:

# useradd -r -g opendkim -G mail -s /sbin/nologin -d /var/run/opendkim -c "OpenDKIM" opendkim
# chown opendkim:opendkim 201205.private   
# cat 201205.private 
-----BEGIN RSA PRIVATE KEY-----
ABCCXQ...[long string]...SdQaZw9
-----END RSA PRIVATE KEY-----

Şimdi genel anahtarı kontrol edin ve bir hata olduğuna dikkat edin (Ubuntu 12.04'te openDKIM 2.5.2'de)! İçerdiği yerde içermesi ;=rsa;gerekir ;k=rsa;. kEksik. Lütfen onu yerleştir.

# cat 201205.txt
201205._domainkey IN TXT "v=DKIM1;=rsa; p=WIGfM..[snip]..QIDIAB" ; ----- DKIM 201205 for example.com

Düzeltildikten sonra şöyle görünecek:

201205._domainkey IN TXT "v=DKIM1;k=rsa; p=WIGfM..[snip]..QIDIAB" ; ----- DKIM 201205 for example.com

Ayrıca, muhtemelen bu şekilde noktalı virgüllerden kaçmanız gerekir. Bitiş yorumunu istemiyorsanız, sadece silin. Ayrıca DKIM’i test ettiğinizi, ancak henüz aktif olarak kullanmadığınızı gösteren sunucuları belirtmek için t = y işaretini eklemeniz gerektiğini unutmayın. Uygun bir kaynak kaydınız kaldı:

201205._domainkey IN TXT "v=DKIM1\;k=rsa\;t=y\;p=WIGfM..[snip]..QIDIAB"

Yukarıdaki ortak anahtarın içeriğini yetkili DNS sunucunuzda yayınlamanız gerekir. Bir TXT kaydı kullanmanızı öneririm. Bir SPF kaydı veya her iki türün kullanılıp kullanılmayacağı konusunda biraz tartışma var gibi görünüyor. Biraz okuduktan sonra, bu konuyla ilgili son söz olduğuna inanmıyorum, ancak yalnızca TXT kayıt türüne bağlı kalmayı seçtim.

Kısa bir TTL kullanmalısınız (yaşama süresi), böylece DNS'i yayması için yaşlarını beklemeden anahtarı değiştirebilirsiniz. 180 saniye kullandım.

Bir anahtar çifti oluşturmanın ikinci örneği benim için biraz daha zordu. Ne yaptığımı açıklayacağım. İlk öğe, anahtar "mail.example.com" için kullanılmasına rağmen "example.com" alan değerini kullandım. Buna deneme yanılma ile geldim. Çalışıyor, "mail.example.com" kullanırken işe yaramadı. Ne yazık ki, bunun arkasındaki nedenlerin farkında değilim. Bu gerçekten karşılaştığım tek fark, ancak alt alanları kullanma konusundaki deneyimlerimi belgelemem gerektiğini hissettim. Bulduğum diğer başlangıç ​​seviyesindeki eğiticilerin hiçbiri bunu yapmadı. İkinci bir anahtar oluştur:

opendkim-genkey -s my_selector -d example.com

yukarıdaki gibi özel anahtarın sahipliğini ve izinlerini kontrol edin. İşte nasıl görünmeleri gerektiği:

# ls -la /etc/opendkim
-rw-------  1 opendkim opendkim  891 May 10 07:44 my_selector.private

DNS kaydını yayınladıktan sonra, ile kontrol edin dig. Tam olarak kaynak kaydına (RR) girdiğiniz şeyi döndürmelidir.

$ dig 201205._domainkey.example.com txt +short
"v=DKIM1\;k=rsa\;t=y\;p=WIGfM..[snip]..QIDIAB"

Şimdi anahtarı test et. Aşağıdaki komutlar, anahtarın bulunduğu dizinde olduğunuzu varsayar (benim için / etc / opendkim).

# opendkim-testkey -d example.com -s 201205 -k 201205.private -vvv
opendkim-testkey: key loaded from /etc/opendkim/201205.private
opendkim-testkey: checking key '201205._domainkey.example.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK

Bu sonuçlar bekleniyor. "Anahtar güvenli değil" bir hata olduğunu göstermez. DNSSSEC kullanmamak beklenen bir sonucudur. DNSSEC geliyor, fakat okumaya göre henüz asal zaman için hazır değil.

2. anahtar ile örnek:

# opendkim-testkey -d example.com -s my_selector -k /etc/opendkim/my_selector.private -vvvv
opendkim-testkey: key loaded from /etc/opendkim/my_selector.private
opendkim-testkey: checking key 'my_selector._domainkey.example.com'
opendkim-testkey: key not secure
opendkim-testkey: key OK

Opendkim'in anahtarın güvenli olmadığını bildirdiğini unutmayın. Bu, DNSSEC'nin DNS sunucumda uygulanmadığı ve teorik olarak birisinin DNS aramasını engelleyebileceği ve kendi anahtarıyla değiştirebileceği ile ilgilidir.

OpenDKIM yapılandırma dosyasını düzenleyin:

# nano /etc/opendkim.conf
# cat /etc/opendkim.conf
# 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

2. anahtar örneğimi kullanıyorsanız, hedeflenen "mail.example.com" alan adıyla giriş yine de sadece ana alan adına referans verecektir:

Domain                  example.com
KeyFile                 /etc/dkim/my_selector.private
Selector                my_selector 
-----

Kaynaklarımdan birinden not: Birden fazla Postfix örneği çalıştırıyorsanız, bunu her örnek için (veya opendkim kullanmak isteyenler için) opendkim.conf dosyasına eklemeniz gerekir.

Metin editörünüzle bir dosya oluşturun /etc/opendkim/TrustedHosts:

OpenDKIM tarafından kullanılması gereken etki alanları, ana bilgisayar adları ve / veya ipler ekleyin. Localhost'u unutma.

127.0.0.1
localhost
example.com
mail.example.com
192.168.1.100 #(IP address of your server, if applicable)

(yukarıdaki son satıra ihtiyaç duymayacaksınız.) Eklenecek bir IP adresiniz varsa, yukarıdaki örneği değil kendi kodunuzu kullandığınızdan emin olun.)

Düzenle /etc/default/opendkim:

Bu satırı uncomment ve 8891 numaralı bağlantı noktasını kullanın:

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

Güvenlik duvarınızın (iptables) localhost'ta geri tepmeye izin verdiğinden emin olun:

sudo iptables -A INPUT -i lo -j ACCEPT

Ardından, metin düzenleyicinizle bir dosya oluşturun /etc/opendkim/KeyTableve etki alanını KeyTable'a ekleyin.

Satır ekle:

#EXAMPLE showing my 2nd key:
my_selector._domainkey.example.com example.com:my_selector:/etc/opendkim/my_selector.private

Sonraki Metin editörünüzle bir dosya oluşturun /etc/opendkim/SigningTableve etki alanını SigningTable'a ekleyin

Her iki örneği de gösteriyorum. 2. anahtarım için artık "mail.example.com" tam alan adını kullanmam gerektiğini unutmayın:

example.com 201205._domainkey.example.com
mail.example.com my_selector._domainkey.example.com

OpenDKIM 2.0.1 alan adlarında büyük / küçük harf duyarlı olduğuna dikkat edin. Bu örnekte OpenDKIM'in daha yeni bir sürümünü kullanıyoruz ve bu bir sorun gibi görünmüyor.

Postfix'i yapılandır. /Etc/postfix/main.cf dosyasını düzenleyin ve satırları sonuna kadar ekleyin

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

Ayrıca ana bilgisayar adını da değiştirin:

#myhostname = localhost         #original
myhostname = mail.example.com

Ayrıca / etc / hosts dosyasındaki ilgili girişi de değiştirmelisiniz. Bu değişiklikler, yeniden başlatmanın ardından etkili olur (hemen komutuyla hemen ayarlayabilirsiniz:) hostname NEW_NAME.

Postfix'i yeniden başlatın ve yeniden başlatmadıysanız opendkim:

# service opendkim restart
Restarting OpenDKIM: opendkim.
# service postfix restart
 * Stopping Postfix Mail Transport Agent postfix   [ OK ]
 * Starting Postfix Mail Transport Agent postfix   [ OK ] 

Test yapmak

İmzalanmış postanızın kimliğinin doğrulandığını ve DNS kayıtlarınızın doğru şekilde kurulduğunu kontrol etmenin en iyi yolu ücretsiz test hizmetlerinden birini kullanmaktır. Bunları kullandım:

  • Brandon Checketts Email Validator - http://www.brandonchecketts.com/emailtest.php (en sevdiğim)
  • İmzalı bir e-posta gönder: check-auth@verifier.port25.com (ayrıca favorim)
  • İmzalı bir e-posta gönder: sa-test@sendmail.net (test e-posta adreslerinin tümünü test etmek için tek bir giden iletinin Kime: alanına koyabilirsiniz)

  • İmzalı bir e-posta gönder: autorespond+dkim@dk.elandsys.com <--- BROKEN !!! Bunu kullanma.

Bunların her biri işlerin düzgün şekilde çalışıp çalışmadığını size söyleyecek ve gerekirse sorun giderme konusunda bazı öneriler verecektir.

Bir Gmail hesabınız varsa, hızlı ve kolay bir test için oraya imzalı bir mesaj da gönderebilirsiniz.

Her şeyin yolunda olduğuna sevindikten sonra, DNS TXT kaydındaki test bayrağını kaldırabilir ve TTL'yi artırabilirsiniz.

Bitti!


Kesin olarak mükemmel çalışıyor. İlerleme yolunda teşekkürler.
Aki

1024 bit anahtar üretmek için -b 1024 tuşunu kullanın. Bu benim gmail imzalı olmak için bir zorunluluktur!
Prashant Singh

1
"Opingkim.conf" un "Domain", "KeyFile" ve "Selector" parametrelerinin "SigningTable" ve "KeyTable" kullanılırken dikkate alınmadığını lütfen unutmayın. Bunun bir noktada değişip değişmediğinden emin değiliz ama bahsetmeye değer ( opendkim.org/opendkim.conf.5.html )
billynoah

0

Bu iyi bir rehber.

Bu opendkim açıklar edilir gerçekten tavsiye ve dkim imza uygulamak için adımlar dkim-filtreli aynı olduğunu.

dkim-milter artık gelişmiyor. Özgün yazar, kaynaktan vazgeçti ve şimdi opendkim'i geliştiriyor. Lucid ve sonraki sürümler için dkend-filtresi yerine opendkim tercih edilir. Bu sayfadaki talimatlar aynı olmalıdır (yalnızca gerektiği şekilde ayarlanmış paket isimleriyle).

BTW Domainkeys, DKIM'in onaylanmamış öncülüdür. SPF ve DKIM için DNS Bölgenize TXT kayıtları ekleyin ancak Domainkey'lerle uğraşmanıza gerek yok.


Bağladığın o makale güncel değil. opendkim şimdi kullanılacak paket. Ayarlayarak çalışıyorum ...
Monica Cellio için MountainX

Bir sunucuyu Exim4'ten Postfix-Dovecot'a çevirmek üzereyken ve güncel rehberlik arayışı içinde olacağım için deneyimlerinizden bir güncellemeye değer veririm.
50'de

Çözümümü yayınladım ama biçimlendirmek için zamanım olmadı. Siz (veya başkası) biçimlendirmek için bekliyoruz. Ancak notlarım çok geniş, bu yüzden gecikmeden onlara erişebilmenizi istedim. Umarım yardımcı olurlar.
Monica Cellio için MountainX,

-1

http://wiki.zimbra.com/wiki/Configuring_for_DKIM_Signing

Her zaman bir şey hakkında birkaç rehber ref emin emin olun. Kurulum çalışmaları hakkındaki bu tutumu henüz doğruladım ve bunu doğruladı. Ancak, etki alanı kaydının ayrıntılı olması için örnek bir TXT görüntülemek isteyebilirsiniz. İnsanların kafası karışabilir ve açıkça anahtarın her şeyini tamamen doğru olduğundan emin olmadığım p değerine koyabiliriz. yani ... dahil olmak üzere ----- KAMU KUTU ANAHTARI ----- ve ----- SON KAMU ANAHTARI -----. Bu, bazılarının karışmasına neden olabilir. Sadece işaretleyicileri değil şifreleme bölümünü koyduğunuzdan emin olun.


3
Ubuntu'ya Sormaya Hoş Geldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
Braiam
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.