Mail server srednje veličine, deo 5 – MailWatch

Čemu služi MailWatch? Za grafičko praćenje protoka mail poruka, u realnom vremenu, sa pretraživanjem.
Pošto koristi MySQL bazu, paziti kada se broj poruka u bazi približi 700.000, jer tada dolazi do velikog usporenja rada (zbog upisa poruka u bazu) i kašnjenja poruka, što se da rešiti bekapom i pražnjenjem baze (ali o tome u kasnijim postovima).

Šta su u startu potrebne stavke, da bi MailWatch mogao da se instalira :
MailScanner koji radi, podignut servis MySQL, Apache, PHP (sa MySQL i GD podrškom), a da bi MailScanner koristio bazu potreban je Perl-DBD-MySQL.

Takođe i podešavanje fajla /etc/php.ini :
short_open_tag = On
safe_mode = Off
register_globals = Off
magic_quotes_gpc = On
magic_quotes_runtime = Off
session.auto_start = 0
Sve stavke već postoje u php.ini fajlu, samo treba ispraviti vrednosti…..

Posle spuštanja (odavde) i razvijanja paketa, on se instalira iz foldera u koji je razvijen :
# mysql < create.sql Kreiranje nove baze za MailWatch
Ulazimo u MySQL, da bi podesili potrebna prava nad novokreiranom bazom :
# mysql
mysql> grant all on mailscanner.* to mailwatch@localhost identified by ‘moja-lozinka’;
mysql> grant file on *.* to mailwatch@localhost identified by ‘moja-lozinka’;
mysql> flush privileges;
mysql> exit

Sada treba zatvoriti MySQL (da root korisnik MySQL baze ima lozinku, i da ne postoje nalozi koji je nemaju) :
# mysqladmin -u root password “nova-lozinka” Postavljanje root MySQL lozinke
# mysql -u root -p
Enter password:
mysql> use mysql;
mysql> delete from user where password=””;
Paziti, ovde su ili dva obična navodnika jedan za drugim (bez blanko-a između), ili dva jednostruka navodnika, jedan za drugim.
mysql> select user,password from user; provera da nema više naloga bez lozinki
+———–+——————————————-+
| user | password |
+———–+——————————————-+
| root | *Ey6llk6D401EF872DD5BC6D700072770uui67A16 |
| mailwatch | *E6hF6D6D401EF872DD5wqaD70007277ii0CC3A99 |
+———–+——————————————-+
2 rows in set (0.00 sec)
mysql> exit

U MySQL bazi mailscanner dodati korisnika mailwatch, sa odgovarajućim pravima :
# mysql mailscanner -u mailwatch -p
MySQL komanda
Query OK, 1 row affected (0.00 sec)

Posle ovoga je potrebno pojedine fajlove MailWatch-a prebaciti na za to predviđena mesta.
Videti gde je DocumentRoot za Apache, kod mene je to /usr/share/squirrelmail
Tu kopirati mailscanner folder iz razvijenog mailwatch paketa.
Podešavanje prava za kopirane foldere :
/usr/share/squirrelmail vlasništva nad folderom mailscanner NIKAKO ne menjati!!!!
Pod folderom : /usr/share/squirrelmail/mailscanner podesiti prava za folder images :
drwxrwx— 3 root apache 4096 Nov 2 2005 images
Pod folderom : /usr/share/squirrelmail/mailscanner/images podesiti prava za folder cache :
drwxrwx— 2 root apache 4096 Nov 2 2005 cache

Takođe fajl xxx/mailwatchxxx/MailScanner_perl_scripts/MailWatch.pm kopirati u folder /usr/lib/MailScanner/MailScanner/CustomFunctions i izmeniti mu stavke :
my($db_user) = ‘mailwatch’;
my($db_pass) = ‘moja-lozinka’;

U folderu /usr/share/squirrelmail/mailscanner kopirati fajl conf.php.example u conf.php, i u njemu uraditi sledeće izmene :
// Database settings
define(DB_TYPE, ‘mysql’);
define(DB_USER, ‘mailwatch’);
define(DB_PASS, ‘moja-lozinka’);
define(DB_NAME, ‘mailscanner’);
…………
define(‘TIME_ZONE’, ‘Europe/Belgrade’);
…………
// Paths
define(MAILWATCH_HOME, ‘/usr/share/squirrelmail/mailscanner’);
………..
// Quarantine settings
define(QUARANTINE_USE_FLAG, true);
define(QUARANTINE_DAYS_TO_KEEP, 30);
define(QUARANTINE_MAIL_HOST, ‘11.12.13.14’);
define(QUARANTINE_FROM_ADDR, ‘postmaster@moj-domen.com’);
………..
// Display the inbound/outbound mail queue lengths
define(MAILQ, false);

