มันทำให้ฉันรู้สึกว่าคำตอบอื่น ๆ สำหรับคำถามเก่านี้คือลิงก์อย่างเดียว ดังนั้นฉันจะอธิบายในไม่กี่คำวิธีการใช้โซลูชันโปรดของฉันสำหรับงานนี้
ลิงค์ที่@ 84104ได้แนะนำแม้จะมีประโยชน์มากไม่สามารถนำมาใช้จะต้องใช้อัตราการส่งต่อ smtpd_client
ขีด จำกัด ไม่ได้มีไว้สำหรับการควบคุมปริมาณการเข้าใช้ แต่จะช่วยด้วยซอฟต์แวร์ไคลเอนต์: "มาตรการต่อลูกค้าที่ทำการเชื่อมต่อมากเกินไป" แม้ว่าหนึ่งสามารถหาคำแนะนำเช่นนี้หนึ่งว่ามันอาจจะแน่นอนช่วยเหลือ ในฐานะ@E Yaziciได้แนะนำเป็น addon สำหรับpostfixเป็นสิ่งจำเป็น โดยส่วนตัวฉันพบpolicydตามคำแนะนำของ@Janne Pikkarainenค่อนข้างยุ่งยากแม้ว่าจะถือว่าเป็นมาตรฐาน
addon ที่ฉันชอบคือpostfwdเพราะเบาและง่าย นอกจากนี้ยังเป็นที่น่าสังเกตว่าสิ่งนี้สามารถทำงานได้อย่างง่ายดายกับ Plesk หรืออื่น ๆ ที่คล้ายกันโดยไม่กระทบกับชุดไฟล์การตั้งค่าที่ซับซ้อนของ Plesk การ จำกัด อัตราอีเมลใน Plesk ได้รับการดำเนินการเฉพาะในเวอร์ชัน 12 แต่ยังคงมีคุณสมบัตินโยบายที่ จำกัด
ดาวน์โหลดแอดออนล่าสุดจากเว็บไซต์ข้างต้นก่อน ฉันเชื่อว่า CentOS ไม่มีรอบต่อนาทีตรงกันข้ามกับ Ubuntu และ Debian อย่างไรก็ตามขอแนะนำให้ใช้เวอร์ชันล่าสุด โดยเฉพาะอย่างยิ่งรุ่น 1.32 (ซึ่งมีอยู่ในเช่น. repos Ubuntu 14.04LTS) มีข้อผิดพลาดที่น่ารังเกียจที่ป้องกันไม่ให้ทำงานได้อย่างเหมาะสม เวอร์ชั่น1.35เรียงลำดับตามนี้
ตรวจสอบให้แน่ใจว่าโมดูล PERL เหล่านี้มีอยู่ หากใช้ Debian หรือUbuntuคุณสามารถติดตั้งจาก repos เพื่อให้การอ้างอิงทั้งหมดได้รับการแยกออกโดยอัตโนมัติแล้วแทนที่/usr/sbin/postfwd
ด้วยรุ่นล่าสุด
จากนั้นสร้างชุดกฎ สร้างไฟล์เช่น/etc/postfwd.cf
หรือ/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
คุณสามารถทดสอบความถูกต้องของ ruleset ด้วย-C
ตัวเลือก:
postfwd -f /etc/postfwd.cf -C
หลังจากนั้นคุณสามารถสร้างผู้ใช้และกลุ่มเฉพาะpostfwd
ภายใต้ postfwd ที่จะเรียกใช้และเปิดใช้งาน:
postfwd --daemon -f /etc/postfwd.cf -u postfwd -g postfwd
ในกรณีที่มีการติดตั้งจากฉลาด (เดอูบุนตู ฯลฯ ) นอกจากนี้ยังควรจะมีการตั้งค่าไฟล์ภายใต้และคุณสามารถเริ่มให้บริการได้อย่างถูกต้องเช่น/etc/default/postfwd
sudo service postfwd start
จากนั้นดูที่บันทึกเพื่อตรวจสอบว่า postfwd กำลังฟังอยู่ Postfwd ใช้บันทึกเดียวกันกับ postfix (เช่น/var/log/mail
หรือ/usr/local/psa/var/log/maillog
อื่น ๆ ) และบรรทัดตามที่postfwd 1.35 ready for input
ควรมีอยู่
จากนั้นให้ postfix ทราบว่าใช้ postfwd แก้ไขไฟล์ conf postfix (ปกติ/etc/postfix/main.cf
) และในบรรทัด:
smtpd_recipient_restrictions = permit_mynetworks,...
check_policy_service inet:127.0.0.1:10040
เพิ่ม โปรดพิจารณาว่าคำสั่งซื้อที่คุณวางไว้ภายในsmtpd_recipient_restrictions
นั้นมีความสำคัญอย่างยิ่งและคุณอาจต้องเสียเวลาในการวินิจฉัยว่าอะไรผิดพลาด ตามที่อธิบายไว้ในคำถามนี้หากการตรวจสอบครั้งเดียวส่งคืนตกลงหรือปฏิเสธไม่ให้โพสต์ต่อไปยังหน้าถัดไปดังนั้นคุณควรวางสูงนี้
ที่ผ่านการตรวจสอบว่างานนี้คุณสามารถระบุวงเงินที่น้อยมากเช่น 1 id=DEFAULT; action=dunno
หรือแม้กระทั่งการเพิ่มกฎเป็น กฎการเข้าชมใด ๆ ก็ตามจะถูกบันทึกไว้ โปรดทราบว่าขีด จำกัด อัตราต่อผู้ส่งไม่ได้แยกความแตกต่างระหว่างอีเมลที่มีจำนวนมากกับผู้รับคนเดียวหรืออีเมลเดียวที่มีผู้รับหลายคน
จากนั้นส่งอีเมลจากบัญชี (ในเซิร์ฟเวอร์นั้น) และดูที่บันทึก:
grep "RULES" /var/log/mail
การเชื่อมโยงอื่น ๆ : QuickStart postfwd