DKIM herhangi bir etki alanından giden postayı imzaladı (Postfix ve Ubuntu ile)


40

Posta sunucumda DKIM kurulumu yaptım (postfix ve ubuntu) bu yüzden giden e-postaları imzaladı. Bu talimatları kullandım: https://help.ubuntu.com/community/Postfix/DKIM

Ancak, yalnızca kendime ait değil, herhangi bir alandan (Kimden adresine) gelen e-postaları imzalamam gerekiyor. Bir e-posta bülten hizmeti oluşturuyorum ve müşteriler sunucu üzerinden kendi e-postalarını gönderecekler.

İlk önce /etc/dkim-filter.conf içinde "Domain *" yazdım. Bu, etki alanı ne olursa olsun DKIM başlıklarını tüm giden e-postalara eklemesini sağladı.

Ancak, doğrulama kontrolü gmail’de başarısız oluyor, çünkü etki alanını adresimden (etki alanımdan değil (ve dns kaydı)) kontrol ediyor. Bunu nasıl yapacağını bilen var mı?

Yanıtlar:


41

Tamam, bunu kendi başıma çözmeyi başardım, ancak buraya gelecek vaad etmek için buradaki adımları göndermek istedim, çünkü bu konuda sıfır dokümantasyon vardı (bulabildiğim) ve pratikte tahmin edilip kontrol edildi.

"Etki Alanı *" yı yukarıda açıklandığı şekilde ayarladıktan sonra, şu şekilde imzalar:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=clientdomain.com;
    s=main; t=1250005729;
    bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
    h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
    b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
     31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
     GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=

"d = clientdomain.com" u farkedin. Bunu, e-postadaki adrese göre oluşturuyordu; adres adresi "contact@clientdomain.com" gibi bir şeydi. Açıkçası, istemcinin alanını kontrol ettiyse ve benimki değil, hiçbir DNS TXT kaydı yoktu ve doğrulama başarısız olacaktı.

Her neyse, bu belgeselde bir KeyList parametresi ayarlayabileceğinizi öğrendim. http://manpages.ubuntu.com/manpages/hardy/man5/dkim-filter.conf.5.html

Gerçekten ne yapmak istediğimi tarif etmedi, ama onunla oynayacağımı düşündüm. KeyFile'i yorumladım ve KeyList'i oluşturduğum rastgele bir dosya adı olan "/etc/mail/dkim_domains.key" olarak belirledim. Sonra bu dosyayı yarattım ve içine koydum "*: feedmailpro.com: /etc/mail/dkim.key". Bu, herhangi bir müşteri etki alanı için etki alanımla (feedmailpro.com) imzalayın ve dkim.key dosyasını kullanın.

DKIM ve postfix yeniden başlatıldı

sudo /etc/init.d/dkim-filter restart
sudo /etc/init.d/postfix restart

Şimdi bu bir test e-postası gönderdiğimde oluşturduğu anahtar.

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
    s=dkim.key; t=1250005729;
    bh=twleuNpYDuUTZQ/ur9Y2wxCprI0RpF4+LlFYMG81xwE=;
    h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
    b=kohI7XnLlw/uG4XMJoloc4m9zC13g48+Av5w5z7CVE0u3NxsfEqwfDriapn7s7Upi
     31F3k8PDT+eF57gOu2riXaOi53bH3Fn/+j0xCgJf8QpRVfk397w4nUWP/y8tz4jfRx
     GhH21iYo05umP0XflHNglpyEX02bssscu2VzXwMc=

İyileştirme, d = şimdi etki alanıma ayarlanmış (e-posta adresinin etki alanı olmamasına rağmen) görüyorsunuz. Ancak s = dkim-filter.conf 'da seçtiğim seçici yerine "dkim.key" olarak değiştirildi. Orijinal kurulum talimatlarında seçiciyi "posta" olarak ayarlarım . Garipti, ancak anahtarım dkim.key'nin dosya adıyla değiştiğini fark ettim.

Bu yüzden "/ etc / mail/dkim.key" ismini "/ etc / mail / mail" olarak değiştirdim. Ayrıca referansı "/etc/mail/dkim_domains.key" adresinde güncelledi.

Dkim-filter ve postfix'i tekrar yukarıdakiyle aynı şekilde yeniden başlatın ve şimdi çalışmaya başladı. İşte doğru seçiciyi kullanarak doğru şekilde işaret eden son başlık (görünüşe göre anahtarın dosya adına göre).

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=feedmailpro.com;
    s=mail; t=1250006218;
    bh=tBguOuDhBDlhv0m4KF66LG10V/8ijLcAKZ4JbjpLXFM=;
    h=Date:From:To:Message-Id:Subject:Mime-Version:Content-Type;
    b=c9eqvd+CY86BJDUItWVVRvI3nibfEDORZbye+sD1PVltrcSBOiLZAxF3Y/4mP6vRX
     MUUNCC004oIH1u7FYafgF32lpuioMP1cd7bi6x3AZ5zH4BYETNBnnz4AhAPBtqlIh/
     FFMz8jkhhLhcM2hDpwJkuKjAe3LzfNVDP8kD11ZI=

Şimdi s = posta doğru ve d = feedmailpro.com doğru. İşe yarıyor!

Genel olarak bu beklediğimden çok daha zordu ve bunun nasıl yapılacağına dair hiçbir belge bulunmuyordu (tüm giden alanlara imza atıyordu), ancak açık kaynak kodlu bir yazılım olduğunu düşünüyorum, bu yüzden şikayet edemem.

Son bir not, TXT DNS kaydının doğru kurulup kurulmadığını kontrol etmek için etki alanınızdaki gibi bir komut yapabilirsiniz.

dig mail._domainkey.feedmailpro.com TXT