Posle ovih svih promena obavezno resetovati server!

Dobar link za instalaciju MailWatch-a : link

Odličan link za celu proceduru.

Mail server srednje veličine, 4 deo – ClamAV

Instalacija ClamAV antivirus softvera, integracija u MailScanner (videti predhodni post), i testiranje celog paketa zajedno.
ClamAV paket skinuti odavde ili odavde.
I da, potrebna su samo ova dva paketa…..
Instalacija (paziti na redosled!):
# rpm -ivh clamav-db-XXX
# rpm -ivh clamav-XXX

Konfiguracioni fajl /etc/freshclam.conf za skidanje update-ova treba da izgleda ovako :
DatabaseDirectory /var/clamav
UpdateLogFile /var/log/clamav/freshclam.log
LogTime yes
LogVerbose yes
LogSyslog yes
DatabaseOwner clamav
DatabaseMirror database.clamav.net

Iz misterioznih razloga NE SME se aktivirati (odhešovati) stavka “#LogRotate yes” i/ili stavka “NotifyClamd /etc/clamd.conf”, jer inače kuka kako nema /etc/clamd.conf fajl…..

Testiranje rada
Test 1
# freshclam Testiranje update-a za ClamAV
ClamAV update process started at Wed Jun 6 10:26:40 2012
main.cvd is up to date (version: 54, sigs: 1044387, f-level: 60, builder: sven)
daily.cvd is up to date (version: 15007, sigs: 202098, f-level: 63, builder: guitar)
bytecode.cvd is up to date (version: 185, sigs: 39, f-level: 63, builder: neo)
Test 2
Napraviti fajl po imenu eicar.test, i njega staviti Eicar test virus :
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
# clamscan Testiranje za prepoznavanje virusa
…..
/nalog/eicar.test: Eicar-Test-Signature FOUND
———– SCAN SUMMARY ———–
Known viruses: 1245187
Engine version: 0.97.4
Scanned directories: 1
Scanned files: 10
Infected files: 1
Data scanned: 24.97 MB
Data read: 45.54 MB (ratio 0.55:1)
Time: 8.884 sec (0 m 8 s)
Test 3
Testiranje da li MailScanner lepo poziva ClamAV :
# /usr/lib/MailScanner/clamav-wrapper /nalog
Upereno na folder gde je eicar.test fajl
….
/nalog/eicar.test: Eicar-Test-Signature FOUND
———– SCAN SUMMARY ———–
Known viruses: 1245187
Engine version: 0.97.4
Scanned directories: 1
Scanned files: 9
Infected files: 1
Total errors: 1
Data scanned: 13.55 MB
Data read: 45.54 MB (ratio 0.30:1)
Time: 7.649 sec (0 m 7 s)

Mail server srednje veličine, deo 3 – MailScanner

Dakle, posle konfiguracije Sendmail-a i Dovecot-a, došli smo i do MailScanner softvera.
Čemu on služi? Pa objedinjuje Sendmail, SpamAssassin i AV program (ja koristim ClamAV), omogućava korišćenje programa MailWatch (koji daje vrlo dobar grafički, real-time pregled protoka elektronske pošte, statistike i pretragu) i to sve na vrlo suvisli i koristan način. Evo i njegovog sajta, odakle se program može skinuti (knjiga koja ide uz njega, i koja se kupuje, je veoma OK i korisna). MailScanner je već prilično dugo prisutan, i kao takav se pokazao kao stabilan i koristan, kako za mail servere sa srednjim protokom (do 10.000 mail poruka dnevno) tako i za one manje. Na većim ga nisam isprobala, tako da o njima ne mogu da govorim.

1. Skinuti paket (sa ove lokacije) i razviti ga na zgodnom mestu :
# tar xvfz MailScanner-4.84.5-2.rpm.tar.gz

2. Instalacija iz upravo razvijenog paketa:
# cd MailScanner-4.84.5-2
# ./install.sh Ovo će prilično da potraje. Pratiti izlaz.
I am logging everything into “install.log”.

3. Posle uspešne instalacije :
# service sendmail stop
# chkconfig sendmail off
# chkconfig MailScanner on

4. Podešavanje konfiguracije MailScanner servisa u fajlu /etc/MailScanner/MailScanner.conf :
# more MailScanner.conf|grep -v “#”|grep -v ‘^$’
Paziti!!! Date su samo linije u fajlu koje su promenjene!!!

