TLS_Rcpt mail göndermek için joker karakterleri nasıl kullanabilirim?


9

sendmail, TLS konuşmalarında bir yer kısıtlamasına izin verir. Example.com'a gönderilen iletilerin * .messagelabs.com sertifikasına sahip bir sunucuya gönderildiğini kontrol etmek istiyorum. DNS sahteciliğine ve MitM'ye karşı korumak istiyorum. Messagelabs yalnızca kolay bir sunucuya sahipse:

TLS_Rcpt:example.com VERIFY:256+CN:mx.messagelabs.com

Ancak mesaj etiketlerinin, aynı ad için benzersiz IP ve sertifikalara sahip farklı sunuculardan oluşan çok sayıda sunucusu ve kümesi vardır. Her şey yolunda, sadece posta verdiğim sunucunun mesaj etiketlerine ait olduğunu onaylamak istiyorum.

denedim

TLS_Rcpt:example.com VERIFY:256+CN:messagelabs.com
TLS_Rcpt:example.com VERIFY:256+CN:*.messagelabs.com
TLS_Rcpt:example.com VERIFY:256+CN:.*.messagelabs.com

ama ben gibi hatalar alıyorum

CN mail31.messagelabs.com does not match .*.messagelabs.com

Bunu nasıl yapabilirim? Bu bizim için yinelenen bir istek (çoğunlukla TLS_Rcpt gibi yapılandırmalar için: example.com VERIFY: 256 + CN: *. Example.com), bu yüzden sendmail.cf üzerinde değişiklik yapmaya hazır olurum, ancak anlam ifade edemiyorum

STLS_req
R $| $+         $@ OK
R<CN> $* $| <$+>                $: <CN:$&{TLS_Name}> $1 $| <$2>
R<CN:$&{cn_subject}> $* $| <$+>         $@ $>"TLS_req" $1 $| <$2>
R<CN:$+> $* $| <$-:$+>  $#error $@ $4 $: $3 " CN " $&{cn_subject} " does not match " $1
R<CS:$&{cert_subject}> $* $| <$+>       $@ $>"TLS_req" $1 $| <$2>
R<CS:$+> $* $| <$-:$+>  $#error $@ $4 $: $3 " Cert Subject " $&{cert_subject} " does not match " $1
R<CI:$&{cert_issuer}> $* $| <$+>        $@ $>"TLS_req" $1 $| <$2>
R<CI:$+> $* $| <$-:$+>  $#error $@ $4 $: $3 " Cert Issuer " $&{cert_issuer} " does not match " $1
ROK                     $@ OK

Sendmail 8.14.7 (yakında 8.15.2 sürümüne geçecek).


Yani, cevap yok (henüz?) Kendime cevap vermeye çalışacağım, ancak sendmail kitabının 28. bölümünü entegre etmek için bir gün kadar zamanın yeterli olup olmadığından emin değilim.
Hukuk29

2
Kesin bir cevap vermek için yeterli güvenim yok, ancak bu blog yazısının "Geçerli uygulamada sınırlama" bölümüne göre joker karakterlerin desteklendiğini düşünmüyorum: security-skywalker.blogspot.com/2013/01/…
Mike B

... ve evet, "joker karakter sertifikaları" aradığınız joker karakter eşleştirme deseni işlevselliğinden farklı olduğunu biliyorum ancak makale bu özelliğin statik doğasını vurguluyor. :-)
Mike B

