[[oktatas:linux:e-mail szerver|< E-mail szerver]]
====== Postfix spamszűrő és vírusírtó Debian Wheezy HOGYAN ======
* **Szerző:** Sallai András
* Copyright (c) Sallai András, 2013
* Licenc: GNU Free Documentation License 1.3
* Web: http://szit.hu
===== Bevezetés =====
A következő HOGYAN a spam és vírusszűrés beállítását mutatja be a postfix
levelezőszerverhez.
A szűrést úgy fogjuk beállítani, hogy a postfix csak az amavis interfészt
használja. A vírusirtót és a spamszűrőt az amavis fogja meghívni.
Az Interneten találhatók olyan beállítások is, ahol a spamassassin nem
az amavis-on keresztül fut. A postfix közvetlenül dolgozik vele.
{{:oktatas:linux:e-mail_szerver:postfix_spamassassin_clamav.png|}}
===== Környezet =====
* gépnév: iskolazo
* tartománynév: zold.and
===== Telepítés =====
apt-get install postfix
apt-get install amavisd-new
apt-get install clamav spamassassin clamav-daemon
apt-get install zoo unzip bzip2 unzoo nomarch lzop p7zip rpm unrar-free arj cpio cabextract
apt-get install libnet-ph-perl libnet-snpp-perl libnet-telnet-perl
A beállításokhoz állítsunk le mindent:
/etc/init.d/postfix stop
/etc/init.d/amavis stop
/etc/init.d/clamav-freshclam stop
/etc/init.d/clamav-daemon stop
===== Clamav beállítások =====
Szerkesszük:
mcedit /etc/clamav/freshclam.conf
Javítsuk:
DatabaseOwner amavis
Szerkesszük:
mcedit /etc/clamav/clamd.conf
Javítsuk:
[...]
LocalSocketGroup amavis
[...]
User amavis
[...]
Adjunk mindent az amavisnak:
chown -R amavis. /var/log/clamav
chown -R amavis. /var/lib/clamav
chown -R amavis. /var/run/clamav
A naplózásnál is át kell állnunk a következő fájlokban:
* /etc/logrotate.d/clamav-daemon
* /etc/logrotate.d/clamav-freshclam
Mindkettőben:
create 640 amavis amavis
===== Amavisd beállítások =====
Állítsuk be a gépnevet:
mcedit /etc/amavis/conf.d/05-node_id
Vegyük fel a következő sort a 1; előtt:
$myhostname = "iskolazo.zold.and";
Állítsuk be mit szeretnénk ellenőrizni:
mcedit /etc/amavis/conf.d/15-content_filter_mode
Vegyük ki a megyjezsét a következő sorok elől:
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Visszapattanó levél csak a vírusoknál van alapból letiltva. Tiltsuk le
a spamek esetén is, hogy ne generáljunk felesleges levélforgalmat.
Szerkesszük a 20-debian_defaults konfigurációs állományt:
mcedit /etc/amavis/conf.d/20-debian_defaults
Keressük meg következő sorokat és állítsuk be a megfelelő értéket:
$final_virus_destiny = D_DISCARD;
$final_banned_destiny = D_DISCARD;
$final_spam_destiny = D_DISCARD;
Indítsuk újra az amavisd-t:
invoke-rc.d amavis restart
===== Postfix beállítása =====
Most be kell állítani a Postfixet, hogy használja az amavist.
Szerkesszük a master.cf állományt:
mcedit /etc/postfix/master.cf
amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o local_header_rewrite_clients=
Szerkesszük a /etc/postfix/main.cf állományt:
mcedit /etc/postfix/main.cf
Írjuk konfigurációs állomány végére:
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
Indítsuk újra a Postfixet:
invoke-rc.d postfix restart
Ellenőrizzük, hogy hallgatózik-e a postfix és az amavis a két porton (10024 és 10025):
netstat -tap
===== Teszt =====
==== Spamszűrő tesztje ====
Küldjünk levelet távoli gépről az alábbi tartalommal, pozitívteszthez:
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
==== Vírusszűrő tesztje ====
Küldjünk levelet távoli gépről az alábbi tartalommal, pozitívteszthez:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
===== Függelék =====
==== Spamteszt ====
#!/bin/bash
HOST=192.168.5.6
PORT=25
echo -n "Pozitiv vagy negativ teszt? (P/n): "
read TESTTYPE
if [ "$TESTTYPE" == "p" ]
then
MSG="XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"
else
MSG="Normal e-mail teszt"
fi
(
echo "ehlo gep1.piros.and"
echo "mail from: ica@gep.piros.and"
echo "rcpt to: joska@verem.zold.and"
echo "data"
echo "From: Ica"
echo "To: Joska"
echo "Subject: Teszt level"
echo "$MSG"
echo "."
echo "quit"
) | nc $HOST $PORT
==== Virusteszt ====
#!/bin/bash
HOST=192.168.5.6
PORT=25
echo -n "Pozitiv vagy negativ virusteszt? ( [p]/n ): "
read TESTTYPE
if [ "$TESTTYPE" == "n" ]
then
MSG="Normal e-mail teszt"
else
MSG="X5O!P%@AP[4\PZX54(P^)7CC)7}\$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!\$H+H*"
fi
(
echo "ehlo meteor"
echo "mail from: ica@meteor"
echo "rcpt to: joska@verem.zold.and"
echo "data"
echo "Date: 2013"
echo "From: Ica"
echo "To: Joska"
echo "Subject: Teszt level"
echo "Message-ID: <123455>"
echo "MIME-Version: 1.0"
echo -e "Content-Type: multipart/mixed; boundary=\"aaaa\""
echo "Content-Disposition: inline"
echo "User-Agent: testscript"
echo
echo "--aaaa"
echo "Content-Type: text/plain; charset=us-ascii"
echo "Content-Disposition: inline"
echo
echo "Virusteszt level"
echo
echo "--aaaa"
echo "Content-Type: text/plain; charset=us-ascii"
echo -e "Content-Disposition: attachment; filename=\"virustest.txt\"\n"
echo -e "$MSG"
echo "--aaaa"
echo "."
echo "quit"
) | nc $HOST $PORT