[[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