Kazı kurmanız gerekebilir (sudo apt-get install kazı). DNS girişini eklemek için Slicehost yöneticisi kullanıyorsanız, bunun gibi TXT kaydına girersiniz.

Type: TXT
Name: mail._domainkey
Data: k=rsa; t=s; p=M5GfMA0...YOUR LONG KEY...fIDAQAB
TTL seconds: 86400

Adın neden "mail._domainkey.feedmailpro.com" gibi bir süre sonunda veya etki alanım olmadan "mail._domainkey" olarak ayarlandığını gerçekten anlamıyorum. Ama her neyse, iş gibi görünüyor, ben de mutluyum.

Bunu kopyalamaya çalışıyorsanız, işte başladığım talimatlar: https://help.ubuntu.com/community/Postfix/DKIM


2
Bunu buraya koyduğun için teşekkürler, benim gibi başkalarına yardım ediyor :)
thomasrutter

Yur thomas hoş geldiniz!
Brian Armstrong

Vay, bu çok yardımcı oldu. Görevine rastlayana kadar "s = dkim.key" yüzünden kafamı çarpıyordum!
3mol

Ubuntu.com adresindeki rehberin bahsetmediği bir şey, onu çalıştırdıktan sonra, bir test olmadığını belirtmek için TXT kaydındaki t = y'yi t = n olarak değiştirin.
3molo

SigningTable'ı vb. Kullanmak için bazı iyi kaynaklar var. Örneğin, blog.tjitjing.com/index.php/2012/03/… (mükemmel) ve hatta opendkim readme, opendkim.org/opendkim-README
rfay

15

Brian Armstrong'un dkim-filtre cevabından ilham alan İşte OpenDKIM için bunu nasıl yaptım .

/etc/opendkim.conf

Syslog          yes
UMask           002
KeyTable        /etc/mail/dkim_key_table
SigningTable    refile:/etc/mail/dkim_signing_table

SigningTable'ın yeniden doldurduğunu unutmayın: tanımında bu, dosyanın normal ifadeler içerdiğini belirtir; Bizim durumumuzda * joker karakter.

/ Etc / mail / dkim_key_table

keyname  example.com:selector:/etc/mail/selector.key

Burada anahtar adı , bu dosya ile dkim_signing_table dosyası arasındaki anahtarla eşleştirmek için kullanılır. Gerçek dosyamda seçicimle aynı şekilde adlandırdım.

example.com ve seçici , imzanızda kullanmak istediğiniz etki alanı ve seçicinin sırasıyla d = ve s = yerine değiştirilmelidir.

/ Etc / mail / dkim_signing_table

*   keyname

Bu dosya basit Kimden: başlığında bulunan adresi dkim_key_table içindeki bir anahtara eşler. Bu durumda, bu sunucu üzerinden gönderilen tüm e-postaların aynı anahtarla imzalanmasını istiyoruz, bu nedenle bir * joker karakter kullanılıyor.


"OpenDKIM'de imzalama masası eşleşmesi yok" sunucusu olanlar için serverfault.com/q/569823/115907
kommradHomer

Birisi bu cevaba ulaşırsa (büyük cevap, btw! Bana ihtiyacım olanı öğretti) ve farklı anahtarlara sahip iki farklı alandan göndermek istiyor, bu şekilde yapılabilir: KeyTable dosyası: "tagone._domainkey.firstdomain.com firstdomain .com: tagone: /etc/opendkim/keys/firstdomain.com/tagone tagtwo._domainkey.seconddomain.com seconddomain.com:tagtwo:/etc/opendkim/keys/seconddomain.com/tagtwo "SigningTable:" * @ firstdomain. com tagone._domainkey.firstdomain.com *@seconddomain.com tagtwo._domainkey.seconddomain.com "Her dosya 2 satırdır (yorumlar burada satır çizgilerini kaydetmez)
Sean Colombo

veya: SigningTable csl: * = keyname KeyTable csl: keyname = example.com: seçici: /etc/mail/selector.key
danblack

3

Eski iş parçacığı ama belki bunu bulan bir başkası opendkim'in 2.x sürümünü KeyList yerine KeyTable ile çalıştığını bilmeye yarar.

KeyList dosyanızı opendkim-convert-keylist aracıyla dönüştürebilirsiniz ( http://manpages.ubuntu.com/manpages/lucid/man8/opendkim-convert-keylist.8.html )

KeyTable'ın uygulanması hakkında opendkim man sayfasında daha fazla bilgi bulabilirsiniz: ( http://www.opendkim.org/opendkim.conf.5.html )


Lütfen, ilgili kod bölümlerini veya konfigürasyon bloklarını alıntı yaparak bağladığınız makaleyi özetleyin. Siteler gelecekte değişebilir veya herhangi bir nedenden ötürü yüklenemedi.
89c3b1b8-b1ae-11e6-b842-48d705,

2

Adın neden bir süre olmadan "mail._domainkey" olarak ayarlandığını gerçekten anlamıyorum.

DKIM filtresi belgeleri genellikle unix man biçiminde kurulur. Sadece Google bunu biliyor :-) Bir sorunum da vardı.

man dkim-filter.conf
man dkim-filter
man dkim-genkey

man dkim-stats
man dkim-testkey
man dkim-testssp

Debian'da denedim. Aslında sizin durumunuzda değilse, kaynak tarball'ı ve kolay okunan dokümanı indirebilirsiniz.

man dkim-milter-2.8.3/dkim-filter/dkim-filter.conf.5

vb.

-

Adın neden bir süre olmadan "mail._domainkey" olarak ayarlandığını gerçekten anlamıyorum.

Böylece, aynı etki alanlarını her iki DNS kaydında da aynı şekilde kullanabilirsiniz.

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.