소개
이 문서에서는 ESA(Email Security Appliance)의 메시지 필터와 관련된 모범 사례 및 구현에 대해 설명합니다. 메시지 필터를 사용하면 ESA에서 수신 및 처리할 때 특정 조건을 충족하는 메시지를 처리하는 방법을 설명하는 특수 규칙을 생성할 수 있습니다.
사전 요구 사항
- ESA 필터 작업에 대한 기본 이해
- ESA의 CLI(Command Line Interface) 숙지
메시지 필터 사용의 장점
콘텐츠 필터보다 메시지 필터를 사용하는 데에는 두 가지 주요 이점이 있습니다.
- 작업 대기열 처리 파이프라인의 시작 부분에 있는 메시지에 적용됩니다. 따라서 주요 검사 엔진(예: Anti-Spam, Anti-Virus, AMP 등)이 사용되기 전에 메시지를 필터링하여 잠재적으로 많은 리소스를 절약할 수 있습니다.
- 이들은 수신 및 발신 트래픽 모두에 대해 작업을 수행하지만, 콘텐츠 필터의 경우 수신 및 발신에 대해 하나씩 생성해야 합니다.
또한 메시지 필터를 통해서만 수행할 수 있는 콘텐츠 필터를 사용하여 구성할 수 없는 조건은 거의 없습니다.
예: ESA의 Sendergroup을 기반으로 조건을 정의해야 하는 경우 해당 옵션은 Message Filters(메시지 필터)에서만 사용할 수 있습니다.
참고: 비최종 메시지 필터 작업은 누적됩니다. 메시지가 여러 필터와 일치하고 각 필터가 서로 다른 작업을 지정하는 경우 모든 작업이 누적되고 시행됩니다. 그러나 메시지가 동일한 작업을 지정하는 여러 필터와 일치하면 이전 작업이 재정의되고 최종 필터 작업이 적용됩니다.
메시지 필터 작업
AsyncOS가 메시지 필터를 처리할 때 AsyncOS가 스캔하는 콘텐츠, 처리 순서 및 수행한 작업은 다음과 같은 여러 요소를 기반으로 합니다.
- 메시지 필터는 구성된 순서대로 처리됩니다(맨 위에서 맨 아래로, 맨 위에서 마지막 순서로).
- 메시지 필터는 필터에 도달할 때 메시지 내용에 대해 처리됩니다.
- 정규식과 일치할 경우 필터 작업을 수행하기 전에 일치가 발생해야 하는 횟수를 계산하도록 "점수"를 구성합니다. 이렇게 하면 다른 용어에 대한 응답을 "가중치"할 수 있습니다.
- 메시지 필터의 연결 조건의 주요 대안은 (AND/OR/IF/ELSE)입니다.
메시지 필터 생성
먼저 CLI에서 명령 필터를 실행하여 메시지 필터의 컨피그레이션 모드로 들어갑니다. 그 다음 옵션은 다음과 같습니다.
- NEW: 이 옵션은 새 필터 생성을 시작하는 것입니다. 이 옵션 선택 뒤에는 필터 이름, 구문이 차례로 옵니다.
- DELETE: 이 옵션은 필요에 따라 기존 필터를 삭제하는 것입니다. 이 명령을 실행한 후 삭제할 시퀀스 번호의 필터 이름을 입력할 수 있습니다
- IMPORT: 어플라이언스 디렉터리에 저장된 필터 관련 파일을 가져올 수 있습니다.
- EXPORT: 이 옵션을 사용하면 다른 대상으로 가져올 필터의 관련 파일을 내보낼 수 있습니다
- MOVE: 이 옵션을 사용하면 기본 설정에 따라 필터의 순서를 수정할 수 있습니다
- SET: 이 옵션을 사용하면 필터 상태를 활성에서 비활성으로 또는 그 반대로 변경할 수 있습니다
- LIST: 이 옵션은 ESA에 있는 생성된 모든 필터를 표시합니다
- DETAIL: 이 옵션을 사용하면 조건 및 정의된 작업과 같이 생성된 필터의 구성 요소를 볼 수 있습니다.
- LOGCONFIG: 이 옵션은 작업이 아카이브로 정의된 메시지 필터에 대해 생성된 로그 파일 이름('폴더 이름')을 표시합니다
- ROLLOVERNOW: 이 옵션을 사용하면 메시지 필터에 정의된 아카이브 작업으로 인해 생성된 폴더에 있는 모든 로그를 롤오버할 수 있습니다
필터는 클러스터, 그룹 또는 머신 모드와 같은 ESA의 모든 모드에서 생성할 수 있습니다.
ESA가 필터를 이메일에 적용하는 컨피그레이션 기본 설정의 기준은 다음과 같습니다.
1번째 환경 설정: 시스템 모드
2차 기본 설정: 그룹 모드
3차 기본 설정: 클러스터 모드
메시지 필터를 생성하려면 조건과 작업을 정의하는 구문의 조합이 필요합니다.
예:
if (recv-listener == 'InboundMail' or recv-int == 'notmain')
{
skip-filters();
}
else
{
quarantine(“Policy”);
}
.
위 필터는 수신 리스너가 'InboundMail'이거나 수신 인터페이스가 'notmain'인 경우 나머지 메시지 필터를 건너뛰는 작업을 나타냅니다.
조건이 일치하지 않으면 Policy로 격리합니다. 이는 Else 다음에 정의됩니다.
유용한 팁
메시지 필터에서 사용할 구문이 혼동되는 경우가 있지만, 이를 쉽게 참조할 수 있는 참조 지점이 콘텐츠 필터일 수 있습니다.
메시지 필터에서 원하는 조건과 작업으로 콘텐츠 필터를 만들 수 있습니다. 필터를 제출한 후 다음 페이지에서 필터 섹션의 맨 위에 다음과 같은 3개의 탭이 표시됩니다.
Rules 탭을 클릭하면 필터에서 사용하는 구문이 표시되며, 이를 사용하여 메시지 필터를 만들 수 있습니다. 이것이 요구 사항에 따라 필터 조건의 구문을 좁히는 가장 간단한 방법입니다.
메시지 필터에 사용되는 정규식
- 캐럿(^): 캐럿 기호(^)를 포함하는 규칙은 문자열의 시작 부분에만 일치합니다.
예: ^I'm will match I'm an engineer
- 달러 기호($): 달러 기호 문자($)를 포함하는 규칙은 문자열의 끝에만 일치합니다.
예: .com$는 google.com 및 yahoo.com과 일치합니다.
- 마침표 문자(.): 마침표 문자(.)를 포함하는 규칙은 모든 문자(새 줄 제외)와 일치합니다.
예: 정규식 ^...admin$는 string macadmin 및 string sunadmin과 일치하지만 win32admin과는 일치하지 않습니다.
- Asterisk (*) 지시문: 별표 (*)가 포함된 규칙은 "이전 지시문의 0개 이상의 일치 항목"과 일치합니다. 특히, 마침표와 별표(.*)의 순서는 모든 문자 순서와 일치합니다(새 줄 제외).
예: 정규식 ^P.*Piper$는 Piper, Peter Piper, P.Piper 문자열과 일치합니다.
- 백슬래시 특수 문자(\): 백슬래시 문자는 특수 문자를 이스케이프합니다. 따라서 \. 시퀀스는 리터럴 마침표에만 일치하고, \$ 시퀀스는 리터럴 달러 기호에만 일치하며, \^ 시퀀스는 리터럴 캐럿 기호에만 일치합니다.
예: 정규식 ^ik\\.ac\\.uk$는 문자열 ik.ac.uk에만 일치합니다.
- 대/소문자 구분 안 함(?i): 정규식의 나머지를 나타내는 토큰(?i)은 대/소문자를 구분하지 않는 모드로 처리해야 합니다.
예: 정규식 (?i)cisco는 Cisco, CISCO 및 Cisco와 일치합니다
- 또는 (|): "또는" 연산자. A 및 B가 정규식이면 "A|B" 식은 "A" 또는 "B"와 일치하는 모든 문자열과 일치합니다.
예: "foo|bar" 식은 foo 또는 bar와 일치하지만 foobar는 일치하지 않습니다.
관련 정보
Cisco Email Security Appliance − 엔드 유저 가이드