Kako kod MailScanner-a izvući poruke iz karantina

U do sada formiranoj konstelaciji (videti ranije postove, MailWatch Version = 1.2.0, MailScanner Version = 4.84.5, PHP Version = 5.3.3, MySQL Version = 5.1.61), karantin MailScanner-a se nalazi pod folderom /var/spool/MailScanner. Da bi se kroz MailWAtch+MailScanner mogle puštati poruke iz karantina, potrebno je da ovaj folder ima prava koja Apache korisniku dozvoljavaju WRX (kod nas je HTTP korisnik apache) :
[root@mail-server MailScanner]# pwd
/var/spool/MailScanner
[root@mail-server MailScanner]# ll
drwxrwx— 30 root apache 4096 Mar 31 00:55 quarantine
To se postiže ovako :
[root@mail-server MailScanner]# chown root.apache quarantine/
[root@mail-server MailScanner]# chmod 770 quarantine/
Takođe je neophodno da linije u MailScanner.conf fajlu glase ovako :
Quarantine User =
Quarantine Group = apache
Quarantine Permissions = 0660
Kao posledica ovoga dnevni karantin fajlovi i folderi pod /var/spool/MailScanner/quarantine imaju ovakva vlasništva :
drwxrwx— 3 root apache 4096 Jun 29 10:30 20120629

Napomena : ako se pri pokušaju povraćaja poruke iz karantina ne desi jednostavno ništa (poruka se ne vraća, kroz MailWatch se ne vidi ništa, u /var/log/maillog nema ni jednog upisa) pogledati log fajl : /var/log/httpd/ssl_error.log . Ako je u njemu upis koji liči na ovo :
[Fri Jun 29 10:37:40 2012] [error] [client 10.10.10.11] PHP Parse error: syntax error, unexpected T_VARIABLE in /usr/share/squirrelmail/mailscanner/pear/Mail/mime.php on line 598, referer: https://10.10.10.12/mailscanner/detail.php?id=q5T8U0fVee4643

Treba uraditi sledeće :
Fajl /usr/share/squirrelmail/mailscanner/pear/Mail/mime.php iz MailWatch 1.2.0 instalacije zameniti sa istim fajlom malo starije verzije i resetovati server.

Dump MySQL baze MailScanner-a

E obećala sam ovo, zar ne?
Dakle na Fedori i RHEL-u, pod MySQL-om 4.1.20 (ili višlja verzija), kada broj poruka u bazi priđe broju od 700.000 počinje da se javlja kašnjenje mail poruka, zbog sporosti upisa u MySQL bazu. To ukazuje na potrebu pražnjenja baze. Naravno, bekap hoćemo da sačuvamo!
Dakle evo kako se to radi :
1.
Zaustaviti MailScanner
#service MailScanner stop
2.
Dump same baze
#mysqldump -u root -pmoja-lozinka mailscanner > ime-servera-datum.sql
3.
Provera dump-a listanjem fajlova
4.
Export same strukture baze
# mysqldump -u root -pmoja-lozinka –no-data mailscanner > ime-servera-datum-samo-struktura.sql
5.
Import samo strukture baze, čime se brišu podaci
#mysql -u root -pmoja-lozinka mailscanner < ime-servera-datum-samo-struktura.sql
6.
Ponovno postavljanje korisnika mailwatch u sada ispražnjenu bazu mailscanner
#mysql -u root -p
mysql> use mailscanner;
Ovbu naredbu sam morala da stavim kao sliku, jer inače obori WordPress….
MySQL komanda
mysql> select username,password from users;
+———–+———————————-+
| username | password |
+———–+———————————-+
| mailwatch | 2c9e2hh7bf5hjz4318arr551c93b30ea |
+———–+———————————-+
7.
Ponovo pokrenuti MailScanner
#service MailScanner start
8.
Provera urađenog kroz Internet Explorer
Uđemo na MailWatch sajt za server, odemo u stavku “Reports” i pogledamo kako broj poruka kreće od nule….
Pratiti prolazak i logovanje mail-ova.
9.
Prebacivanje urađenog na backup server :
# scp ime-servera-datum-samo-struktura.sql root@11.12.13.14:/backup/MySQL-dump/
# scp ime-servera-datum.sql root@11.12.13.14:/backup/MySQL-dump/

Slani miševi

