키워드: aliasdetourhost, aliasoptindetourhost
aliasdetourhost 및 aliasoptindetourhost를 사용하면 호스트된 사용자의 mailHost 속성 값을 소스 채널별로 대체할 수 있습니다. 특히 aliasdetourhost는 일반적으로 로컬(이 시스템에서 호스트되는) 사용자를 대상으로 하는 메시지를 라우팅할 때 특정 종류의 처리를 위해 별도의 호스트로 “우회”하는 데 사용됩니다. 메시지를 원래 호스트에서 확인(해당 주소가 정당한 로컬 주소인지)하고 처리 호스트로 우회한 다음 확장 및 전달을 위해 원래 호스트로 되돌려 보낼 수 있습니다. aliasdetourhost를 언급하는 경우에는 사용자가 LDAP를 따르는 속성을 통해 선택된 경우에만 우회한다는 점을 제외하고 aliasdetourhost와 비슷하게 작동하는 aliasoptindetourhost도 설명합니다.
aliasdetourhost는 채널 및 타사 필터링 호스트를 더 적절하게 구성하고 일종의 “중간 필터링”을 사용할 수 있게 합니다. aliasdetourhost는 일반적으로 대체변환 채널과 함께 사용됩니다. 대체 변환 채널이 원격 수신자의 라우팅에 영향을 주는 데 사용되는 것과는 달리, aliasdetourhost는 로컬(이 시스템에서 호스팅되는) 사용자의 라우팅에 영향을 주는 데 사용됩니다.
aliasdetourhost의 인수는 호스트 또는 도메인 이름이거나 호스트/도메인 지정입니다. 다시 쓰기 규칙을 사용하여 호스트 이름, IP 리터럴 주소 및 채널 태그(암시적으로 호스트 이름으로 간주되는)를 처리할 수 있습니다. 소스 채널에서 이 키워드를 지정하는 경우 태그 정보가 처리된 후 메일 호스트 정보가 확인되기 직전에 LDAP에 저장된 주소의 별칭 확장이 중지됩니다. 이 때 메시지가 aliasdetourhost 값으로 보내지고 처리된 주소가 성공적으로 완료되지만 이러한 작업은 주소 검증이 끝나고 별칭 확장이 수행되기 전에 발생합니다.
aliasdetourhost를 사용하여 변환 채널 필터링과 관련된 다양한 문제를 방지하는 예는 다음과 같습니다. 여기서는 시스템이 프런트엔드 MTA 및 백엔드 메시지 저장소를 사용하여 설정되었다고 가정합니다. 사용자의 전달 옵션은 forward 및 mailbox로 설정되어 있습니다. MTA에서는 바이러스 백신/스팸 시스템을 위해 대체 변환 채널을 사용합니다. 이 사용자에게 메시지가 도착하면 MTA 별칭이 확장되고 두 명의 수신자(하나는 로컬, 다른 하나는 원격)가 생성됩니다. 원격 수신자의 복사본은 직접 전송됩니다. 반면, 로컬 수신자의 복사본은 변환 채널로 이동하여 스캔된 다음 반환됩니다. 그런 다음 별칭 확장이 다시 적용되어 원격 수신자의 두 번째 복사본이 생성되며 로컬 수신자의 복사본은 정상적으로 전달됩니다. 최종적으로 원격 수신자에 대한 두 개의 복사본과 로컬 수신자에 대한 하나의 복사본이 생성됩니다.
aliasdetourhost를 사용하는 채널에서는 로컬로 호스트된 사용자에 대해 대체 변환 채널을 사용하지 않고(단, 다른 수신자에 대해서는 여전히 대체 변환 채널을 사용할 수 있음) 다음 작업을 수행할 수 있습니다.
메시지를 수락합니다.
메시지를 외부 스팸/바이러스 필터에 라우팅합니다.
주소 확장 및 전달을 위해 메시지를 다시 수락합니다.
예 1:
타사 스캐너가 MTA에서 별개의 호스트에 실행 중이라고 가정합니다. 다음 예는 메시지를 수락하기 전에 수신자 주소 검증을 수행하는 기능을 유지하면서도 가짜 복제본을 만들지 않고 사용자 항목을 전달할 수 었게 합니다.
새 tcp_scanner 채널을 만듭니다.
daemon 키워드를 해당 채널에 넣어 필터링 시스템을 가리킵니다. enqueue_removeroute도 이 채널에 추가합니다. tcp_scanner 채널은 imta.cnf에서 다음과 같이 표시됩니다.
tcp_scanner smtp mx single_sys subdirs 20 noreverse maxjobs 7 pool SMTP_POOL daemon my_a-v_filter.siroe.com enqueue_removeroute tcp_scanner-daemon |
스캔할 모든 인바운드 소스 tcp 채널(tcp_local, tcp_submit, tcp_intranet, tcp_auth 등)에서 aliasDetourHost tcp_scanner-daemon을 tcp_local에 추가합니다. 다음은 tcp_local 및 tcp_submit에 대한 예입니다.
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserver saslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
aliasdetourhost(tcp_scanner-daemon)의 인수는 새 채널 tcp_scanner의 공식 호스트 이름입니다.
tcp_scanner 채널을 통해 스캔 시스템에서 메시지를 다시 수신하기 위해 다시 쓰기 규 칙을 작성합니다.
[1.2.3.4] $E$R$U[1.2.3.4]@tcp_scanner-daemon
여기서 1.2.3.4는 스캐너 시스템의 IP 주소입니다.
이 다시 쓰기 규칙이 없으면 메시지가 다른 tcp* 소스 채널을 통해 들어오며 모든 메시지에 aliasdetourhost가 있기 때문에 메시지가 다시 스캔됩니다. 루프가 발생합니다.
구성을 다시 컴파일하고 디스패처를 다시 시작합니다.
#imsimta cnbuild #imsimta restart dispatcher |
예 2:
타사 스캐너가 MTA와 동일한 호스트에서 실행 중이지만 다른 포트를 수신한다고 가정 합니다. 메일이 포트 10024에서 수락되며 포트 10025에서 릴레이된다고 가정합니다.
새 tcp_scanner 채널을 만듭니다.
! tcp_scanner tcp_scanner smtp nomx single_sys identnonenumeric subdirs 20 maxjobs 7 pool SCAN_POOL daemon 127.0.0.1 port 10024 enqueue_removeroute tcp_scanner-daemon |
스캔할 모든 인바운드 소스 tcp 채널(tcp_local, tcp_submit, tcp_intranet 등)에서 aliasDetourHost tcp_scanner-daemon을 tcp_local에 추가합니다. 다음은 tcp_local 및 tcp_submit에 대한 예입니다.
! tcp_local tcp_local smtp mx single_sys remotehost inner switchchannel identnonenumeric subdirs 20 maxjobs 7 pool SMTP_POOL maytlsserver maysaslserversaslswitchchannel tcp_auth missingrecipientpolicy 0 aliasdetourhost tcp_scanner-daemon tcp-daemon |
! tcp_submit tcp_submit submit smtp mx single_sys mustsaslserver maytlsserver missingrecipientpolicy 4 aliasdetourhost tcp_scanner-daemon tcp_submit-daemon |
tcp_scanner 채널을 통해 아웃바운드 메일을 다시 라우팅하기 위해 mappings 파일에 추가합니다.
CONVERSIONS in-chan=tcp_scanner;out-chan=*;CONVERT No in-chan=tcp_*;out-chan=tcp_local;CONVERT Yes,Channel=tcp_scanner
SMTP_POOL 아래의 job_controller.cnf에서 동시 스캔 수에 대한 제한을 추가합니다.
스캔 소프트웨어에도 제한이 있어야 하지만 Messaging Server가 메시지를 수락하지 않을 경우에 스캐너로 메일을 전송하지 않도록 하기 위해서 이 설정을 동일하게 유지하는 것이 좋습니다.
! [POOL=SCAN_POOL] job_limit=2 ! |
새 서비스를 dispatcher.cnf에 추가하여 특정 포트에서 스캐너로부터 되돌아오는 메일을 수락하고 메일이 다시 스캔되지 않도록 tcp_scan에서 메일을 가져옵니다.
! [SERVICE=SMTP_SCANNING] INTERFACE_ADDRESS=127.0.0.1 PORT=10025 IMAGE=IMTA_BIN:tcp_smtp_server LOGFILE=IMTA_LOG:tcp_smtp_server.log STACKSIZE=2048000 PARAMETER=CHANNEL=tcp_scanner ! |
구성을 다시 컴파일하고 디스패처를 다시 시작합니다.
# imsimta cnbuild # imsimta restart job_controller # imsimta restart dispatcher |
이제 다음 기능을 사용하여 사용자별로 aliasdetourhost를 적용할 수 있습니다.
aliasoptindetourhost 채널 키워드. 사용자가 다음 속성을 통해 선택된 경우에만 우회가 발생한다는 점을 제외하면 aliasdetourhost의 기능과 비슷합니다. 키워드 값은 우회에 사용할 수 있는 호스트를 쉼표로 구분하여 표시한 목록입니다.
사용자를 우회에 선택하는 데 사용된 속성 이름을 지정하는 LDAP_DETOURHOST_OPTIN MTA 옵션(소스 채널에 aliasoptindetourhost가 설정되어 있다고 가정). 이 속성 값에 마침표가 포함되어 있으면 이 값을 우회에 사용할 수 있는 호스트의 목록과 비교하고 목록에서 처음으로 일치하는 호스트를 선택하여 우회를 적용합니다. 값에 마침표가 포함되어 있지 않은 경우에는 첫 번째 우회 호스트를 무조건 사용합니다.
SPAMFILTERx_NULL_OPTIN과 비슷한 ALIASDETOURHOST_NULL_OPTIN MTA 옵션(표 14–1 참조). LDAP_DETOURHOST_OPTIN 속성에 사용된 경우 제외되는 속성과 동일하게 취급되는 특수 값을 지정합니다. 기본값은 ""이며 빈 속성 값이 무시됨을 의미합니다.