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

액세스 제어 매핑 테이블 플래그

표 17–2SEND_ACCESS, ORIG_SEND_ACCESS, MAIL_ACCESS, ORIG_MAIL_ACCESSFROM_ACCESS 매핑 테이블에 관련된 액세스 매핑 플래그입니다. PORT_ACCESS 매핑 테이블은 이와 약간 다른 플래그 집합을 지원합니다(표 17–3 참조).

인수가 있는 플래그에서는 인수를 표에 나온 읽기 순서에 따라 정렬해야 합니다. 예를 들면 다음과 같습니다.

ORIG_SEND_ACCESS

  tcp_local|*|tcp_local|*     $N$D30|Relaying$ not$ allowed

이 경우에 올바른 순서는 지연 기간 다음에 거부 문자열이 오는 것입니다. 플래그 자체는 임의의 순서가 될 수 있습니다. 따라서 다음 항목의 결과는 동일합니다.


30|Relaying$ not$ allowed$D$N
$N30|Relaying$ not$ allowed$D
30|$N$DRelaying$ not$ allowed
표 17–2 액세스 매핑 플래그

플래그 

설명 

$A

SASL이 사용된 경우 설정합니다. 특수 플래그 검사를 참조하십시오.

$B

메일을 bitbucket으로 리디렉션합니다. 

$D

전달 지연 확인이 요청된 경우(FROM_ACCESS에서는 사용할 수 없음) 설정합니다. 특수 플래그 검사를 참조하십시오.

$F

전달 실패 확인이 요청된 경우(FROM_ACCESS에서는 사용할 수 없음) 설정합니다. 특수 플래그 검사를 참조하십시오.

$H

메일을 .HELD 파일로 보관합니다.

$S

전달 성공 확인이 요청된 경우(FROM_ACCESS에서는 사용할 수 없음) 설정합니다. 특수 플래그 검사를 참조하십시오.

$T

TLS가 사용된 경우 설정합니다. 특수 플래그 검사를 참조하십시오.

$U 

ORIG_SEND_ACCESS, SEND_ACCESS, ORIG_MAIL_ACCESSMAIL_ACCESS에서 사용될 경우 매핑의 시작 부분에서 단일 정수 인수를 가져오며 이에 따라 MM_DEBUG 값을 설정합니다. 또한 가능한 경우 채널 수준 디버깅도 사용 가능하게 합니다. 결과적으로 소스 IP 주소, 원래 주소, 수신자 주소 등의 항목에 기초하여 디버깅을 사 용 가능하게 합니다.

$Y

액세스를 허용합니다. 

$V

모든 수신자에 대해 삭제를 수행합니다. 

$Z

모든 수신자에 대해 jettison을 수행합니다. 

인수가 있는 플래그, 인수 읽기 순서에 따라 + (이 목록을 알파벳 순서로 정렬하지 마십시오!)

$Uinteger

매핑의 시작 부분에서 단일 정수 인수를 가져오며 이에 따라 MM_DEBUG를 설정합니다. 또한 가능한 경우 채널 수준 디버깅도 사용 가능하게 합니다. 결과적으로 소스 IP 주소, 원래 주소, 수신자 주소 등의 항목에 기초하여 디버깅을 사용 가능하게 할 수 있습니다. 

$Jaddress

원본 봉투 From: 주소를 지정된 address로 대체합니다.

$Kaddress

* ++ 원래의 Sender: 주소를 지정된 address로 대체합니다.

$Iuser|identifier

지정된 사용자의 그룹 아이디를 확인합니다. 

$<string

+++ 검사가 일치하면 string을 syslog(UNIX, user.notice 기능 및 심각도) 또는 이벤트 로그(NT)로 보냅니다.+++

$>string

+++ 액세스가 거부되면 string을 syslog(UNIX, user.notice 기능 및 심각도) 또는 이벤트 로그(NT)로 보냅니다.

$Ddelay

delay 시간 간격(1/100초)에 대한 지연 응답입니다. 양수 값을 사용하면 트랜잭션의 각 명령에 지연이 적용되며, 음수 값을 사용하면 주소 전달(FROM_ACCESS 테이블에 대한 SMTP MAIL FROM: 명령, 다른 테이블에 대한 SMTP RCPT TO: 명령)에만 지연이 적용됩니다.

$Ttag

