ค้นหาเว็บไซต์

วิธีเพิ่มการป้องกันไวรัสและสแปมให้กับเซิร์ฟเวอร์อีเมล Postfix ด้วย ClamAV และ SpamAssassin - ตอนที่ 3


ในสองบทความก่อนหน้าของชุด Postfix นี้ คุณได้เรียนรู้วิธีการตั้งค่าและจัดการฐานข้อมูลเซิร์ฟเวอร์อีเมลผ่าน phpMyAdmin และวิธีกำหนดค่า Postfix และ Dovecot ให้จัดการกับอีเมลขาเข้าและขาออก นอกจากนี้ เรายังอธิบายวิธีการตั้งค่าโปรแกรมรับส่งเมล เช่น Thunderbird สำหรับบัญชีเสมือนที่เราสร้างไว้ก่อนหน้านี้

  1. ตั้งค่า Postfix Mail Server และ Dovecot ด้วย MariaDB – ตอนที่ 1
  2. วิธีกำหนดค่า Postfix และ Dovecot กับผู้ใช้โดเมนเสมือน - ตอนที่ 2
  3. ติดตั้งและกำหนดค่าไคลเอ็นต์เว็บเมล RoundCube ด้วยผู้ใช้เสมือนใน Postfix - ตอนที่ 4
  4. ใช้ Sagator ซึ่งเป็นเกตเวย์ป้องกันไวรัส/ป้องกันสแปมเพื่อปกป้องเมลเซิร์ฟเวอร์ของคุณ – ตอนที่ 5

เนื่องจากการตั้งค่าเซิร์ฟเวอร์อีเมลไม่สามารถทำได้หากไม่มีการป้องกันไวรัสและสแปม เราจึงจะกล่าวถึงหัวข้อนั้นในบทความปัจจุบัน

โปรดทราบว่าแม้ว่าระบบปฏิบัติการ *nix-like มักจะถือว่าปราศจากไวรัส แต่มีโอกาสที่ไคลเอ็นต์ที่ใช้ระบบปฏิบัติการอื่นจะเชื่อมต่อกับเซิร์ฟเวอร์อีเมลของคุณด้วย

ด้วยเหตุผลดังกล่าว คุณจึงต้องให้ความมั่นใจแก่พวกเขาว่าคุณได้ใช้มาตรการที่จำเป็นเพื่อปกป้องพวกเขาในขอบเขตที่เป็นไปได้จากภัยคุกคามดังกล่าว

การกำหนดค่า SpamAssassin สำหรับ Postfix

ในกระบวนการรับอีเมล นักฆ่าสแปมจะยืนอยู่ระหว่างโลกภายนอกกับบริการอีเมลที่ทำงานบนเซิร์ฟเวอร์ของคุณ หากตามกฎคำจำกัดความและการกำหนดค่าพบว่าข้อความขาเข้าเป็นสแปม ระบบจะเขียนบรรทัดหัวเรื่องใหม่เพื่อระบุอย่างชัดเจน มาดูวิธีการกัน

ไฟล์การกำหนดค่าหลักคือ /etc/mail/spamassassin/local.cf และเราควรตรวจสอบให้แน่ใจว่ามีตัวเลือกต่อไปนี้ (เพิ่มหากไม่มีหรือไม่ใส่เครื่องหมายข้อคิดเห็นหากจำเป็น):

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
  1. เมื่อตั้งค่า report_safe เป็น 0 (ค่าที่แนะนำ) สแปมขาเข้าจะได้รับการแก้ไขโดยการแก้ไขส่วนหัวของอีเมลตาม rewrite_header เท่านั้น หากตั้งค่าเป็น 1 ข้อความจะถูกลบ
  2. หากต้องการตั้งค่าความเข้มงวดของตัวกรองสแปม required_score จะต้องตามด้วยเลขจำนวนเต็มหรือทศนิยม ยิ่งตัวเลขน้อยลง ตัวกรองก็จะยิ่งละเอียดอ่อนมากขึ้นเท่านั้น แนะนำให้ตั้งค่า required_score เป็นค่าระหว่าง 8.0 ถึง 10.0 สำหรับระบบขนาดใหญ่ที่รองรับ (~100s) บัญชีอีเมล

เมื่อคุณบันทึกการเปลี่ยนแปลงเหล่านั้นแล้ว ให้เปิดใช้งานและเริ่มบริการกรองสแปม จากนั้นอัปเดตกฎสแปม:

systemctl enable spamassassin
systemctl start spamassassin
sa-update