Belki cevabınız kesin değil, ama bulduğum en iyisi (bazı nedenlerden dolayı bu blog gönderisini bulamadım, dikkatime
sunduğunuz

CNRE etiketi desteğini test etmek ister misiniz? $ & {Cn_subject} 'i özel normal ifadenize göre test eder.
AnFi

Yanıtlar:


1

${cn_subject}Ana bilgisayar parçası çıkarılmış olarak sendmail.cf mağazasını oluşturun ${cn1_subject}.
Uygulamanın bitirilmesi neredeyse önemsizdir.

UYARI:news:comp.mail.sendmail Test ortamında değil konuşlandırmadan önce konumunda fikir isteyin . ÇALIŞABİLİR ama sendmail "beklenmedik yan etkilerden" kaçınmak, "yatırım yapmaya" hazır olduğumdan çok daha fazla özen gösterir. Ben sendmail-8.15.2 ile "kuru test".

erişim girişi:

TLS_Rcpt:example.com VERIFY:256+CN1:messagelabs.com

yukarıdaki girişi desteklemek için sendmail.mc düzeltmesi

UYARI:R satırlardaki RHS ve LHS arasındaki SEKME (\ t) değerini unutmayın .
Bu yoluyla daha kirli uygulamasıdır sendmail.mc sadece .

define(`_LOCAL_TLS_RCPT_')dnl
LOCAL_RULESETS
SLocal_tls_rcpt
R$*     $: $&{cn_subject}
R$-.$+  $@ $(macro {cn1_subject}  $@ $2 $)
R$*     $@ $(macro {cn1_subject}  $@ $)    

# Ruleset continued
STLS_req
R<CN1:$&{cn1_subject}> $* $| <$+>               $@ $>"TLS_req" $1 $| <$2>
R<CN1:$+> $* $| <$-:$+> $#error $@ $4 $: $3 " CN-1 " $&{cn_subject} " does not match " $1
ROK                     $@ OK
divert(0)dnl

Açıklama:

  1. "İlk noktadan önce" kısmı çıkarılmış olarak Local_tls_rcptkural ayarlı mağaza yapın${cn_subject}${cn1_subject}
  2. Kural setinin ${cn1_subject}"ekstra kısmı" na CN1 öneki tarafından tetiklenen kontrolleri ekleTLS_req

Test etmek için örnek komut dosyası

#!/bin/sh
# -C sendmail-test.cf -- use non standard cf file
# -d60.5 -- trace (access) map lookus
# -d21.12 -- trace R lines rewriting 
sendmail -C sendmail-test.cf -bt -d60.5 <<END
.D{verify}OK
.D{cn_subject}mail31.messagelabs.com
.D{server_name}mail31.messagelabs.com
tls_rcpt user1@example.com
END

Henüz test etmeme rağmen bunu kabul ettim; tam olarak mümkün olması gerektiğine inandığım şeydi ama nasıl yapılacağını öğrenemedi.
Mayıs

1

Bu tam olarak sorulduğu gibi soruya bir cevap değil, ama bana işleri zor yoldan yapıyormuşsunuz gibi geliyor.

Sendmail yapılandırması, insanlar tarafından kolay yapılandırma ve bakım için değil, bu yapılandırmayı ayrıştıran yazılımın kolaylığı ve verimliliğine öncelik verecek şekilde yazılmıştır. Son yıllarda bunu yapmak için iyi bir neden yoktu.

Sendmail 15 yıl önce korkunç bir gizemli kalıntıydı. Bazı linux dağıtımları hala varsayılan olarak sağlar ve varsayılan yapılandırma sizin için işe yararsa iyi olur, ancak birkaç dakikadan fazla süren bir şey yaparken kendinizi bulursanız, sendmail'i atmanız ve modern bir MTA yüklemeniz en iyisidir. .

Yaklaşık 15 yıl önce, qmail hala mantıklı bir yedek olabilir, ancak neredeyse bu kadar uzun süre postfix'i daha iyi bir seçim olarak gördüm. İhtiyacınız olan biti bulduğunuzda postfix.org sitesinden gelen belgeler iyidir. Sizin durumunuzda bu sorun için http://www.postfix.org/TLS_README.html isteyeceksiniz .

Şimdiden sendmail'de birkaç sorunu çözmek için biraz zaman harcayacağınızın farkındayım, ancak o deliğe daha fazla zaman atmak yerine, en erken fırsata geçin. Eğer geriye dönüp bakarsan, kaçacaksın.


Aslında, postfix'i $ nedenlerden ötürü sendmail'i yönettiğimden daha uzun süredir yönetiyorum ve bugün değiştirilemeyecek kadar kolay olmayan pasif olarak özelleştirilmiş bir ortamda yaklaşık 16 çekirdek sendmail sunucum var. Son sürüme yükseltme dakikalar meselesidir, ancak değiştirmek başka bir konudur. Ancak, "example.com secure match = .messagelabs.com" içeren bir postfix "smtp_tls_policy_maps" kullanmanın, aradığım güvenliği sağlayacağı anlaşılıyor. Bu kullanım durumu bana aslında değiştirmek için gereken zamanı harcamamın nedenini sağlayabilir.
Law29
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.