Dakle još jedan recept sa tikvicama.
Dobar je topao i hladan, može za ručak i za doručak.
1 veća rendana tikvica
4 jajeta
1 prašak za pecivo
so, biber, kari po ukusu
100gr pšeničnog griza
100gr integralnog brašna
oko 400gr običnog brašna
Umešati dobro. Kašikom stavljati po malo u vrelo ulje.
Zato se i zovu miševi, jer imaju repiće …. 😉
Odlično je uz kajmak ili majonez. Hladno sa maslinkama je fantastično.

MailScanner i neželjeni mail

Dakle kako se rešiti neželjenih mail poruka.
Ne spam-a, nego neželjenih tipova attachment-a koji idu uz poruke; na primer avi, wmv, mp3, dll, exe. Ovakve poruke uzimaju prostor i procesorsko vreme, odvlače pažnju korisnika 😉 a mogu i biti opasne po njegov kompjuter…
Dakle kako zabraniti određene attachment-e uz poruke (bilo po tipu dokumenta ili po imenu), a ako ipak neku poruku želite da pustite, kako ih pustiti iz karantina – što će biti dato u nekom od sledećih postova.

Deo u MailScanner.conf fajlu koji se odnosi na ovu problematiku :
Filename Rules = %etc-dir%/filename.rules
Filetype Rules = %etc-dir%/filetype.rules

Fajlovi u kojima se konkretno određuju imena i tipovi zabranjeni za prolaz kroz mail server nalaze se na lokaciji /etc/MailScanner/ :
filename.rules
Određuje za koje mail naloge važi fajl filename.rules.allowall.conf (kojim se propušta sve ka i od tog naloga) a za koje mail naloge važi fajl filename.rules.conf (u koj su stavljene razne zabrane)
filename.rules.allowall.conf
filename.rules.conf

filetype.rules
Određuje za koje mail naloge važi fajl filetype.rules.allowall.conf (kojim se propušta sve ka i od tog naloga) a za koje mail naloge važi fajl filetype.rules.conf (u koj su stavljene razne zabrane)
filetype.rules.allowall.conf
filetype.rules.conf

Evo kako izgledaju fajlovi /etc/MailScanner/filename.rules i filetype.rules :
From: postmaster@moj.domen.rs /etc/MailScanner/filename.rules.allowall.conf
FromOrTo: jedan.nalog@moj.domen.rs /etc/MailScanner/filename.rules.allowall.conf
FromOrTo: default /etc/MailScanner/filename.rules.conf
Naravno, ova dva fajla ne moraju da sadrže iste naloge, ali zadnja linija je obavezno ista u oba fajla, i ona određuje koja pravila važe za sve ostale naloge (sem onih eksplicitno navedenih).

Kako izgledaju fajlovi /etc/MailScanner/filename.rules.allowall.conf i filetype.rules.allowall.conf :
allow .* – –
Ovo u suštini znači da za naloge za koje važe ovi konfiguracioni fajlovi ne postoje nikakve zabrane po pitanju imena ili tipa fajlova zakačenih uz mail poruku.

Fajlovi /etc/MailScanner/filename.rules.conf i filetype.rules.conf već kao takvi postoje na serveru, i u njih samo treba dodati odgovarajuće zabrane :
Na primer u fajl filename.rules.conf može se dodati sledeće :

deny \.avi$ – –
deny \.asf$ – –
deny \.dv$ – –

A u fajl filetype.rules.conf u principu nije bilo potrebe bilo šta dodavati…
Paziti kada se dodaju stavke u bilo koj od ovih fajlova, jer je OBAVEZNO KORISTITI TAB, A NE SPACE!!!!
Ako u tome pogrešite, pri startu MailScanner-a se javlja ovakva greška :

Jun 22 10:54:27 mail-server MailScanner[15582]: Possible syntax error on line 175 of /etc/MailScanner/filename.rules.conf
Jun 22 10:54:27 mail-server MailScanner[15582]: Remember to separate fields with tab characters!

Šema korišćenja ovih fajlova :

I kako izgleda log kada “upecamo” neki zabranjeni fajl :

