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.
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
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
Á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
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
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
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*
#!/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
#!/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