Πώς να προσθέσετε προστασία από ιούς και ανεπιθύμητα μηνύματα στον διακομιστή αλληλογραφίας Postfix με το ClamAV και το SpamAssassin - Μέρος 3


Στα προηγούμενα δύο άρθρα αυτής της σειράς Postfix μάθατε πώς να ρυθμίζετε και να διαχειρίζεστε τη βάση δεδομένων διακομιστή email μέσω του phpMyAdmin και πώς να διαμορφώνετε το Postfix και το Dovecot για να χειρίζονται εισερχόμενα και εξερχόμενα μηνύματα. Επιπλέον, εξηγήσαμε πώς να ρυθμίσετε ένα πρόγραμμα-πελάτη αλληλογραφίας, όπως το Thunderbird, για τους εικονικούς λογαριασμούς που δημιουργήσαμε προηγουμένως.

  1. Ρυθμίστε τον Postfix Mail Server και το Dovecot με το MariaDB – Μέρος 1
  2. Πώς να ρυθμίσετε το Postfix και το Dovecot με χρήστες εικονικού τομέα – Μέρος 2
  3. Εγκατάσταση και διαμόρφωση του προγράμματος-πελάτη Webmail RoundCube με εικονικούς χρήστες στο Postfix – Μέρος 4
  4. Χρησιμοποιήστε το Sagator, μια πύλη προστασίας από ιούς/αντισπαμ για την προστασία του διακομιστή αλληλογραφίας σας – Μέρος 5

Δεδομένου ότι καμία ρύθμιση διακομιστή email δεν μπορεί να ολοκληρωθεί χωρίς να ληφθούν προφυλάξεις κατά των ιών και των ανεπιθύμητων μηνυμάτων, θα καλύψουμε αυτό το θέμα στο τρέχον άρθρο.

Λάβετε υπόψη ότι ακόμη και όταν τα λειτουργικά συστήματα *nix-like θεωρούνται συνήθως χωρίς ιούς, οι πελάτες που χρησιμοποιούν άλλα λειτουργικά συστήματα θα συνδεθούν επίσης στον διακομιστή email σας.

Για το λόγο αυτό, πρέπει να τους παρέχετε τη σιγουριά ότι έχετε λάβει τα απαραίτητα μέτρα για να τα προστατέψετε στο μέτρο του δυνατού από τέτοιες απειλές.

Διαμόρφωση SpamAssassin για Postfix

Κατά τη διαδικασία λήψης email, το spamassassin θα σταθεί ανάμεσα στον έξω κόσμο και τις υπηρεσίες email που εκτελούνται στον ίδιο τον διακομιστή σας. Εάν διαπιστώσει, σύμφωνα με τους κανόνες ορισμού και τη διαμόρφωσή του, ότι ένα εισερχόμενο μήνυμα είναι ανεπιθύμητο, θα ξαναγράψει τη γραμμή θέματος για να το αναγνωρίσει σαφώς ως τέτοιο. Ας δούμε πώς.

Το κύριο αρχείο διαμόρφωσης είναι /etc/mail/spamassassin/local.cf και θα πρέπει να βεβαιωθούμε ότι είναι διαθέσιμες οι ακόλουθες επιλογές (προσθέστε τις εάν δεν υπάρχουν ή απορρίψτε το σχόλιο εάν χρειάζεται):

report_safe 0
required_score 8.0
rewrite_header Subject [SPAM]
  1. Όταν το report_safe έχει οριστεί σε 0 (συνιστώμενη τιμή), τα εισερχόμενα ανεπιθύμητα τροποποιούνται μόνο με την τροποποίηση των κεφαλίδων email σύμφωνα με το rewrite_header. Εάν έχει οριστεί σε 1, το μήνυμα θα διαγραφεί.
  2. Για να ορίσετε την επιθετικότητα του φίλτρου ανεπιθύμητων μηνυμάτων, η απαιτούμενη_βαθμολογία πρέπει να ακολουθείται από έναν ακέραιο ή δεκαδικό αριθμό. Όσο μικρότερος είναι ο αριθμός, τόσο πιο ευαίσθητο γίνεται το φίλτρο. Η ρύθμιση του required_score σε μια τιμή κάπου μεταξύ 8,0 και 10,0 συνιστάται για ένα μεγάλο σύστημα που εξυπηρετεί πολλά (~100s) λογαριασμούς email.