Jun 22 09:11:19 mail-server MailScanner[7727]: Message q5M7Akkj023525 from 11.12.13.14 (nalog1@domen1) to moj.domen is too big for spam checks (2878908 > 200000 bytes)
Jun 22 09:11:20 mail-server MailScanner[7727]: Filename Checks: (q5M7Akkj023525 fajl.wmv)
Jun 22 09:11:20 mail-server MailScanner[7727]: Saved entire message to /var/spool/MailScanner/quarantine/20120622/q5M7Akkj023525
Jun 22 09:11:20 mail-server MailScanner[7727]: Saved infected “fajl.wmv” to /var/spool/MailScanner/quarantine/20120622/q5M7Akkj023525

Anti spam, ručno pravljene liste, deo 5

Ovakve ručno pravljene liste, mogu se formirati na nekoliko mesta :

  • Na nivou iptables-a (firewall-a)
  • Kroz Sendmail access bazu
  • Kroz bazu crnih i belih lista SpamAssassin-a

Liste na nivou iptables servisa
Sem u slučajevima krajnje nužde, ovde nije dobra ideja stavljati tako nešto. A u slučaju da se stavi, obavezno aktivirati opciju logovanja iptables-a, radi praćenja događanja. Čak i kada se registruje direktni napad sa neke adrese, bolje je to zaustaviti na edge komunikacionim uređajima.

Liste na nivou access baze samog Senmdail-a
Tu vam se svakako MORA nalaziti deo koji se odnosi na lokalni server, mrežu i domen :
localhost.localdomain RELAY
localhost RELAY
127.0.0.1 RELAY
####
10 RELAY
moj.domen.rs OK
A ostatak se može dodati prema potrebama i ukusu, na primer :
From:losa.adresa@spam.domen REJECT
IP.adresa.sa.koje.dolazi.spam REJECT

Posle svake izmene treba generisati access.db bazu i restartovati MailScanner :
# makemap hash access < access # service MailScanner restart Crne i bele liste SpamAssassin-a
Nalaze se u folderu /etc/MailScanner/rules, u dva fajla :
spam.blacklist.rules
spam.whitelist.rules
U obe liste mogu se stavljati IP adrese, mail adrese, ili imena domena.
Primer crne liste :
From: 11.12.13. yes
From: *@nepristojan.domen yes
From: losa@adresa.mail yes
ToOrFrom: default no Ovo je OBAVEZNO na kraju ove liste

Primer bele liste :
From: postmaster@moj.domen yes
To: admin-postmaster@neki.domen yes
FromOrTo: default no Ovo je OBAVEZNO na kraju ove liste

Posle ovih izmena obavezno restartvovati MailScanner!

Kako izgleda kada kada je pošiljalac poruke na crnoj listi :

Jun 21 09:05:32 mail-server MailScanner[13843]: Message q5L75KdY032726 from 100.200.300.400 (nevaljala@mail.adresa) to moj.domen is spam (blacklisted)

BlackBerry problemi

Ako imate BlackBerry komunikaciju (mail server) nakačen na Sendmail, i on odjednom, i bez ikakvog vidljivog razloga počne sve traljavije da radi (najgora kombinacija, čas radi, čas ne radi), OBAVEZNO proveriti DNS resolving za dati Sendmail server….

A evo i spiska IP adresa za BlackBerry.

MailScanner provera rada

Moje verzije sa kojima radim su :
RHEL6U2, MailScanner 4.84.5, SpamAssassin 3.3.1-2, ClamAV 0.97.4, MySQL 5.1.61