Verzija MailScanner-a je 4.84.5
%org-name% = XXXX Staviti ono što vama odgovara!
%org-long-name% = XXX
%web-site% = XXX
Incoming Work Group = clamav
Incoming Work Permissions = 0640
Quarantine Permissions = 0660
Maximum Processing Attempts = 1
Maximum Archive Depth = 2
Virus Scanners = clamav
Allow Password-Protected Archives = yes
Quarantine Whole Message = yes
Notify Senders Of Other Blocked Content = no
Is Definitely Spam = %rules-dir%/spam.blacklist.rules
Add Watermark = no
High Scoring Spam Actions = delete
Log Spam = yes
Log Non Spam = yes
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin
Always Looked Up Last = &MailWatchLogging

Napomena 1 : sve navedene stavke već postoje u conf fajlu, samo ih treba izmeniti
Napomena 2 : prikazane vrednosti funkcionišu za moj server, ne znači da će i vama odgovarati…..
Napomena 3 : sa obe strane znaka jednakosti je OBAVEZAN blanko

5. Instalacija ClamAV-a, ali o tome u sledećim postovima

6. Startovanje servisa :
# service MailScanner start

O testiranju istog, u daljim postovima

Linux raw partition

Ako treba da se formatira particija pod Linux-om (Fedora ili RHEL) za Oracle bazu, što zahteva RAW particiju (videti dobru definiciju za raw particiju ovde), to se radi ovako :

1. Formira se raw device
# mknod -m 660 /dev/raw/raw130 c 162 130
# ls -l /dev/raw/raw130
crw-rw—- 1 root root 162, 130 Jun 4 08:33 /dev/raw/raw130

Paziti, na toj lokaciji se već nalazi jedan fajl : /dev/raw/rawctl
Ali to je device controler za raw devices.

2. Formatira se dati prostor
# fdisk /dev/emcpowera
…..
Command (m for help): p
Disk /dev/emcpowera: 64.4 GB, 64424509440 bytes
64 heads, 32 sectors/track, 61440 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xbf277df7
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-61440, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-61440, default 61440):
Using default value 61440
Command (m for help): w
The partition table has been altered!

3. Pridruži se kreirani raw device formatiranoj particiji
# raw /dev/raw/raw130 /dev/emcpowera
/dev/raw/raw130: bound to major 120, minor 0

4. Proveriti urađeno (prikazuje vezane raw devices)
# raw -qa
/dev/raw/raw130: bound to major 120, minor 0

Paziti jer posle reboot-a sistema mora da se uradi sve iz početka (naravno bez formatiranja).

Ako je potrebno da neki nalog osim root-a koristi raw device, potrebno je datom nalogu dati grupu “disk” :
# usermod -a -G disk ime-naloga
[root@dw etc]# id ime-naloga
uid=500(ime-naloga) gid=6(disk) groups=6(disk),501(ime-naloga)

Opet tikvice

E jeste, i baš je fino ispalo!
Dakle 2-3 veće (čitaj deblje) tikvice oljuštiti i iseći na kolutiće.
Poređati u tepsiju namazanu sa malo ulja, i posoliti (znači ne moraju da se odcede).
Odozgo na kolutove tikvica staviti predhodno pripremljenu mešavinu :
oko 250gr sira – može feta a može i mladi sir, to je stvar ukusa
3 jajeta
so, biber, mirođija
pavlaka – može a ne mora
Ovako izgleda pre pečenja :

Staviti u rernu da se peče, na oko 250C, oko 30 minuta.
Prijatno!

Fini ručak sa tikvicama

Pošto su sada tikvice krenule, a i cena im je pristojna, isprobala sam recept za veoma fini ručak od istih.
Obrok je za 4-5 osoba (zavisi koliko su ješne), a potrebno je :
Oko 1kg tikvica koje treba oljuštiti i izrendati, ali NE soliti da ne izgube vodu (nju će da upije griz)
5 jaja
1 prašak za pecivo
malo bibera
malo karija (po želji, ne mora)
soli po želji
250gr feta sira (isitnjenog)
Oko 100gr pšeničnog griza
malo kukuruznog griza (dve supene kašike)
Oko 100gr običnog brašna
Sve ovo DOBRO umešati, staviti u nauljenu vatrostalnu posudu, i onda na oko 40min u već zagrejanu rernu na 300C.
Ako vaša rerna greje bolje od moje (što je lako moguće…), vreme je možda i kraće. U svakom slučaju treba da porumeni i da se malo digne testo.
Evo kako izgleda :

Prijatno!