Αφού αποθηκεύσετε αυτές τις αλλαγές, ενεργοποιήστε και ξεκινήστε την υπηρεσία φίλτρου ανεπιθύμητης αλληλογραφίας και, στη συνέχεια, ενημερώστε τους κανόνες για τα ανεπιθύμητα:

systemctl enable spamassassin
systemctl start spamassassin
sa-update

Για περισσότερες επιλογές διαμόρφωσης, μπορείτε να ανατρέξετε στην τεκμηρίωση εκτελώντας το perldoc Mail::SpamAssassin::Conf στη γραμμή εντολών.

Ενσωμάτωση Postfix και SpamAssassin

Προκειμένου να ενσωματώσουμε αποτελεσματικά το Postfix και το spamassassin, θα χρειαστεί να δημιουργήσουμε έναν αποκλειστικό χρήστη και ομάδα για την εκτέλεση του δαίμονα του φίλτρου ανεπιθύμητης αλληλογραφίας:

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}

Και υποδείξτε (στην κορυφή) ότι το spamassassin θα λειτουργεί ως content_filter:

-o content_filter=spamassassin

Τέλος, επανεκκινήστε το Postfix για να εφαρμόσετε αλλαγές:

systemctl restart postfix

Για να επαληθεύσετε ότι το SpamAssassin λειτουργεί σωστά και εντοπίζει τα εισερχόμενα ανεπιθύμητα μηνύματα, παρέχεται μια δοκιμή γνωστή ως GTUBE (Γενική δοκιμή για αυτόκλητα μαζικά μηνύματα ηλεκτρονικού ταχυδρομείου).

Για να εκτελέσετε αυτήν τη δοκιμή, στείλτε ένα email από έναν τομέα εκτός του δικτύου σας (όπως το Yahoo!, το Hotmail ή το Gmail) σε έναν λογαριασμό που βρίσκεται στον διακομιστή email σας. Ορίστε τη γραμμή Θέμα σε ό,τι θέλετε και συμπεριλάβετε το ακόλουθο κείμενο στο σώμα του μηνύματος:

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

Στη συνέχεια, ενεργοποιήστε και ξεκινήστε τον δαίμονα του σαρωτή 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 που εκτελείται όσο συχνά θέλετε (μία φορά την ημέρα, για παράδειγμα, στη 1 π.μ., η ώρα διακομιστή, όπως υποδεικνύεται στο ακόλουθο παράδειγμα, θεωρείται επαρκής):

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 :

Περίληψη

Εάν ακολουθήσατε τα βήματα που περιγράφονται σε αυτό το σεμινάριο και στα προηγούμενα δύο άρθρα αυτής της σειράς, έχετε τώρα έναν διακομιστή email Postfix που λειτουργεί με προστασία ανεπιθύμητων μηνυμάτων και προστασίας από ιούς.

ΑΠΟΠΟΙΗΣΗ ΕΥΘΥΝΗΣ: Λάβετε υπόψη ότι η ασφάλεια του διακομιστή είναι ένα τεράστιο θέμα και δεν μπορεί να καλυφθεί επαρκώς σε μια σύντομη σειρά όπως αυτή.

Για αυτόν τον λόγο, σας ενθαρρύνω ιδιαίτερα να εξοικειωθείτε με τα εργαλεία που χρησιμοποιούνται σε αυτήν τη σειρά και τις σελίδες man τους. Παρόλο που έκανα ό,τι καλύτερο μπορούσα για να καλύψω τις βασικές έννοιες που σχετίζονται με αυτό το θέμα, μην υποθέσετε ότι αφού περάσετε από αυτήν τη σειρά, είστε πλήρως ικανοί να δημιουργήσετε και να διατηρήσετε έναν διακομιστή email σε περιβάλλον παραγωγής.

Αυτή η σειρά προορίζεται ως σημείο εκκίνησης και όχι ως εξαντλητικός οδηγός για τη διαχείριση διακομιστή αλληλογραφίας στο Linux.

Μάλλον θα σκεφτείτε άλλες ιδέες που μπορούν να εμπλουτίσουν αυτή τη σειρά. Αν ναι, μη διστάσετε να μας στείλετε μια σημείωση χρησιμοποιώντας την παρακάτω φόρμα σχολίων. Ερωτήσεις και άλλες προτάσεις εκτιμώνται επίσης - ανυπομονούμε να ακούσουμε από εσάς!