tag 접두어가 사용됩니다.

$Aheader

메일에 헤더 행 header를 추가합니다.

$Gconversion_tag

ORIG_SEND_ACCESS, SEND_ACCESS, ORIG_MAIL_ACCESSMAIL_ACCESS에서 사용될 경우 매핑 결과에서 값을 읽고 이를 현재 수신자에게 적용될 변환 태그 집합으로 처리합니다. FROM_ACCESS와 함께 사용될 경우 변환 태그가 모든 수신자에게 적용됩니다. $G의 위치는 매핑에서 읽은 인수 시퀀스에서 $A(헤더 주소) 다음입니다. 메일 변환 태그를 참조하십시오.

$Sx,y,z

* 세로 막대(|)로 구분된 추가 인수를 매핑 결과에서 읽습니다. 이 인수는 쉼표로 구분된 하나에서 세 개의 정수 값으로 구성됩니다. 첫 번째 값은 트랜잭션에 대한 최소 blocklimit를 새로 설정하고, 두 번째 값은 최소 ecipientlimit를 새로 설정하며, 세 번째 값은 최소 recipientcutoff를 새로 설정합니다. 이 인수는 모든 캡처 인수를 읽은 후에 매핑 결과에서 읽습니다. 절대 메일 크기 제한 지정을 참조하십시오.

$Xerror-code

메일 거부 시 지정된 error-code 확장 SMTP 오류 코드를 발행합니다.

$,spamadjust_arg

액세스 매핑 테이블에서 sieve spamadjust 작업을 수행할 수 있습니다. 인수는 spamadjust 인수와 동일한 형식을 취합니다. 이러한 매핑의 일부는 수신자별 기준으로 적용된다는 점에 유의하십시오. 수행된 spamadjust 작업은 모든 수신자에 적용됩니다.

$Nstring

선택적 오류 텍스트 string을 사용하여 액세스를 거부합니다.

$Fstring

$N string에 대한 동의어, 즉 선택적 오류 텍스트 string을 사용하여 액세스를 거부합니다.

* FROM_ACCESS 테이블에만 사용할 수 있습니다.

+ 인수가 있는 여러 개의 플래그를 사용하려면 인수를 세로 막대 문자 |로 구분하고 이 테이블에 나열된 순서대로 인수를 배치합니다.

++ $K 플래그가 FROM_ACCESS 매핑 테이블에 적용되려면 소스 채널에 authrewrite 키워드가 포함되어야 합니다.

+++ 문제가 있는 보낸 사람을 처리할 때는 서비스 거부 공격을 방지하기 위해 $D 플래그를 사용하는 것이 좋습니다. 특히 모든 $> 항목 또는 액세스를 거부하는 $< 항목에는 $D를 사용하는 것이 좋습니다.

SEND_ACCESS 및 ORIG_SEND_ACCESS 테이블

SEND_ACCESSORIG_SEND_ACCESS 매핑 테이블을 사용하여 메일을 송수신할 수 있거나 할 수 없는 사용자 또는 둘 다를 제어할 수 있습니다. 액세스 검사는 메일 봉투 From: 주소와 봉투 To: 주소에서 사용 가능하며 메일을 전송한 채널과 대상 채널을 알 수 있습니다.

SEND_ACCESS 또는 ORIG_SEND_ACCESS 매핑 테이블이 있으면 MTA를 통과하여 전달되는 모든 메일의 각 수신자에 대해 MTA는 다음 형식의 문자열로 테이블을 스캔합니다(세로 막대 문자 | 사용).

src-channel|from-address|dst-channel|to-address

src-channel은 메일이 대기 중인 채널이고 from-address는 메일을 보낸 사람의 주소, dst-channel은 메일이 대기될 채널, to-address는 메일 주소가 지정된 주소입니다. 이 네 필드에 별표를 사용하면 해당 필드는 모든 채널 또는 주소와 일치하게 됩니다.

여기서 주소는 봉투 주소, 즉 봉투 From: 주소와 봉투 To: 주소입니다. SEND_ACCESS의 경우 봉투 To: 주소는 다시 쓰기, 별칭 확장 등이 수행된 후 검사되고, ORIG_SEND_ACCESS의 경우 원래 지정된 봉투 To: 주소를 다시 쓴 다음, 그리고 별칭 확장 전에 검사됩니다.

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

