Sun Java System Messaging Server 6 2005Q4 관리 설명서

주소 검증 후와 확장 전의 라우팅

키워드: aliasdetourhost

aliasdetourhost 는 호스트된 사용자의 mailHost 속성 값에 대한 소스 채널별 대체를 허용합니다. 특히 aliasdetourhost는 일반적으로 로컬(이 시스템에서 호스트되는) 사용자를 대상으로 하는 메일을 라우팅할 때 특정 종류의 처리를 위해 별도의 호스트로 “우회”하는 데 사용됩니다. 메일을 원래 호스트에서 확인(해당 주소가 정당한 로컬 주소인지)하고 처리 호스트로 우회한 다음 확장 및 전달을 위해 원래 호스트로 되돌려 보낼 수 있습니다.

aliasdetourhost는 채널 및 타사 필터링 호스트를 더 적절하게 구성하고 일종의 “중간 필터링”을 사용할 수 있게 합니다. aliasdetourhost 는 일반적으로 대체 변환 채널과 함께 사용됩니다. 대체 변환 채널이 원격 수신자의 라우팅에 영향을 주는 데 사용되는 것과 달리 aliasdetourhost는 로컬(이 시스템에서 호스팅되는) 사용자의 라우팅에 영향을 주는 데 사용됩니다.

aliasdetourhost의 인수는 호스트 또는 도메인 이름이거나 호스트/도메인 지정입니다. 다시 쓰기 규칙을 사용하여 호스트 이름, IP 리터럴 주소 및 채널 태그(암시적으로 호스트 이름으로 간주되는)를 처리할 수 있습니다. 소스 채널에서 이 키워드를 지정하는 경우 태그 정보가 처리된 후 메일 호스트 정보가 확인되기 직전에 LDAP에 저장된 주소의 별칭 확장이 중지됩니다. 이 때 메일이 aliasdetourhost 값으로 보내지고 처리된 주소가 성공적으로 완료되지만 이러한 작업은 주소 검증이 끝나고 별칭 확장이 수행되기 전에 발생합니다.

aliasdetourhost를 사용하여 변환 채널 필터링과 관련된 다양한 문제를 방지하는 예는 다음과 같습니다. 여기서는 시스템이 프런트엔드 MTA 및 백엔드 메시지 저장소를 사용하여 설정되었다고 가정합니다. 사용자의 전달 옵션은 forwardmailbox로 설정되어 있습니다. MTA에서는 바이러스 백신/스팸 시스템을 위해 대체 변환 채널을 사용합니다. 이 사용자에게 메일이 도착하면 MTA 별칭이 확장되고 두 명의 수신자(하나는 로컬, 다른 하나는 원격)가 생성됩니다. 원격 수신자의 복사본은 직접 전송됩니다. 반면, 로컬 수신자의 복사본은 변환 채널로 이동하여 스캔된 다음 반환됩니다. 그런 다음 별칭 확장이 다시 적용되어 원격 수신자의 두 번째 복사본이 생성되며 로컬 수신자의 복사본은 정상적으로 전달됩니다. 최종적으로 원격 수신자에 대한 두 개의 복사본과 로컬 수신자에 대한 하나의 복사본이 생성됩니다.

aliasdetourhost를 사용하는 채널에서는 로컬로 호스트된 사용자에 대해 대체 변환 채널을 사용하지 않고(단, 다른 수신자에 대해서는 여전히 대체 변환 채널을 사용할 수 있음) 다음 작업을 수행할 수 있습니다.

예 1:

타사 스캐너가 MTA에서 별개의 호스트에 실행 중이라고 가정합니다. 다음 예는 메일을 수락하기 전에 수신자 주소 검증을 수행하는 기능을 유지하면서도 가짜 복제본을 만들지 않고 사용자 항목을 전달할 수 었게 합니다.

  1. 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
    
  2. 스캔할 모든 인바운드 소스 tcp 채널(tcp_local, tcp_submit, tcp_intranet, tcp_auth 등)에서 aliasDetourHost tcp_scanner-daemontcp_local에 추가합니다. 다음은 tcp_localtcp_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의 공식 호스트 이름입니다.

  3. tcp_scanner 채널을 통해 스캔 시스템에서 메일을 다시 수신하기 위해 다시 쓰기 규 칙을 작성합니다.

    [1.2.3.4] $E$R$U[1.2.3.4]@tcp_scanner-daemon

    여기서 1.2.3.4는 스캐너 시스템의 IP 주소입니다.

    이 다시 쓰기 규칙이 없으면 메일이 다른 tcp* 소스 채널을 통해 들어오며 모든 메일에 aliasdetourhost가 있기 때문에 메일이 다시 스캔됩니다. 루프가 발생합니다.

  4. 구성을 다시 컴파일하고 디스패처를 다시 시작합니다.


    #imsimta cnbuild
    #imsimta restart dispatcher
    

예 2:

타사 스캐너가 MTA와 동일한 호스트에서 실행 중이지만 다른 포트를 수신한다고 가정 합니다. 메일이 포트 10024에서 수락되며 포트 10025에서 릴레이된다고 가정합니다.

  1. 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
  2. 스캔할 모든 인바운드 소스 tcp 채널(tcp_local, tcp_submit, tcp_intranet 등)에서 aliasDetourHost tcp_scanner-daemontcp_local에 추가합니다. 다음은 tcp_localtcp_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
  3. tcp_scanner 채널을 통해 아웃바운드 메일을 다시 라우팅하기 위해 mappings 파일에 추가합니다.

    CONVERSIONS
    
    in-chan=tcp_scanner;out-chan=*;CONVERT     No
    in-chan=tcp_*;out-chan=tcp_local;CONVERT   Yes,Channel=tcp_scanner
  4. SMTP_POOL 아래의 job_controller.cnf에서 동시 스캔 수에 대한 제한을 추가합니다.

    스캔 소프트웨어에도 제한이 있어야 하지만 Messaging Server가 메일을 수락하지 않을 경우에 스캐너로 메일을 전송하지 않도록 하기 위해서 이 설정을 동일하게 유지하는 것이 좋습니다.


    !
    [POOL=SCAN_POOL]
    job_limit=2
    !
  5. 새 서비스를 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
    !
  6. 구성을 다시 컴파일하고 디스패처를 다시 시작합니다.


    # imsimta cnbuild
    # imsimta restart job_controller
    # imsimta restart dispatcher