29-01-04 13:16
Problemi sa SpamAssassinovim logovima
piše ŽELJKO BOROŠ
Spamd je daemonizirani dio SpamAssassina zadužen za ubrzavanje provjere da li je neki mail spam ili nije. Obično se na njega spajamo pomoću njegova
klijenta, programa 'spamc'.
Primjetili smo da u Solarisovim logovima nema nijednog unosa o radu spamd-a. Problem leži u činjenici da Perl modul Sys::Syslog (kojeg rabi
spamd) ne podržava Solarisov način komuniciranja sa Syslog daemonom. Solaris podržava STREAMS, dok ostali Unixi podržavaju UNIX sockete. Sve inačice Unixa podržavaju INET sockete.
Problem se može riješiti na tri načina:
1. način
Modificirati /etc/init.d/spamassassin:
spamd --syslog-socket=stream -a -d -s mail -r /var/run/spamd.pid -u nobody 2> /dev/null
Plus: jednostavno i brzo rješenje
Minus: ne upisuje se i dalje ništa u /var/mail/mail.log (nego u user.debug
facility, obično je to /var/mail/user.log)
2. način
Modificirati /etc/init.d/spamassassin:
spamd --syslog-socket=inet -a -d -s mail -r /var/run/spamd.pid -u nobody 2> /dev/null
Ovim smo načinom prešli na INET sockete, što znači da se sva komunikacija
odvija mrežom. No, ovime smo otvorili i mogućnost DoS-a (Denial of Service)
jer syslog ne vrši nikakvu provjeru, nego samo zapisuje ono što mu se
pošalje na UDP portu 514. Neki zlonamjernik može napuniti cijelu /var
particiju s nepotrebnim unosima i na taj način onemogućiti primanje maila,
primjerice.
Ovaj se problem može zaobići blokiranjem UDP porta 514 bilo na routeru,
firewallu ili kako drugačije.
Plus: dnevnički zapisi se upisuju u mail.log (ili gdje već želite)
Minus: kompliciranija izvedba, podložna problemima i sigurnosnim problemima
3. način
Pričekati Sys::Syslog modul koji zna raditi sa Solarisovim syslogom (ovaj
problem postoji čak u perlu 5.8.2, iako je dvije godine poznat). Ili
prepraviti spamd da rabi Unix::Syslog, koji nema takvih problema
Na Linuxu spamd zapisuje u /var/log/syslog. Ako želite zapise u /var/log/mail/mail.info, u init skriptu treba dodati "spamd -s mail", baš kao i na Solarisu.
|