MTA 옵션 ACCESS_ORCPT를 1로 설정하면 원래 수신자(원래 수신자(ORCPT) 주소를 포함하는 SEND_ACCESS, ORIG_SEND_ACCESS, MAIL_ACCESSORIG_MAIL_ACCESS 매핑 테이블로 전달되는 검사 값에 수직 막대로 구분된 필드가 또 하나 추가됩니다. 메일에 ORCPT 주소가 없으면 수정되지 않은 원래 RCPT TO: 주소가 대신 사용됩니다. 기본값은 0이고 검사 값은 마지막에 있습니다.

src-channel|from-address|dst-channel|to-address|ORCPT_address

다음 예에서는 mail, Pine 등의 UNIX 사용자 에이전트가 보낸 메일(로컬, l, 채널 및 메일에서 인터넷으로 전송)이 일종의 TCP/IP 채널로 나갑니다. 여기서는 포스트마스터를 제외한 이러한 로컬 사용자가 인터넷으로 메일을 보낼 수 없지만 인터넷에서 메일을 받을 수는 있다고 가정합니다. 이 경우 아래 예에 표시된 SEND_ACCESS 매핑 테이블을 사용하는 것이 이러한 제한을 적용하는 한 가지 방법이 됩니다. 매핑 테이블에서 로컬 호스트 이름을 sesta.com으로 가정합니다. 채널 이름 “tcp_*”에서 와일드 카드가 사용되어 가능한 모든 TCP/IP 채널 이름(예: tcp_local)과 일치합니다.


예 17–1 SEND_ACCESS 매핑 테이블


SEND_ACCESS

   *|postmaster@sesta.com|*|*    $Y
   *|*|*|postmaster@sesta.com    $Y
   l|*@sesta.com|tcp_*|*         $NInternet$ postings$ are$ not$ permitted

            

거부 메일에 공백을 입력하려면 달러 기호를 사용합니다. 달러 기호가 없으면 거부가 일찍 완료되어 “Internet postings are not permitted” 대신 “Internet”만 표시됩니다. 이 예에서는 PC 기반 메일 시스템이나 POP 또는 IMAP 클라이언트 등 “로컬” 게시의 소스에 대한 다른 가능성은 무시합니다.


주 –

MTA 거부 오류 텍스트를 메일을 보내려는 사용자에게 실제로 표시할 것인지 여부는 메일을 보내려는 클라이언트가 결정합니다. SEND_ACCESS를 사용하여 받는 SMTP 메일을 거부하는 경우 MTA는 선택적 거부 텍스트를 비롯하여 SMTP 거부 코드만 발행합니다. 즉, 이 정보를 사용하여 원래 보낸 사람에게 보낼 바운스 메일을 구성할 것인지는 SMTP 클라이언트가 결정합니다.


MAIL_ACCESS 및 ORIG_MAIL_ACCESS 매핑 테이블

MAIL_ACCESS 매핑 테이블은 SEND_ACCESSPORT_ACCESS 매핑 테이블의 수퍼 세트입니다. 여기에서는 SEND_ACCESS의 채널과 주소 정보를 PORT_ACCESS의 IP 주소 및 포트 번호 정보와 조합합니다. 마찬가지로, ORIG_MAIL_ACCESS 매핑 테이블은 ORIG_SEND_ACCESSPORT_ACCESS 매핑 테이블의 수퍼 세트입니다. MAIL_ACCESS에 대한 검사 문자열 형식은 다음과 같습니다.

port-access-probe-info|app-info|submit-type|send_access-probe-info

마찬가지로 ORIG_MAIL_ACCESS의 검사 문자열 형식은 다음과 같습니다.

port-access-probe-info|app-info|submit-type|orig_send_access-probe-info

여기서 받는 SMTP 메일의 경우 port-access-probe-info는 보통 PORT_ACCESS 매핑 테이블 검사에 포함된 모든 정보로 구성되는 반면, 그 외의 경우에는 비어 있는 상태가 됩니다. app-info에는 HELO/EHLO SMTP 명령에서 요구한 시스템 이름이 포함됩니다. 이 이름은 문자열 끝에 표시되며 슬래시(/)로 나머지 문자열(일반적으로 “SMTP”)과 구분합니다. 요구된 시스템 이름은 일부 웜 및 바이러스를 차단하는 데 유용하게 사용될 수 있습니다. submit-type은 Messaging Server로 메일이 전송된 방법에 따라 MAIL, SEND, SAML, SOML 중 하나가 될 수 있습니다. 일반적으로 그 값은 MAIL이며 이는 메일로 전송된다는 의미입니다. 즉, 브로드캐스트 요청(또는 조합된 브로드캐스트/메일 요청)이 SMTP 서버로 전송된 경우 SEND, SAML 또는 SOML이 발생할 수 있습니다. 또한 MAIL_ACCESS 매핑의 경우 send-access-probe-info는 일반적으로 SEND_ACCESS 매핑 테이블 검사에 포함된 모든 정보로 구성됩니다. orig-send-access-probe-info는 일반적으로 ORIG_MAIL_ACCESS 매핑과 유사하게 ORIG_SEND_ACCESS 매핑 테이블 검사에 포함된 모든 정보로 구성됩니다.

MTA 옵션 ACCESS_ORCPT을 1로 설정하면 원래 수신자(ORCPT) 주소를 포함하는 SEND_ACCESS, ORIG_SEND_ACCESS , MAIL_ACCESSORIG_MAIL_ACCESS 매핑 테이블로 전달되는 검사 값에 수직 막대로 구분된 필드가 또 하나 추가됩니다. 메일에 ORCPT 주소가 없으면 수정되지 않은 원래 RCPT TO: 주소가 대신 사용됩니다. 기본값은 0이고 검사 값은 마지막에 있습니다. 예:


port-access-probe-info|app-info|submit-type|send_access-probe-info|ORCPT_address

받는 TCP/IP 연결 정보를 채널 및 주소 정보와 동일한 매핑 테이블에서 사용할 수 있는 경우에는 특정 IP 주소에서 보낸 메일에 표시되도록 허용되는 봉투 From: 주소를 지정하는 등의 제어를 보다 편리하게 수행할 수 있습니다. 이렇게 하면 전자 메일 위조의 가능성을 줄이거나 사용자가 자신의 POP 및 IMAP 클라이언트의 ’ From: 주소를 적절하게 설정하도록 유도할 수 있습니다. 예를 들어, 봉투 From: 주소 vip@siroe.com이 IP 주소 1.2.3.1 및 1.2.3.2에서 받는 메일에만 나타나도록 하고 1.2.0.0 서브넷에 있는 시스템으로부터 받는 메일의 봉투 From: 주소는 siroe.com에서 보낸 것으로 하려면 아래 예에 표시된 대로 MAIL_ACCESS 매핑 테이블을 사용할 수 있습니다.


예 17–2 MAIL_ACCESS 매핑 테이블


MAIL_ACCESS
 
! Entries for vip's two systems
!
  TCP|*|25|1.2.3.1|*|SMTP|MAIL|tcp_*|vip@siroe.com|*|*  $Y
  TCP|*|25|1.2.3.2|*|SMTP|MAIL|tcp_*|vip@siroe.com|*|*  $Y
!
! Disallow attempts to use vip's From: address from other
! systems
!
  TCP|*|25|*|*|SMTP|MAIL|tcp_*|vip@siroe.com|*|*  \
      $N500$ Not$ authorized$ to$ use$ this$ From:$ address
!
! Allow sending from within our subnet with siroe.com From:
! addresses
!
  TCP|*|25|1.2.*.*|*|SMTP|MAIL|tcp_*|*@siroe.com|*|*  $Y
!
! Allow notifications through
!
  TCP|*|25|1.2.*.*|*|SMTP|MAIL|tcp_*||*|*  $Y
!
! Block sending from within our subnet with non-siroe.com
! addresses
!
  TCP|*|25|1.2.*.*|*|SMTP|MAIL|tcp_*|*|*|*  \
     $NOnly$ siroe.com$ From:$ addresses$ authorized

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 플래그 제외) 기본 거부 텍스트가 사용됩니다. 추가 플래그에 대한 설명은 액세스 제어 매핑 테이블 플래그를 참조하십시오.

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