สำหรับตัวเลือกการกำหนดค่าเพิ่มเติม คุณอาจต้องการดูเอกสารประกอบโดยการเรียกใช้ perldoc Mail::SpamAssassin::Conf ในบรรทัดคำสั่ง

การรวม Postfix และ SpamAssassin

เพื่อที่จะบูรณาการ Postfix และ spamassassin ได้อย่างมีประสิทธิภาพ เราจะต้องสร้างผู้ใช้และกลุ่มเฉพาะเพื่อเรียกใช้ daemon ตัวกรองสแปม:

useradd spamd -s /bin/false -d /var/log/spamassassin

จากนั้น เพิ่มบรรทัดต่อไปนี้ที่ด้านล่างของ /etc/postfix/master.cf:

spamassassin unix - n n - - pipe flags=R user=spamd argv=/usr/bin/spamc -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

และระบุ (ที่ด้านบน) ว่านักฆ่าสแปมจะทำหน้าที่เป็น content_filter:

-o content_filter=spamassassin

สุดท้ายให้รีสตาร์ท Postfix เพื่อใช้การเปลี่ยนแปลง:

systemctl restart postfix

เพื่อตรวจสอบว่า SpamAssassin ทำงานอย่างถูกต้องและตรวจพบสแปมขาเข้า จึงมีการทดสอบที่เรียกว่า GTUBE (การทดสอบทั่วไปสำหรับอีเมลขยะที่ไม่พึงประสงค์)

เพื่อทำการทดสอบนี้ ให้ส่งอีเมลจากโดเมนนอกเครือข่ายของคุณ (เช่น Yahoo!, Hotmail หรือ Gmail) ไปยังบัญชีที่อยู่ในเซิร์ฟเวอร์อีเมลของคุณ ตั้งค่าบรรทัดหัวเรื่องเป็นสิ่งที่คุณต้องการและรวมข้อความต่อไปนี้ไว้ในเนื้อหาข้อความ:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

ตัวอย่างเช่น การส่งข้อความด้านบนในเนื้อหาข้อความจากบัญชี Gmail ของฉันจะให้ผลลัพธ์ดังต่อไปนี้:

และแสดงประกาศที่เกี่ยวข้องในบันทึก:

journalctl | grep spam

ดังที่คุณเห็นในภาพด้านบน ข้อความอีเมลนี้มีคะแนนสแปม 1002.3 นอกจากนี้ คุณสามารถทดสอบ spamassassin ได้โดยตรงจากบรรทัดคำสั่ง:

spamassassin -D < /usr/share/doc/spamassassin-3.4.0/sample-spam.txt

คำสั่งดังกล่าวจะสร้างเอาต์พุตแบบละเอียดซึ่งควรมีดังต่อไปนี้:

หากการทดสอบเหล่านี้ไม่สำเร็จ คุณอาจต้องการดูคู่มือการรวมระบบของ Spamassassin

การเริ่ม ClamAV และอัพเดตคำจำกัดความของไวรัส

ในการเริ่มต้น เราจะต้องแก้ไข /etc/clamd.d/scan.conf ยกเลิกการแสดงความคิดเห็นในบรรทัดต่อไปนี้:

LocalSocket /var/run/clamd.scan/clamd.sock

และแสดงความคิดเห็นหรือลบบรรทัด:

Example

จากนั้นเปิดใช้งานและเริ่ม daemon เครื่องสแกน clamav:

systemctl enable [email 
systemctl start [email 

และอย่าลืมตั้งค่า antivirus_can_scan_system SELinux boolean เป็น 1:

setsebool -P antivirus_can_scan_system 1

ณ จุดนี้ การตรวจสอบสถานะของบริการก็คุ้มค่า:

ดังที่คุณเห็นในภาพด้านบน ลายเซ็นไวรัสของเรามีอายุมากกว่า 7 วัน ในการอัปเดต เราจะใช้เครื่องมือที่เรียกว่า freshclam ที่ได้รับการติดตั้งเป็นส่วนหนึ่งของแพ็คเกจ clamav-update

วิธีที่ง่ายที่สุดในการอัปเดตคำจำกัดความของไวรัสคือผ่านงาน cron ที่ดำเนินการได้บ่อยเท่าที่ต้องการ (เช่น วันละครั้ง เวลาเซิร์ฟเวอร์ 01.00 น. ตามที่ระบุในตัวอย่างต่อไปนี้ก็ถือว่าเพียงพอแล้ว):

00 01 * * * root /usr/share/clamav/freshclam-sleep

คุณยังสามารถอัปเดตคำจำกัดความของไวรัสได้ด้วยตนเอง แต่ก่อนที่คุณจะต้องลบหรือใส่ความคิดเห็นในบรรทัดต่อไปนี้ใน /etc/freshclam.conf

Example

ตอนนี้คุณควรจะสามารถวิ่งได้:

freshclam

ซึ่งจะอัพเดตคำจำกัดความของไวรัสตามต้องการ:

ทดสอบ ClamAV เพื่อหาไวรัสในอีเมล

เพื่อตรวจสอบว่า ClamAV ทำงานอย่างถูกต้อง มาดาวน์โหลดไวรัสทดสอบ (ซึ่งเราสามารถรับได้จาก http://www.eicar.org/download/eicar.com) ไปยัง Maildir ของ [email  ( ซึ่งอยู่ใน /home/vmail/linuxnewz.com/tecmint/Maildir) เพื่อจำลองไฟล์ที่ติดไวรัสที่ได้รับเป็นไฟล์แนบเมล:

cd /home/vmail/linuxnewz.com/tecmint/Maildir
wget http://www.eicar.org/download/eicar.com

จากนั้นสแกนไดเรกทอรี /home/vmail/linuxnewz.com ซ้ำๆ:

clamscan --infected --remove --recursive /home/vmail/linuxnewz.com

ตอนนี้ อย่าลังเลที่จะตั้งค่าการสแกนนี้ให้ทำงานผ่าน cronjob สร้างไฟล์ชื่อ /etc/cron.daily/dailyclamscan โดยแทรกบรรทัดต่อไปนี้:

#!/bin/bash
SCAN_DIR="/home/vmail/linuxnewz.com"
LOG_FILE="/var/log/clamav/dailyclamscan.log"
touch $LOG_FILE
/usr/bin/clamscan --infected --remove --recursive $SCAN_DIR >> $LOG_FILE

และให้สิทธิ์ดำเนินการ:

chmod +x /etc/cron.daily/dailyclamscan

cronjob ข้างต้นจะสแกนไดเร็กทอรีเซิร์ฟเวอร์อีเมลแบบวนซ้ำและทิ้งบันทึกการดำเนินการไว้ใน /var/log/clamav/dailyclamscan.log (ตรวจสอบให้แน่ใจว่า /var/log/clamav มีไดเร็กทอรี อยู่แล้ว)

มาดูกันว่าเกิดอะไรขึ้นเมื่อเราส่งไฟล์ eicar.com จาก [email  ไปยัง [email :

สรุป

หากคุณทำตามขั้นตอนที่ระบุไว้ในบทช่วยสอนนี้และในสองบทความก่อนหน้าของชุดนี้ ขณะนี้คุณมีเซิร์ฟเวอร์อีเมล Postfix ที่ใช้งานได้พร้อมการป้องกันสแปมและแอนติไวรัส

ข้อจำกัดความรับผิดชอบ: โปรดทราบว่าการรักษาความปลอดภัยของเซิร์ฟเวอร์เป็นเรื่องที่กว้างใหญ่ และไม่สามารถครอบคลุมได้เพียงพอในซีรีส์สั้นเช่นนี้

ด้วยเหตุนี้ ฉันจึงขอแนะนำให้คุณทำความคุ้นเคยกับเครื่องมือที่ใช้ในซีรีส์นี้และหน้าคู่มือของเครื่องมือเหล่านั้น แม้ว่าฉันได้พยายามอย่างเต็มที่เพื่อครอบคลุมแนวคิดสำคัญที่เกี่ยวข้องกับหัวข้อนี้แล้ว อย่าคิดว่าหลังจากอ่านซีรีส์นี้แล้ว คุณจะมีคุณสมบัติครบถ้วนในการตั้งค่าและบำรุงรักษาเซิร์ฟเวอร์อีเมลในสภาพแวดล้อมการใช้งานจริง

ชุดนี้มีจุดมุ่งหมายเพื่อเป็นจุดเริ่มต้นและไม่ใช่คำแนะนำโดยละเอียดเกี่ยวกับการดูแลระบบเซิร์ฟเวอร์เมลใน Linux

คุณอาจจะนึกถึงแนวคิดอื่นๆ ที่สามารถเพิ่มคุณค่าให้กับซีรีส์นี้ได้ หากเป็นเช่นนั้น โปรดส่งข้อความถึงเราโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง ขอขอบคุณสำหรับคำถามและข้อเสนอแนะอื่นๆ เช่นกัน เราหวังว่าจะได้รับการติดต่อจากคุณ!