이 오래된 질문에 대한 다른 모든 대답은 링크 전용이라는 사실이 나에게 놀랍습니다. 이 작업을 위해 내가 좋아하는 솔루션을 구현하는 방법을 몇 마디로 설명하겠습니다.
링크 가 84104 @는 매우 유용하지만, 제대로 보낸 사람 당 속도를 구현하는 데 사용할 수 없습니다 제안했다. smtpd_client
제한은 트래픽 제어가 아니라 클라이언트 소프트웨어를 돕기위한 것입니다. "너무 많은 연결을하는 클라이언트에 대한 측정" 하나는 이와 같은 권장 사항을 찾을 수 있지만 하나 는 확실히 도움이 될 수있다. 로 @E. Yazici 는 postfix에 대한 애드온 이 필요 하다고 제안했다 . 개인적으로 나는 찾을 policyd을 권장하는 @Janne Pikkarainen 오히려 성가신이 표준으로 간주되지만.
내가 좋아하는 애드온은 가볍고 쉬우 므로 postfwd 입니다. 또한 Plesk의 복잡한 구성 파일 세트에 영향을 미치지 않으면 서 Plesk 또는 기타 유사 프로그램에서 매우 쉽게 작동한다는 점에 유의해야합니다. Plesk의 이메일 속도 제한은 버전 12에서만 구현되었지만 여전히 정책 기능이 제한되어 있습니다.
먼저 위 사이트에서 최신 애드온을 다운로드하십시오. 우분투와 데비안과 달리 CentOS에는 rpm이 없다고 생각합니다. 그럼에도 불구하고 최신 버전을 사용하는 것이 좋습니다. 보다 구체적으로, 버전 1.32 (예 : Ubuntu 14.04LTS repos에 있음)에는 제대로 작동하지 못하게 하는 불쾌한 버그 가 있습니다. 버전 1.35 는 이것을 분류합니다.
이 PERL 모듈이 있는지 확인하십시오 . Debian 또는 Ubuntu 를 사용하는 경우 모든 종속 항목이 자동으로 정렬 된 다음 /usr/sbin/postfwd
최신 버전으로 교체되도록 repos에서 설치할 수 있습니다 .
그런 다음 규칙 세트를 작성하십시오. /etc/postfwd.cf
or /etc/postfix/postfwd.cf
와 같은 파일을 작성 하고 추가하십시오.
id=R001; sender=~/.*/; action=rate(sender/100/86400/REJECT only 100 messages per day for $$sender)
id=R002; sender=~/.*/; action=rate(sender/50/3600/REJECT only 50 messages per hour for $$sender)
위 규칙 세트에는 모든 발신자에 대해 평가되는 두 가지 규칙이 있습니다. rate
동작 구문 은 다음과 같습니다.
rate (<item>/<max>/<time in sec>/<action>)
다른 요금 예는 여기에서 확인할 수 있습니다 . 구문에 대한 참조는 설명서 에서 찾을 수 있습니다 . 비슷한 토론이 여기에 있습니다 . SASL이 구현되어있는 경우 (예를 들어 비둘기장) 안전하게 교체 할 수 있습니다 sender
로 sasl_username
. 다음 -C
옵션 을 사용하여 규칙 세트의 유효성을 테스트 할 수 있습니다 .
postfwd -f /etc/postfwd.cf -C
그런 다음 postfwd
postfwd를 실행하고 실행할 전용 사용자 및 그룹을 선택적으로 만들 수 있습니다 .
postfwd --daemon -f /etc/postfwd.cf -u postfwd -g postfwd
apt (Debian, Ubuntu 등)에서 설치 한 경우 구성 파일도 아래에 있어야 /etc/default/postfwd
하며 서비스를 올바르게 시작할 수 있습니다 (예 :) sudo service postfwd start
.
그런 다음 로그를보고 postfwd가 수신 중인지 확인하십시오. Postfwd 후위 (예와 같은 로그 사용 /var/log/mail
또는 /usr/local/psa/var/log/maillog
등)과 같은 라인 postfwd 1.35 ready for input
위치에 있어야한다.
그런 다음 postfix에 postfwd를 사용하도록 알리십시오. postfix conf 파일 (보통 /etc/postfix/main.cf
)과 다음 줄을 편집하십시오 .
smtpd_recipient_restrictions = permit_mynetworks,...
추가하십시오 check_policy_service inet:127.0.0.1:10040
. 이것을 넣는 순서 smtpd_recipient_restrictions
가 매우 중요하므로 잘못된 것을 진단하는 데 많은 시간을 소비 할 수 있습니다. 이 질문 에서 설명했듯이 한 검사에서 OK 또는 REJECT를 반환하면 postfix가 다음 검사로 계속 진행되지 않으므로이 값을 높게 설정해야합니다.
마지막으로, 이것이 작동하는지 확인하려면 1과 같은 매우 작은 제한을 지정하거나 규칙을로 추가하십시오 id=DEFAULT; action=dunno
. 어쨌든 규칙 적중은 기록됩니다. 발신자 당 요금 한도는 수신자가 여러 명인 여러 이메일과 수신자가 여러 명인 단일 이메일을 구분하지 않습니다.
그런 다음 해당 서버의 계정에서 이메일을 보내고 로그를 확인하십시오.
grep "RULES" /var/log/mail
다른 링크 : postfwd quickstart .