วิธีเพิ่มการป้องกันไวรัสและสแปมให้กับเซิร์ฟเวอร์อีเมล Postfix ด้วย ClamAV และ SpamAssassin - ตอนที่ 3
ในสองบทความก่อนหน้าของชุด Postfix นี้ คุณได้เรียนรู้วิธีการตั้งค่าและจัดการฐานข้อมูลเซิร์ฟเวอร์อีเมลผ่าน phpMyAdmin และวิธีกำหนดค่า Postfix และ Dovecot ให้จัดการกับอีเมลขาเข้าและขาออก นอกจากนี้ เรายังอธิบายวิธีการตั้งค่าโปรแกรมรับส่งเมล เช่น Thunderbird สำหรับบัญชีเสมือนที่เราสร้างไว้ก่อนหน้านี้
- ตั้งค่า Postfix Mail Server และ Dovecot ด้วย MariaDB – ตอนที่ 1
- วิธีกำหนดค่า Postfix และ Dovecot กับผู้ใช้โดเมนเสมือน - ตอนที่ 2
- ติดตั้งและกำหนดค่าไคลเอ็นต์เว็บเมล RoundCube ด้วยผู้ใช้เสมือนใน Postfix - ตอนที่ 4
- ใช้ Sagator ซึ่งเป็นเกตเวย์ป้องกันไวรัส/ป้องกันสแปมเพื่อปกป้องเมลเซิร์ฟเวอร์ของคุณ – ตอนที่ 5
เนื่องจากการตั้งค่าเซิร์ฟเวอร์อีเมลไม่สามารถทำได้หากไม่มีการป้องกันไวรัสและสแปม เราจึงจะกล่าวถึงหัวข้อนั้นในบทความปัจจุบัน
โปรดทราบว่าแม้ว่าระบบปฏิบัติการ *nix-like มักจะถือว่าปราศจากไวรัส แต่มีโอกาสที่ไคลเอ็นต์ที่ใช้ระบบปฏิบัติการอื่นจะเชื่อมต่อกับเซิร์ฟเวอร์อีเมลของคุณด้วย
ด้วยเหตุผลดังกล่าว คุณจึงต้องให้ความมั่นใจแก่พวกเขาว่าคุณได้ใช้มาตรการที่จำเป็นเพื่อปกป้องพวกเขาในขอบเขตที่เป็นไปได้จากภัยคุกคามดังกล่าว
การกำหนดค่า SpamAssassin สำหรับ Postfix
ในกระบวนการรับอีเมล นักฆ่าสแปมจะยืนอยู่ระหว่างโลกภายนอกกับบริการอีเมลที่ทำงานบนเซิร์ฟเวอร์ของคุณ หากตามกฎคำจำกัดความและการกำหนดค่าพบว่าข้อความขาเข้าเป็นสแปม ระบบจะเขียนบรรทัดหัวเรื่องใหม่เพื่อระบุอย่างชัดเจน มาดูวิธีการกัน
ไฟล์การกำหนดค่าหลักคือ /etc/mail/spamassassin/local.cf
และเราควรตรวจสอบให้แน่ใจว่ามีตัวเลือกต่อไปนี้ (เพิ่มหากไม่มีหรือไม่ใส่เครื่องหมายข้อคิดเห็นหากจำเป็น):
report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
- เมื่อตั้งค่า report_safe เป็น 0 (ค่าที่แนะนำ) สแปมขาเข้าจะได้รับการแก้ไขโดยการแก้ไขส่วนหัวของอีเมลตาม rewrite_header เท่านั้น หากตั้งค่าเป็น 1 ข้อความจะถูกลบ
- หากต้องการตั้งค่าความเข้มงวดของตัวกรองสแปม 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
คุณอาจจะนึกถึงแนวคิดอื่นๆ ที่สามารถเพิ่มคุณค่าให้กับซีรีส์นี้ได้ หากเป็นเช่นนั้น โปรดส่งข้อความถึงเราโดยใช้แบบฟอร์มความคิดเห็นด้านล่าง ขอขอบคุณสำหรับคำถามและข้อเสนอแนะอื่นๆ เช่นกัน เราหวังว่าจะได้รับการติดต่อจากคุณ!