PostFix 블랙리스트 구성

PostFix 블랙리스트 구성

Dovecot/IMAP과 함께 PostFix를 사용하여 기본 이메일 서버를 설정했습니다. 하지만 블랙리스트 설정에 문제가 있습니다.

아래는 내 postfix main.cf입니다.

smtpd_recipient_restrictions = check_sender_access mysql:/etc/postfix/blacklist.cf reject_unauth_destination

블랙리스트.cf

user = mailuser
password = mailuser2011
hosts = 127.0.0.1
dbname = mailserver
query = SELECT 'REJECT' FROM blacklist WHERE email='%s' AND id=( SELECT id FROM virtual_users WHERE email='%u')

내 SQL 테이블에는 블랙리스트에 대한 2개의 열이 있습니다. 즉, 여기서 id는 개별 사용자이고 이메일은 블랙리스트에 있는 주소입니다 id.email

내가 원하는 것은 메일의 수신자를 참조하여 데이터베이스에서 주소 일치를 검색하는 것입니다. 이메일 값을 데이터베이스에 존재하는 값으로 하드 코딩하면 차단된 사용자의 메일을 거부할 수 있습니다.

%u그러나 (수신자를 참조한다고 가정) 을 사용하면 전혀 차단되지 않습니다.

답변1

Postfix의 조회 테이블은 키-값-조회입니다. 이는 키가 있고 조회 후 값을 얻는다는 의미입니다. 귀하의 경우(check_sender_access) 키는 발신자입니다. 그리고 보낸 사람만. 따라서 두 개의 키(발신자와 수신자)가 있어야 한다는 요구 사항을 Postfix로는 수행할 수 없습니다.

이를 해결하는 유일한 방법은정책위임, 조회를 수행할 수 있는 여러 키(발신자, 수신자, IP, 호스트 이름, helo 등)가 있습니다.

그러나 반면에 보낸 사람 주소에 의존하는 것은 위조하기 가장 쉬운 방법이므로 매우 나쁜 생각입니다.

관련 정보