Peku me oči od kompjutera :-(

Pa ustvari od buljenja u ekran, ali shvatate.
E nađoh nešto što mi je pomoglo : skuvam čaj od kamilice (bez šećera!!), pustim ga da odstoji i da se ohladi, i onda napravim oblog (u mom slučaju obična papirna maramica umočena u ohlađeni čaj) i stavim ga preko očiju, da stoji jedno 10-15 minuta.
Posle 2-3 dana, mnogo je bolje stanje!

VSFTPD server – ograničenje brzine prenosa podataka

Postoji način da se ograniči brzina transfera podataka kod VSFTPD servera, i to ne samo za sve korisnike, nego i po pojedinačnim korisničkim nalozima (npr. ako korisnik pera ima jako sporu vezu).
Izmene se vrše na dva mesta. U konfiguracionom fajlu samog servera vsftpd.conf (za RHEL i Fedoru on je u /etc/vsftpd folderu), treba dodati sledeću liniju :
user_config_dir=/etc/vsftpd/korisnici
U taj folder staviti fajl čiji je naziv OBAVEZNO potpuno isti kao i username samog korisnika (kod nas je to pera).
Taj fajl sadrži naredbe koje su iste kao i za vsftpd.conf, i on je “stariji” od istih naredbi u vsftpd.conf, ali naravno samo za tog datog korisnika.
Primer konfiguracionog fajla za pojedinačnog korisnika (kod nas je to /etc/vsftpd/korisnici/pera) :
local_max_rate=2000 ovime se brzina transfera (od ili do) ograničava na 2000bajta/sec
write_enable=NO ovime je korisniku onemogućeno pisanje na FTP server

Još jedan sirup :-), limun i menta

E, da.
Ovaj put od mente (nane) i limuna.
Kombinacija je super, i veoma osvežavajuća (mada ovo poslednje i nije neki faktor, s obzirom na vremenske prilike).
Dakle, priprema :
Ubrati svežu i sočnu mentu sa neke čiste lokacije (podalje od puta, prljavštine i tako toga), oprati je i okinuti listove. Količina treba da je takva da se listići lepo pokriju sa 4l vode (oko 4 pune šake listova).
Tako potopljene listiće posuti sa 100gr limuntusa, i povremeno (u prolazu) mešati (drvenom) varjačom. Smeša treba da odstoji 24h, i listići treba da izgube boju (i malo postanu braon).
Listiće izvaditi iz vode.
Oko 2 do 3 lepa buckasta limuna, sa debljom korom, dobro oprati i samleti u mlinu za meso, potom dodati u vodu od mente/name, i takođe dodati i 4kg šećera. Mešati često u prolazu. Smesa treba da stoji 24h, i u međuvremenu šećer treba da se skroz istopi.
Procediti kroz gazu (ocedak – samleveni limu je idealan kao dodatak pri kuvanju pekmeza, daje mu super šmek, ali o tome drugom prilikom).
Čuvati na tamnom i hladnom mestu – friz je idealan (paziti da flaše budu plastične i ne napuniti ih do vrha – led ima veću zapreminu od vode!).
Prijatno!

Logovi proxy servera (squid)

Neophodno je paziti na veličinu Squid logova (kod Fedore i RHEL-a se nalaze u /var/log/squid), jer ako logovi pređu 2G, Squid će prestati sa radom (što znam iz sopstvenog gorkog iskustva).
Postoje dva načina da se reši ovaj problem :
1. Redovna rotacija logova
2. Regulisanje veličine samih logova (tj. količine informacija koja se u njih upisuje)

1. Rotacija logova
Najbolje je to prepustiti logrotate demonu (što i jeste u default postavci Squid-a).
Sam konfiguracioni fajl za ovo se nalazi u /etc/logrotate.d/squid, i za redovnu svakodnevnu rotaciju logova i čuvanje zadnjih 5 logova, izgleda otprilike ovako :
/var/log/squid/access.log {
daily
rotate 5
copytruncate
compress
notifempty
missingok
}
/var/log/squid/cache.log {
daily
rotate 5
copytruncate
compress
notifempty
missingok
}

/var/log/squid/store.log {
daily
rotate 5
copytruncate
compress
notifempty
missingok
# This script asks squid to rotate its logs on its own.
# Restarting squid is a long process and it is not worth
# doing it just to rotate logs
postrotate
/usr/sbin/squid -k rotate
endscript
}

2. Regulisanje veličine samih logova vrši se kroz sam Squid konfiguracioni fajl : /etc/squid/squid.conf i to kroz opciju : debug_options
U koliko Squid radi kako treba, i nije potreban nikakav debug samog procesa, ovu opciju je najbolje ostavitio hešovanu (neaktivnu). Default logovi su sasvim dovoljni za praćenje aktivnosti korisnika, ili za grafički prikaz aktivnosti proxy servera (MySAR program o kome će biti reči u kasnijim postovima).
Kratak opis i definicije za korišćenje opcije debug_options je dato ovde.
U principu za debug je najefikasnije dati tu opciju kao :
debug_options ALL,1
Što podrazumeva logovanje svih oblasti rada, na nivou 1 (info).