sendmail TLS_Rcpt에 와일드 카드를 사용하려면 어떻게해야합니까?


9

sendmail을 사용하면 TLS 대화를 제한 할 수 있습니다. example.com으로 전송 된 메시지가 * .messagelabs.com 인증서가있는 서버로 전송되는지 확인하고 싶습니다. DNS 스푸핑 및 MitM으로부터 보호하고 싶습니다. Messagelab에 하나의 서버 만 있으면 쉽게 할 수 있습니다.

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

그러나 Messagelab에는 동일한 이름의 고유 한 IP 및 인증서를 가진 다른 서버의 많은 서버와 클러스터가 있습니다. 괜찮습니다. 메일을 제공하는 서버가 messagelab에 속하는지 확인하고 싶습니다.

나는 시도했다

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

하지만 같은 오류가 발생합니다

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

어떻게해야합니까? 이는 TLS_Rcpt : example.com VERIFY : 256 + CN : *. example.com과 같은 구성에 대한 반복 요청이므로 sendmail.cf를 수정할 준비가되었지만 이해가되지 않습니다.

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 (곧 8.15.2로 업그레이드)


답이 없습니다 (아직?) 나는 스스로 대답하려고 노력하지만, sendmail book의 28 장을 통합하는 데 하루가 충분한 지 또는 답을 얻을 수 있을지 확신 할 수 없습니다.
법률 29

2
확실한 답변을 제공 할 충분한 확신이 없지만이 블로그 게시물의 "현재 구현에서의 제한"섹션에 따라 와일드 카드가 지원되지 않는다고 생각합니다. security-skywalker.blogspot.com/2013/01/…
Mike B

... 그렇습니다. "와일드 카드 인증서"는 찾고있는 와일드 카드 일치 패턴 기능과 다르지만이 기사에서는 해당 기능의 정적 특성을 강조합니다. :-)
Mike B

어쩌면 당신의 대답은 확실한 아니지만, 내가 찾은 최선의 방법 (어떤 이유로 그 블로그 게시물, 내 관심을 가져 주셔서 감사 것을 발견하지 않았다)
Law29

CNRE 태그에 대한 지원을 테스트 하시겠습니까? 사용자 정의 정규식에 대해 $ & {cn_subject}를 테스트합니다.
AnFi

답변:


1

${cn_subject}호스트 부분이 제거 된 sendmail.cf 저장소 를 만드십시오 ${cn1_subject}.
그것은 구현을 거의 사소하게 마무리합니다.

경고 :news:comp.mail.sendmail 테스트 환경이 아닌 환경에 배포하기 전에 의견을 요청하십시오 . 그것은 작동 할 수 있지만 sendmail은 "투자"할 준비가되어있는 것보다 "예기치 않은 부작용"을 피하는 것이 훨씬 더 어려워집니다. sendmail-8.15.2로 "건조 테스트"했습니다.

액세스 항목 :

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

상기 항목을 지원하기 위해 sendmail.mc 수정

경고 : RHS와 LHS 간의 TAB (\ t)에 대해서는 R줄을 기억하십시오.
sendmail.mc 통해서만 더 더러운 구현 입니다.

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

설명:

  1. 메이크업 Local_tls_rcpt규칙 설정 저장 ${cn_subject}"첫 번째 점 앞에"부분적으로 제거와${cn1_subject}
  2. 규칙 집합 ${cn1_subject}의 "추가 부분"에 CN1 접두사에 의해 트리거 된 검사 추가TLS_req

테스트 할 샘플 스크립트

#!/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

아직 테스트하지는 않았지만 이것을 수락했습니다. 그것은 내가 가능하다고 믿었던 것이었지만 어떻게 해야할지 알아낼 수 없었습니다.
법률 29

1

이것은 제기 된 질문에 대한 정확한 대답은 아니지만 어려운 일을하는 것처럼 보입니다.

Sendmail 구성은 사람이 쉽게 구성하고 유지 관리 할 수있는 것이 아니라 해당 구성을 구문 분석하는 소프트웨어의 용이성과 효율성을 우선시하는 방식으로 작성되었습니다. 최근 수십 년 동안 그렇게 할만한 이유는 없었습니다.

센드 메일은 15 년 전 끔찍한 비밀 유물이었습니다. 일부 리눅스 배포판은 여전히 ​​기본적으로 그것을 제공하지만 기본 구성이 효과가 있다면 괜찮습니다.하지만 몇 분 이상 걸리는 일을 발견하면 sendmail을 버리고 현대 MTA를 설치하는 것이 가장 좋습니다. .

약 15 년 전, 큐메일은 여전히 ​​현명한 대체품 이었을지 모르지만, 그 기간 동안 나는 postfix가 더 나은 선택이라고 생각했습니다. postfix.org 사이트의 문서는 필요한 비트를 찾으면 좋습니다. 귀하의 경우이 문제에 대해 http://www.postfix.org/TLS_README.html 을 원할 것 입니다.

sendmail에서 몇 가지 문제를 해결하는 데 약간의 시간을 할애했을 것입니다.하지만 더 많은 시간을 허비하지 않고 가장 빠른 기회로 전환하십시오. 다시 돌아 보면 울부 짖을 것이다.


실제로 저는 $ mail을 위해 sendmail을 관리하는 것보다 postfix를 더 오랫동안 관리해 왔으며 오늘날 16 가지 핵심 sendmail 서버가 변경하기 쉽지 않은 사용자 정의 가능한 환경에 있습니다. 마지막 버전으로 업그레이드하는 것은 몇 분의 문제이지만 변경은 또 다른 문제입니다. 그러나 "example.com secure match = .messagelabs.com"을 포함하는 접미사 "smtp_tls_policy_maps"를 사용하면 원하는 보안을 제공하는 것처럼 보입니다. 그 유스 케이스는 실제로 전환에 필요한 시간을 소비 해야하는 이유를 제공 할 수 있습니다.
법률 29
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.