Posle svog konfigurisanja, promena i dodavanja ima još jedna, POSLEDNJA provera za rad MailScanner servisa 🙂 :
# MailScanner –lint
(Paziti ovo je – -lint, dakle dva znaka “-” jedan za drugim, bez razmaka)
Pažljivo pratiti izlaz, u kojem se mogu određene greške.
Evo nekih od mogućih grešaka, i kako ih rešiti :
Jedan
Unrar is not installed, it should be in /usr/bin/unrar.
This is required for RAR archives to be read to check
filenames and filetypes. Virus scanning is not affected.
Unrar problem – instalirati unrar RPM
Što se Fedore, CentOS-a i RHEL-a tiče ovde mogu da se nađu RPM-ovi.
Dva
# MailScanner –lint
ERROR: The “envelope_sender_header” in your spam.assassin.prefs.conf
ERROR: is not correct, it should match X-trezor-MailScanner-From
Razlika u “envelope_sender_header” odnosno “Envelope From Header” u spam.assassin.prefs.conf i MailScanner.conf fajlovima.
Staviti u spam.assassin.prefs.conf i MailScanner.conf da bude jednako za ove dve stavke.
Tri
clamscan : unrecognized option ¨–unzip
ERROR:unknown option passed
ERROR:can,t parse the command line
Pogledati fajl , i hešovati označeno :
# vi /usr/lib/MailScanner/clamav-wrapper
#ExtraScanOptions=”$ExtraScanOptions –unzip”
#ExtraScanOptions=”$ExtraScanOptions –unzip=/usr/bin/unzip”
#ExtraScanOptions=”$ExtraScanOptions –jar”
#ExtraScanOptions=”$ExtraScanOptions –jar=/path/to/unzip”
#ExtraScanOptions=”$ExtraScanOptions –tar”
#ExtraScanOptions=”$ExtraScanOptions –tar=/path/to/tar”
#ExtraScanOptions=”$ExtraScanOptions –tgz”
#ExtraScanOptions=”$ExtraScanOptions –tgz=/path/to/tar”

I pogledati fajl i hešovati označeno :
# vi /usr/lib/MailScanner/MailScanner/SweepViruses.pm
# if ($rarcmd && -x $rarcmd) {
# $Scanners{clamav}->{CommonOptions} .= ” –unrar=$rarcmd”;
# MailScanner::Log::InfoLog(“ClamAV scanner using unrar command %s”,
# $rarcmd);
# }
Četiri
Ako se pri zaustavljanju MailScanner-a javlja (ponekad) sledeće :
# service MailScanner stop
Shutting down MailScanner daemons:
MailScanner: commit ineffective with AutoCommit enabled at /usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pm line 93, line 1.
Commmit ineffective while AutoCommit is on at /usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pm line 93, line 1.
[ OK ]
incoming sendmail: [ OK ]
outgoing sendmail: [ OK ]

To se rešava na sledeći način :
U fajlu /usr/lib/MailScanner/MailScanner/CustomFunctions/MailWatch.pm :
sub ExitLogging {
# Server exit – commit changes, close socket, and exit gracefully.
close(SERVER);
#$dbh->commit;
$dbh->disconnect;
exit;
}

Napomena : upis prestaje tek posle prvog sledećeg reseta MailScanner-a…
Pet
# MailScanner –lint
….
Use of “goto” to jump into a construct is deprecated at /usr/share/perl5/Mail/SpamAssassin/Plugin/Check.pm line 409.
….
Ako se javlja ovakva greška u Fedora 14, treba sa spamassassin verzije 3.3.1-5.fc14 preći na verziju 3.3.2-7.fc14
Šest
# MailScanner –lint
….
config: failed to parse line, skipping, in “/etc/mail/spamassassin/mailscanner.cf”: use_auto_whitelist 0
….
U fajlu : /etc /MailScanner/spam.assassin.prefs.conf treba hešovati liniju :
use_auto_whitelist 0
Ovime se ova opcija isključuje, što je i bolje jer daje prilično lažnih pozitiva za spam koji to nije.
Ako baš želite da vam ta opcija radi, mora se omogućiti, što u ovoj verziji SpamAssasin-a nije automatski (videti ovde)
Sedam
Kako proveriti verzije svih modula koji se vrte pod MailScanner-om :
MailScanner -v
Running on
Linux mail-2012.moj.domen 2.6.32-358.0.1.el6.i686 #1 SMP Wed Feb 20 11:05:00 EST 2013 i686 i686 i386 GNU/Linux
This is Red Hat Enterprise Linux Server release 6.4 (Santiago)
This is Perl version 5.010001 (5.10.1)

This is MailScanner version 4.84.5
Module versions are:
1.00 AnyDBM_File
1.30 Archive::Zip
0.23 bignum
1.11 Carp
…..
2.0.0 Text::Balanced
1.40 URI
0.77 version
missing YAML

Projica, verzija 2

