ClamAV voor Postfix inschakelen op Plesk Obsidian / CentOS 7

Geschatte leestijd: 2 min

Introductie

In dit artikel zullen we beschrijven hoe je ClamAV (anti-virus) kunt configureren om inkomende mail te scannen op virussen in Plesk op CentOS 7. SpamAssassin in combinatie met ClamAV wordt beschouwd als een standaard setup ter bescherming tegen virussen en spam. Deze artikelen helpen bij het installeren en configureren van beide.

Vereisten

  • VPS of Dedicated Server met Plesk Obsidian controlepaneel op CentOS 7
  • SSH root toegang tot de server

Stap 1: Log in via SSH

Je moet via SSH ingelogd zijn als sudo of rootgebruiker. Lees dit artikel als je niet zeker weet hoe je verbinding moet maken. 

Stap 2: Installeer EPEL repo

ClamAV is geinstalleerd vanuit EPEL repo.

yum -y install epel-release

Stap 3: Installeer ClamAV en utilities

yum -y install clamav clamd clamav-milter

Stap 4: Schakel freshclam in om virusdefinities automatisch bij te werken

systemctl enable clamav-freshclam
systemctl start clamav-freshclam

Stap 5: Configureer clamd

Clamd wordt gebruikt om daadwerkelijk op virussen te scannen. In ons voorbeeld wordt clamd genoemd door clamav-milter.

sed -i "s|^#LogFacility LOG_MAIL|LogFacility LOG_MAIL|g" /etc/clamd.d/scan.conf
sed -i "s|^#LocalSocket\s.*|LocalSocket /run/clamd.scan/clamd.sock |g" /etc/clamd.d/scan.conf
sed -i "s|^#ScanArchive yes|ScanArchive yes|g" /etc/clamd.d/scan.conf
sed -i "s|^#AlertEncrypted yes|AlertEncrypted yes|g" /etc/clamd.d/scan.conf
sed -i "s|^#AlertEncryptedArchive yes|AlertEncryptedArchive yes|g" /etc/clamd.d/scan.conf
sed -i "s|^#AlertEncryptedDoc yes|AlertEncryptedDoc yes|g" /etc/clamd.d/scan.conf
sed -i "s|^#AlertBrokenExecutables yes|AlertBrokenExecutables yes|g" /etc/clamd.d/scan.conf

Stap 6: Schakel clamd in

systemctl enable [email protected]
systemctl start [email protected]

Stap 7: Configureer clamav-milter

We brengen wijzigingen aan in clamav-milter en instrueren clamav-milter hoe er verbinding gemaakt kan worden met clamd. In onze configuratie worden virussen ook geweigerd.

sed -i "s|^Example|#Example|g" /etc/mail/clamav-milter.conf
sed -i "s|^#ClamdSocket tcp:scanner.mydomain:7357|ClamdSocket unix:/run/clamd.scan/clamd.sock|g" /etc/mail/clamav-milter.conf
sed -i "s|^#AddHeader Replace|AddHeader Replace|g" /etc/mail/clamav-milter.conf
sed -i "s|^#LogFacility LOG_MAIL|LogFacility LOG_MAIL|g" /etc/mail/clamav-milter.conf
sed -i "s|^#MilterSocket inet:7357|MilterSocket inet:3381@localhost|g" /etc/mail/clamav-milter.conf
sed -i "s|^#OnInfected Quarantine|OnInfected Reject|g" /etc/mail/clamav-milter.conf

Stap 8: Schakel clamav-milter in

systemctl enable clamav-milter
systemctl start clamav-milter

Stap 9: Verifeer dat clamav-milter nu draait

grep clamav-milter /var/log/maillog

De output moet er ongeveer zo uitzien:

Aug 28 14:41:41 s1.localhost clamav-milter[124614]: +++ Started at Fri Jun 19 16:43:51 2020

Stap 10: Postfix updaten in de hoofdconfiguratie

Dit is de stap waarin we Postfix instrueren om gebruik te maken van de clamav-milter.

postconf -e milter_default_action=accept
postconf -e milter_protocol=6
postconf -e smtpd_milters="inet:127.0.0.1:12768, inet:127.0.0.1:3381"
postconf -e non_smtpd_milters=inet:127.0.0.1:3381

Stap 11: Herlaad postfix

postfix reload

Stap 12: Test ClamAV (lokaal)

Bij deze stap zullen we testen of de levering van virussen wordt afgewezen.

We beginnen met het downloaden van het eicar-testbestand. Dit is een onschadelijk bestand (geen echt virus) dat door een antivirusoplossing als virus moet worden gedetecteerd.

cd /tmp
wget https://secure.eicar.org/eicar.com.txt

Vervolgens installeren we mutt voor het versturen van een testmail met bijlage:

yum -y install mutt

We configureren mutt configureren om een juist van-adres te verzenden dat ook de bounce zal ontvangen. Vergeet niet het afzenderadres te wijzigen!

echo -e 'set from="[email protected]"' > /root/.muttrc
echo -e 'set use_from=yes' >> /root/.muttrc
echo -e 'set use_envelope_from=yes' >> /root/.muttrc

We gaan nu een e-mail sturen, zorg ervoor dat je het adres van de ontvanger vervangt.

echo "This message contains a virus" | mutt -a eicar.com.txt -s "This is a virus" -- [email protected]

Je zou de teruggestuurde e-mail in het e-maillogboek moeten kunnen zien (vervang het afzenderadres):

grep "[email protected]" /var/log/maillog

De output moet er ongeveer zo uitzien:

Aug 28 14:55:41 s1 postfix/cleanup[27493]: 2305E300A6E: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Command rejected; from=<[email protected]> to=<[email protected]>
Aug 28 14:55:41 s1 postfix/cleanup[27493]: 2305E300A6E: to=<[email protected]>, relay=none, delay=0.19, delays=0.19/0/0/0, dsn=5.7.1, status=bounced (Command rejected)

Als je de hele transactiegreep op de ID wilt zien (vervang ID):

grep 2305E300A6E /var/log/maillog

De output moet er ongeveer zo uitzien:

Aug 28 14:55:41 s1.localhost postfix/pickup[22190]: 2305E300A6E: uid=0 from=<root>
Aug 28 14:55:41 s1.localhost postfix/cleanup[27493]: 2305E300A6E: message-id=<[email protected]>
Aug 28 14:55:41 s1.localhost postfix/cleanup[27493]: 2305E300A6E: milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]: 5.7.1 Command rejected; from=<[email protected]> to=<[email protected]>
Aug 28 14:55:41 s1.localhost postfix/cleanup[27493]: 2305E300A6E: to=<[email protected]>, relay=none, delay=0.17, delays=0.17/0/0/0, dsn=5.7.1, status=bounced (Command rejected)
Aug 28 14:55:41 s1.localhost postfix/cleanup[27493]: 2305E300A6E: to=<[email protected]>, relay=none, delay=0.19, delays=0.19/0/0/0, dsn=5.7.1, status=bounced (Command rejected)
Aug 28 14:55:41 s1.localhost postfix/bounce[27499]: 2305E300A6E: sender non-delivery notification: 4D46F300A91

Opruimen:

rm -f /tmp/eicar.com.txt /root/.muttrc

Conclusie

Gefeliciteerd, je hebt nu ClamAV geconfigureerd om inkomende e-mail op virussen te kunnen controleren.

Was dit artikel nuttig?
Niet leuk 0
Weergaven: 302

Reader Interactions

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *