Sun Java System Messaging Server 6.3 관리 설명서

18.3.3 FROM_ACCESS 매핑 테이블

FROM_ACCESS 매핑 테이블은 메일을 보낼 수 있는 사용자를 제어하거나 인증된 주소를 가진 From: 주소를 무시하는 데 사용할 수 있습니다.

FROM_ACCESS 매핑 테이블에 대한 입력 검사 문자열은 MAIL_ACCESS 매핑 테이블에서 대상 채널과 주소를 제외하고 인증된 보낸 사람 정보(사용 가능한 경우)를 추가한 것과 같습니다. 따라서 FROM_ACCESS 매핑 테이블이 있는 경우 Messaging Server는 시도되는 각 메시지 전송에 대해 다음 형식의 문자열을 가진 테이블을 검색합니다(세로 막대 문자 | 사용 주의).


port-access-probe-info|app-info|submit-type|src-channel|from-address|auth-from

여기서 받는 SMTP 메시지의 경우 port-access-probe-info는 보통 PORT_ACCESS 매핑 테이블 검사에 포함된 모든 정보로 구성되는 반면, 그 외의 경우에는 비어 있는 상태가 됩니다. app-info에는 HELO/EHLO SMTP 명령에서 요구한 시스템 이름이 포함됩니다. 이 이름은 문자열 끝에 표시되며 슬래시(/)로 나머지 문자열(일반적으로 "SMTP*")과 구분합니다. 요구된 시스템 이름은 일부 웜 및 바이러스를 차단하는 데 유용하게 사용될 수 있습니다. submit-type은 MTA로 메시지가 전송된 방법에 따라 MAIL, SEND, SAML, SOML 중 하나가 될 수 있습니다. 일반적으로 그 값은 MAIL이며 이는 메시지로 전송된다는 의미입니다. 즉, 브로드캐스트 요청(또는 조합된 브로드캐스트/메시지 요청)이 SMTP 서버로 전송된 경우 SEND, SAML 또는 SOML이 발생할 수 있습니다. src-channel은 메시지를 보낸(메시지를 대기열에 넣는) 채널, from-address는 메시지를 최초로 보낸 사람의 주소이며 auth-from은 인증된 보낸 사람 주소(이 정보가 사용 가능한 경우)이고 인증된 정보를 사용할 수 없는 경우에는 비어 있습니다.

검사 문자열이 패턴(즉, 테이블 항목의 왼쪽)과 일치하면 매핑의 결과 출력이 검사됩니다. 출력에 플래그 $Y 또는 $y가 포함된 경우 해당 To: 주소에 대한 대기가 허용됩니다. 출력에 플래그 $N, $n, $F 또는 $f가 포함되어 있으면 해당 주소에 대한 대기가 거부됩니다. 거부된 경우 선택적 거부 텍스트가 매핑 출력에 표시될 수 있습니다. 이 문자열은 Messaging Server가 표시하는 거부 오류에 포함될 수 있습니다. 문자열이 출력되지 않으면($N, $n, $F 또는 $f 플래그 제외) 기본 거부 텍스트가 사용됩니다. 추가 플래그에 대한 설명은 18.3 액세스 제어 매핑 테이블 플래그를 참조하십시오.

FROM_ACCESS는 메시지 발송자를 기준으로 전송 가능한 메시지를 허용할지 여부를 결정하는 것 외에도 봉투의 From: 주소를 $J 플래그를 통해 변경하거나 authrewrite 채널 키워드(받은 메시지의 Sender: 헤더 주소 추가)의 결과를 $K 플래그를 통해 수정하는 데 사용할 수도 있습니다. 예를 들어, 이 매핑 테이블을 사용하여 다음과 같이 원래의 봉투의 From: 주소를 인증된 주소로 바꿀 수 있습니다.


예 18–3 FROM_ACCESS 매핑 테이블


FROM_ACCESS

  *|SMTP*|*|tcp_auth|*|       $Y
  *|SMTP*|*|tcp_auth|*|*      $Y$J$4
            

FROM_ACCESS 매핑 테이블을 사용하여 일부 소스 채널의 0이 아닌 값에 대해 authrewrite를 설정한 결과를 수정할 때 인증된 주소가 글자 그대로 사용되는 경우에는 FROM_ACCESS를 사용하지 않아도 됩니다.

예를 들어, tcp_local 채널에 authrewrite 2를 설정한 경우에는 authrewrite만으로도 이 결과를 얻을 수 있기 때문에(인증된 주소를 그대로 추가) FROM_ACCESS 매핑 테이블이 필요하지 않습니다.


FROM_ACCESS

   *|SMTP*|*|tcp_auth|*|     $Y
   *|SMTP*|*|tcp_auth|*|*    $Y$K$4
         

하지만 FROM_ACCESS의 실제 용도는 아래 예에 표시된 대로 보다 복잡하고 세밀한 변경을 허용하는 것입니다. Sender: 헤더 행(SMTP AUTH 인증 전송자 주소 표시)을 받는 메시지에 추가하려는 경우에는 authrewrite 키워드만 사용해도 됩니다. 하지만 SMTP AUTH 인증 전송자 주소가 봉투의 From: 주소와 다른 경우에만 Sender: 헤더 행 등을 받는 메시지에 추가하는(즉, 주소가 일치하는 경우에는 Sender: 헤더 행) 것으로 가정하고, 또한 봉투의 From: 에 선택적 하위 주소 정보가 포함되어 있다는 이유만으로 SMTP AUTH와 봉투의 From:을 서로 다른 것으로 간주하지 않는 것으로 가정합니다.


FROM_ACCESS
 
! If no authenticated address is available, do nothing
  *|SMTP*|*|tcp_auth|*| $Y
! If authenticated address matches envelope From:, do nothing
  *|SMTP*|*|tcp_auth|*|$3* $Y
! If authenticated address matches envelope From: sans
! subaddress, do nothing
  *|SMTP*|*|tcp_auth|*+*@*|$3*@$5* $Y
! Fall though to...
! ...authenticated address present, but didn?t match, so force
! Sender: header
  *|SMTP*|*|tcp_auth|*|* $Y$K$4

FROM_ACCESS$( 메타 문자는 주소를 결과 문자열로부터 읽고 현재 대체 포스트마스터 주소를 대체하는 데 사용하도록 지정합니다. $)는 동일한 효과를 제공하되 대체 포스트마스터 주소가 매핑을 호출하기 전에 설정되면 안되는 제약 조건이 있습니다. 따라서 특정 포스트마스터 주소가 로컬이 아닌 도메인의 주소와 함께 사용될 수 있습니다. 도메인 포스트마스터 주소는 물론 로컬에서 정의된 도메인에서만 작동합니다. 대체 주소는 $N/$F 실패 결과를 읽기 전에 FROM_ACCESS 결과에서 읽은 (현재) 마지막 문자열입니다.