Tartalomjegyzék

< E-mail szerver

Postfix spamszűrő és vírusírtó Debian Wheezy HOGYAN

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.

Környezet

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:

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

spamtest.sh
#!/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

virustest.sh
#!/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