Bu eski soruya verilen tüm diğer cevapların sadece bağlantıya sahip olması bana çarpıcı geliyor. Bu yüzden, bu iş için en sevdiğim çözümü nasıl uygulayacağımı birkaç kelimeyle açıklayacağım.
Bağlantı olduğunu 84104 @ çok faydalı olmasına rağmen, düzgün gönderen başına oranını uygulamak için kullanılamaz, önerdi. smtpd_client
limitler trafik kontrolü için değil, istemci yazılımına yardımcı olmak içindir: "Çok fazla bağlantı yapan istemcilere karşı önlemler". Tek bu gibi öneriler bulabilirsiniz rağmen biri kesinlikle yardımcı olabilir. As @E. Yazici önerdi, postfix için bir eklenti gerekli. Şahsen bulmak policyd tarafından tavsiye edildiği @Janne Pikkarainen oldukça zahmetlidir bir standart olarak kabul edilir olsa da.
En sevdiğim eklenti postfwd çünkü hafif ve kolay. Bunun, Plesk'in karmaşık yapılandırma dosyaları setini etkilemeden Plesk veya diğer benzerleriyle çok kolay çalıştığını da belirtmek gerekir. Plesk'teki e-posta hızı sınırı yalnızca sürüm 12'de uygulanmıştır, ancak yine de ilke özellikleri sınırlıdır.
İlk önce yukarıdaki siteden en son eklentiyi indirin. Ubuntu ve Debian'ın aksine CentOS için rpm olmadığına inanıyorum. Bununla birlikte, en son sürümün kullanılması tavsiye edilir. Daha spesifik olarak, sürüm 1.32 (örn. Ubuntu 14.04LTS depolarında bulunur), düzgün çalışmasını engelleyen kötü bir hataya sahiptir. Sürüm 1.35 bunu sıralar.
Bu PERL modüllerinin mevcut olduğundan emin olun . Debian veya Ubuntu kullanıyorsanız , tüm bağımlılıkların otomatik olarak sıralanması ve /usr/sbin/postfwd
en son sürümle değiştirilmesi için depolardan yükleyebilirsiniz .
Sonra kural kümesini oluşturun. /etc/postfwd.cf
Veya gibi bir dosya oluşturun /etc/postfix/postfwd.cf
ve ekleyin:
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)
Yukarıdaki kural kümesinin tüm gönderenler için değerlendirilen iki kuralı vardır. rate
Eylemin sözdizimi :
rate (<item>/<max>/<time in sec>/<action>)
Diğer ücret örnekleri burada bulunabilir . Sözdizimi referansı dokümanlarda bulunabilir . Benzer tartışma burada bulunabilir . SASL uygulanması halinde (örneğin güvercinlik) güvenle yerini alabilir sender
ile sasl_username
. Kural kümesinin geçerliliğini şu seçenekle test edebilirsiniz -C
:
postfwd -f /etc/postfwd.cf -C
Daha sonra, isteğe bağlı olarak postfwd
postfwd'nin çalışacağı özel bir kullanıcı ve grup oluşturabilir ve başlatabilirsiniz:
postfwd --daemon -f /etc/postfwd.cf -u postfwd -g postfwd
Apt'den (Debian, Ubuntu vb.) Yüklenmiş olması durumunda, altında bir yapılandırma dosyası da olmalıdır /etc/default/postfwd
ve hizmeti düzgün bir şekilde başlatabilirsiniz, örn sudo service postfwd start
.
Ardından postfwd öğesinin dinlediğini doğrulamak için günlüğe bakın. Postfwd, postfix (örn. /var/log/mail
Veya /usr/local/psa/var/log/maillog
vb.) İle aynı günlüğü ve postfwd 1.35 ready for input
yerinde olması gereken bir satırı kullanır .
Ardından, postfix'in postfwd kullanmasını bildirin. Postfix conf dosyasını (genellikle /etc/postfix/main.cf
) ve satırda düzenleyin:
smtpd_recipient_restrictions = permit_mynetworks,...
ekleyin check_policy_service inet:127.0.0.1:10040
. Bunu koyduğunuz siparişin smtpd_recipient_restrictions
büyük önem taşıdığını ve neyin yanlış olabileceğini teşhis etmek için çok fazla zaman harcayabileceğinizi lütfen unutmayın. Bu soruda açıklandığı gibi , bir onay TAMAM veya REJECT döndürürse, postfix bir sonrakine devam etmez, bu yüzden muhtemelen bu kadar yükseğe yerleştirmelisiniz.
Son olarak, bunun işe yarayıp yaramadığını kontrol etmek için 1 gibi çok küçük bir sınır belirtebilir veya hatta bir kural ekleyebilirsiniz id=DEFAULT; action=dunno
. Herhangi bir kural isabeti yine de kaydedilir. Ayrıca, gönderen başına ücret sınırının, tek bir alıcıya sahip birden fazla e-posta veya birden çok alıcıya sahip tek bir e-posta arasında ayrım yapmadığını unutmayın.
Ardından bir hesaptan (o sunucudaki) bir e-posta gönderin ve günlüğe bakın:
grep "RULES" /var/log/mail
Diğer bağlantılar: postfwd quickstart .