예 17–3 FROM_ACCESS 매핑 테이블


FROM_ACCESS

  *|SMTP|*|tcp_auth|*|       $Y
  *|SMTP|*|tcp_auth|*|*      $Y$J$3
            

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

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


FROM_ACCESS

   *|SMTP|*|tcp_auth|*|     $Y
   *|SMTP|*|tcp_auth|*|*    $Y$K$3
         

하지만 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|*|$2*           $Y
! If authenticated address matches envelope From: sans
! subaddress, do nothing
   *|SMTP|*|tcp_auth|*+*@*|$2*@$4*    $Y
! Fall though to...
! ...authenticated address present, but didn't match, so force
! Sender: header
  *|SMTP|*|tcp_auth|*|*              $Y$K$3
         

PORT_ACCESS 매핑 테이블

디스패처는 IP 주소와 포트 번호를 기반으로 선택적으로 받는 연결을 수락하거나 거부할 수 있습니다. 디스패처는 시작 시에 PORT_ACCESS라는 매핑 테이블을 찾습니다. 이 테이블이 있으면 디스패처는 연결 정보를 다음 형식으로 구성합니다.

TCP|server-address|server-port|client-address|client-port

디스패처는 모든 PORT_ACCESS 매핑 항목에 대응시키려 시도합니다. 매핑 결과에 $N 또는 $F가 포함되어 있으면 연결이 즉시 닫힙니다. 매핑의 다른 결과는 연결이 수락되는 것을 나타냅니다. 거부 메일 다음에 선택적으로 $N 또는 $F가 올 수 있습니다. $N 또는 $F가 오는 경우 메일은 닫히기 직전에 해당 연결로 다시 보내질 수 있습니다. CRLF 종결자는 연결로 다시 보내지기 전에 문자열에 추가됩니다.


