Archive for the ‘Server’ Category

Istruire Spamassassin

Per istruire Spamassassin in modo che si ricordi le mail classificate come spam da noi, un valido sistema può essere il seguente:
Creare una cartella ToSpam (dove si copiano le mail di spam non riconosciute da Spamassassin) dentro al nostro server di posta IMAP4. Poi con cron far eseguire ad intervalli (ogni ora tipo) il seguente script:

#!/bin/bash
if [ "$(ls /home/utente/Maildir/.ToSpam/cur/ | wc -l)" != 0 ]; then
	mkdir -p /home/utente/SpamTemp
	mv /home/utente/Maildir/.ToSpam/cur/* /home/utente/SpamTemp
	chown -R amavis.amavis /home/utente/SpamTemp
	su - amavis -c "sa-learn --spam -C /etc/spamassassin --showdots --dir /home/utente/SpamTemp"
	rm -rf /home/utente/SpamTemp
fi

In parole povere lo script prende tutte le mail dentro spam, le sposta in una cartella temporanea, le esamina con sa-learn, ed infine cancella la cartella.

NB: ToSpam non è la cartella di Spam automatica dove Spamassassin sposta le mail di spam, altrimenti quando parte lo script si potrebbero cancellare mail attendibili.

Server DNS

Per creare un server DNS, che centralizzi le richieste di risoluzione DNS in una rete, installare BIND9.
Una volta installato, il server funziona e basta puntare ad esso per risolvere i nomi, in caso si voglia fare un log delle richieste, impostare il logging come segue all’interno di /etc/bind/names.conf:

logging {
	channel my_channel {
		file "bind.log" versions 3 size 10M;
		severity info;
		print-category yes;
		print-severity yes;
		print-time yes;
	};
	category default { my_channel; };
	category general { my_channel; };
	category database { my_channel; };
	category security { my_channel; };
	category config { my_channel; };
	category resolver { my_channel; };
	category xfer-in { my_channel; };
	category xfer-out { my_channel; };
	category notify { my_channel; };
	category client { my_channel; };
	category unmatched { my_channel; };
	category network { my_channel; };
	category update { my_channel; };
	category update-security { my_channel; };
	category queries { my_channel; };
	category dispatch { my_channel; };
	category dnssec { my_channel; };
	category lame-servers { my_channel; };
	category delegation-only { my_channel; };
};

riavviare quindi con:

/etc/init.d/bind9 restart

e visualizzare il log con:

cat (o tail) /var/cache/bind/bind.log

Relay di posta con Postfix

Perché Postfix inoltri la posta che gli inviamo da un client impostare la configurazione come segue.
Editare /etc/postfix/main.cf aggiungendo:

mynetworks = 192.168.1.0/24

(definisce il tipo di rete)

transport_maps = hash:/etc/postfix/transport

(imposta l’inoltro)

smtpd_client_restrictions =
	check_client_access hash:/etc/postfix/access

(crea una regola di accesso a postfix)
quindi creare il file /etc/postfix/transport come segue:

*	smtp:[smtp.server.com]

(server smtp della nostra connessione, o dove si desidera inoltrare la posta)
e abilitarlo con:

postmap /etc/postfix/transport

Creare così il file /etc/postfix/access:

192.168.1 REJECT
192.168.1.3 OK

(questo permette solo all’ip 192.168.1.3 di inoltrare la posta negando l’accesso agli altri client della rete)
e abilitarlo con:

postmap /etc/postfix/access

Infine riavviare il servizio con:

/etc/init.d/postfix restart

Nel caso Postfix debba gestire anche la posta di un dominio, questo sistema non può essere utilizzato. In quanto inoltrerebbe al server smtp della connessione anche le consegne locali. Per ovviare a questo, bisogna impostare il file main.cf come segue:

mydestination = nomecomputer, localhost.localdomain, localhost, azienda.it
relayhost = smtp.server.com
mynetworks = 192.168.20.0/24
smtpd_client_restrictions =
        check_client_access hash:/etc/postfix/access

In breve, bisogna aggiungere il proprio dominio a mydestination, impostare il relayhost e togliere l’eventuale transpost.

Squid proxy con Nagios

Per aggiungere il controllo del proxy Squid su Nagios si può partire da qui:

Nagios plugin/

ma perché funzioni bisogna modificare services.cfg come segue:

# Service definition
define service{
	use generic-service ; Name of service template to use
	host_name Proxy
	service_description PROXY
	is_volatile 0
	check_period 24x7
	max_check_attempts 3
	normal_check_interval 5
	retry_check_interval 1
	contact_groups system-admins
	notification_interval 120
	notification_period 24x7
	notification_options c,r
	check_command check_proxy!http://www.google.it!-!-!80!-!-!2
}

e checkcommands.cfg:

# 'check_proxy' command definition
define command{
	command_name check_proxy
	command_line $USER1$/check_squid '$ARG1$' '$ARG2$' '$ARG3$' $HOSTADDRESS$ '$ARG4$' '$ARG5$' '$ARG6$' '$ARG7$'
}

Interpretare i log di Squid

In questo sito sono spiegati a cosa si riferiscono i flag

Codici di stato

mentre per analizzare il log riga per riga è possibile usare squidview.
Invece se si desidera un resoconto sommario usare calamaris con il comando:

cat /var/log/squid/access.log | calamaris