Verzija projice sa tikvicama i pečenom paprikom.
Super je i hladno i toplo, sa pavlakom ili majonezom.
Oljuštiti i izrendati dve veće tikvice.
Dodati izdrobljenog feta sira, oko 200-250gr.
So, biber, prašak za pecivo i mirođija se dodaju po ukusu.
Iseckati 3-4 pečene paprike i dodati ih u smesu.
4-5 celih jaja
100-150gr griza
100gr kukuruznog brašna
100-150gr integralnog brašna
oko 400gr običnog brašna
Dobro umešati testo, staviti u nauljeni pleh i peći u predhodno ugrejanoj rerni, na oko 250-300C.
Peče se oko 45min.
Prijatno!

Borba protiv spam-a, graylisting, deo 4

Šta je uopšte Milter Graylist?
Pa evo jedne lepe definicije :
**************
Milter-greylist is a stand-alone milter written in C that implements the greylist filtering method, as proposed by Evan Harris. Grey listing works by assuming that, unlike legitimate MTA, spam engines will not retry sending their junk mail on a temporary error. The filter will always reject mail temporarily on a first attempt, then accept it after some time has elapsed. If spammers ever try to resend rejected messages, we can assume they will not stay idle between the two sends (if they do, the spam problem would just be solved). Odds are good that the spammer will send a mail to a honey pot address and get blacklisted in several real-time distributed black lists before the second attempt.
***************
A evo i početne strane za Milter Greylist.
Pošto ja koristim Fedoru i RHEL, najviše volim da pakete (kada je to moguće) uzmem u RPM formatu.
Dakle odavde može da se uzme Milter Graylist. Naravno, uvek je najbolje najnovija verzija….

Spuštanje paketa :
# wget http://pkgs.repoforge.org/milter-greylist/milter-greylist-4.2.7-1.el6.rf.i686.rpm
Početni uslovi :
Sendmail paket najmanje 8.11 verzije (kod mene je 8.14.4-8) i Milter opcija, kao i libmilter paket (uzeti sendmail-milter RPM za CentOS, odgovarajuće verzije, naravno).
Evo kako se to proverava za Milter opciju :
# sendmail -d0.1 -bt Sam mail server treba da je na beloj listi obavezno!

#bela lista za ORACLE farmu servera Ovo obavezno, ili će kašnjenje sa ovog klastera biti ogromno
racl whitelist addr 148.87.113.120/32 Isto treba uraditi i za ostale klastere sa kojima mail-ujete
racl whitelist addr 148.87.113.121/32
racl whitelist addr 148.87.113.123/32
racl whitelist addr 148.87.113.124/32
racl whitelist addr 148.87.113.125/32
racl whitelist addr 141.146.126.230/32
racl whitelist addr 141.146.126.231/32
racl whitelist addr 141.146.126.230/32

racl whitelist rcpt moja.adresa@moj.domen.rs Bela lista može i za pojedinačnu adresu primaoca

racl greylist rcpt /.*@moj\.domen.rs/ delay 30s autowhite 3d
#30sec je otprilike kako treba, da korisnici ne postanu mnogo nestrpljivi…..
racl whitelist default Ovo je OBAVEZNO na kraju!!!

Posle ovoga obavezno proveriti sintaksu konfiguracionog fajla :
# milter-greylist -c
config file “/etc/mail/greylist.conf” is okay

Fajl koji takođe treba izmeniti je /etc/mail/sendmail.mc, staviti na kraju fajla :
INPUT_MAIL_FILTER(`greylist’,`S=local:/var/milter-greylist/milter-greylist.sock’)
define(`confMILTER_MACROS_CONNECT’, `j, {if_addr}’)
define(`confMILTER_MACROS_HELO’, `{verify}, {cert_subject}’)
define(`confMILTER_MACROS_ENVFROM’, `i, {auth_authen}’)
define(`confMILTER_MACROS_ENVRCPT’, `{greylist}’)
MAILER(smtp)dnl
MAILER(procmail)dnl

Napraviti sendmail.cf fajl i restartovati servis MailScanner :
# /etc/mail/make
# service MailScanner restart
# service milter-graylist start
# chkconfig milter-greylist on

Provera rada je kroz pregled /var/log/maillog fajl :

Jun 15 12:57:02 mail-2012 milter-greylist: q5FAugBY024420: skipping greylist because address 209.85.213.175 is whitelisted, (from=, rcpt=, addr=mail-yx0-f175.google.com[209.85.213.175]) ACL 128

I ako hoćete da vidite bazu trilinga koje pravi greylist proces, ona se nalazi u ovom fajlu :
/var/milter-greylist/greylist.db