주 –

MMP는 PORT_ACCESS 매핑 테이블을 사용하지 않습니다. 특정 IP 주소의 SMTP 연결을 거부하기를 원하고 MMP를 사용하는 경우 TCPAccess 옵션을 사용해야 합니다. MMP를 사용하여 메일 액세스 구성를 참조하십시오. 매핑 테이블을 사용하여 SMTP 연결을 제어하려면 INTERNAL_IP 매핑 테이블을 사용합니다( 외부 사이트에 대한 SMTP 릴레이 허용 참조).


$< 플래그 다음에 선택적 문자열이 있으면 매핑 검사가 일치하는 경우 Messaging Server는 문자열을 syslog(UNIX) 또는 이벤트 로그(NT)로 보냅니다. $> 플래그 다음에 선택적 문자열이 오면 액세스가 거부된 경우 Messaging Server는 syslog(UNIX) 또는 이벤트 로그(NT)로 보냅니다. LOG_CONNECTION MTA 옵션이 비트 1로 설정되고 $N 플래그가 설정되어 연결이 거부된 경우 $T 플래그를 지정하면 “T” 항목이 연결 로그에 기록됩니다. LOG_CONNECTION MTA 옵션이 비트 4로 설정된 경우에는 사이트 제공 텍스트가 PORT_ACCESS 항목에 제공되어 “C” 연결 로그 항목에 포함될 수 있습니다. 이러한 텍스트를 지정하려면 항목의 오른쪽에 두 개의 세로 막대 문자를 넣고 그 뒤에 원하는 텍스트를 입력합니다. 표 17–3에는 사용 가능한 플래그가 나열되어 있습니다.

표 17–3 PORT_ACCESS 매핑 플래그

플래그 

설명 

$Y 

액세스를 허용합니다. 

인수가 있는 플래그, 인수 읽기 순서에 따라+ 

$< 문자열 

검사가 일치하는 경우 syslog (UNIX) 또는 이벤트 로그(NT)에 문자열을 보냅니다. 

$> 문자열 

액세스가 거부되는 경우 syslog (UNIX) 또는 이벤트 로그(NT)에 문자열을 보냅니다.  

$N 문자열 

선택적 오류 텍스트 문자열을 사용하여 액세스를 거부합니다. 

$F 문자열 

$N 문자열에 대한 동의어, 즉 선택적 오류 텍스트 문자열을 사용하여 액세스를 거부합니다.  

$T 텍스트 

LOG_CONNECTION MTA 옵션이 비트 1(값 2)로 설정되고 $N 플래그가 설정되어 연결이 거부된 경우 $T를 지정하면 “T” 항목이 연결 로그에 기록됩니다. T 로그 항목에는 전체 매핑 결과 문자열($N 및 해당 문자열)이 포함되어 있습니다.

+ 인수가 있는 여러 개의 플래그를 사용하려면 인수를 세로 막대 문자 |로 구분하고 이 테이블에 나열된 순서대로 인수를 배치합니다. 

예를 들어, 다음 매핑은 설명하는 텍스트가 없이 추출되어 거부된 특정 호스트를 제외한 단일 네트워크로부터의 SMTP 연결(포트 25, 일반 SMTP 포트)만 수락합니다.


PORT_ACCESS

  TCP|*|25|192.123.10.70|*  $N500
  TCP|*|25|192.123.10.*|*   $Y
  TCP|*|25|*|*              $N500$ Bzzzt$ thank$ you$ for$ playing.

         

PORT_ACCESS 매핑 테이블을 변경한 뒤에는 디스패처를 다시 시작해야 디스패처에 변경 내용이 적용됩니다. 컴파일된 MTA 구성을 사용하는 경우에는 먼저 구성을 다시 컴파일하여 변경 내용을 컴파일된 구성에 통합시켜야 합니다.

PORT_ACCESS 매핑 테이블은 특별히 IP 기반 거부를 수행하기 위한 것입니다. 메일 주소 수준 일반 제어의 경우 SEND_ACCESS 또는 MAIL_ACCESS 매핑 테이블이 보다 적합합니다.

MTA에 대해 지정된 IP 액세스 연결 제한

Port Access 매핑 테이블에 conn_throttle.so 공유 라이브러리를 사용하여 특정 IP 주소가 MTA에 연결되는 횟수를 제한할 수 있습니다. 특정 IP 주소로 연결을 제한하는 기능은 서비스 거부 공격에 사용되는 과도한 연결을 방지하는 데 유용합니다.

conn_throttle.so는 특정 IP 주소가 MTA에 너무 자주 연결하는 것을 제한하기 위해 PORT_ACCESS 매핑 테이블에 사용되는 공유 라이브러리입니다. 모든 구성 옵션은 다음과 같이 연결 억제 공유 라이브러리에 대한 매개 변수로 지정됩니다.

$[msg_svr_base/lib/conn_throttle.so, throttle,IP-address ,max-rate]

IP-address는 원격 시스템의 점으로 구분된 십진수 형식의 주소이며, max-rate는 이 IP 주소에 대한 최대 분당 연결 비율입니다.

루틴 이름 throttle_p를 루틴 축소 버전의 throttle 대신 사용할 수 있습니다. throttle_p는 향후 기존에 너무 많이 연결했던 연결을 거부하게 됩니다. 최대 비율이 100인데 분당 250번의 연결이 시도된 경우에는 해당 분 내에 처음 100번의 연결 시도 후 원격 사이트가 차단되며 그 다음 1분 동안에도 차단됩니다. 즉, 매 분마다 시도된 전체 연결 수에서 최대 비율을 빼서 전체 연결 수가 최대 비율보다 크면 원격 시스템이 차단됩니다.

지정된 IP 주소가 분당 최대 연결 비율을 초과하지 않으면 공유 라이브러리 호출이 실패합니다.

해당 비율을 초과하면 호출에 성공하지만 아무 것도 반환하지 않습니다. 이 작업은 다음 예와 같이 $C/$E 조합으로 수행됩니다.

PORT_ACCESS 
  TCP|*|25|*|* \
$C$[msg_svr_base/lib/conn_throttle.so,throttle,$1,10] \
$N421$ Connection$ not$ accepted$ at$ this$ time$E

여기서

$C는 다음 테이블 항목에서 시작한 매핑 프로세스를 계속하여 이 항목의 출력 문자열을 매핑 프로세스에 대한 새 입력 문자열로 사용합니다.

$[msg_svr_base/lib/conn_throttle.so,throttle,$1,10]throttle을 라이브러리 루틴, $1을 서버 IP 주소, 그리고 10을 분당 연결 임계값으로 사용하는 라이브러리 호출입니다.

$N421$ Connection$ not$ accepted$ at$ this$ time은 액세스를 거부하고 “Connection not accepted at this time”이라는 메일과 함께 421 SMTP 코드(임시 부정 완료)를 반환합니다.

$E는 이제 매핑 프로세스를 닫습니다. 이 항목의 출력 문자열을 매핑 프로세스의 최종 결과로 사용합니다.