Archive for the ‘Server’ Category

Script di sincronizzazione

Questo script sincronizza la cartella utenti di un server NT, su un server Linux.

#!/bin/bash
for Y in $(find /media/nas100/* -mindepth 1 -maxdepth 1) ; do
	rsync -av $Y/ /media/sda1/dati/$(echo $Y | tr A-Z a-z | cut -c 14-100)/
done

Quest’altro invece semplicemente sincronizza la cartella del notes per fare un backup

#!/bin/bash
rsync -av /media/notes/ /media/sda1/dati/notes/

Quest’ultimo invece sincronizza i dati da un altro server per compiere un backup, ed in fine manda una mail di processo concluso.

#!/bin/bash
rm /home/backupdati/rsync_log/rsync.log
rsync -av /media/debs1 /media/hdc1/backup >> /home/backupdati/rsync_log/rsync.log
echo "File sincronizzati:" > /home/backupdati/rsync_log/mail.log
echo "" >> /home/backupdati/rsync_log/mail.log
cat /home/backupdati/rsync_log/rsync.log | grep -c \n >> /home/backupdati/rsync_log/mail.log
cat /home/backupdati/rsync_log/mail.log | /usr/bin/nail -s "Sincronizzazione di "`date '+%A'` utente@azienda.it

Script per settare i permessi

Script per settare i permessi (utente o gruppo) ai file con lo stesso nome della cartella di origine. Utile in caso la cartella sia una replica della home dell’utente.

#!/bin/bash
for X in $(ls -1 /media/sda1/dati/utenti/) ; do chown $X /media/sda1/dati/utenti/$X/ -R ; done
for Y in $(ls -1 /media/sda1/dati/uffici/) ; do chown :$Y /media/sda1/dati/uffici/$Y/ -R ; done
chmod 700 /media/sda1/dati/utenti/ -R
chmod 770 /media/sda1/dati/uffici/ -R

Svuotare le home

Semplice script per svuotare le home degli utenti. Molto rischioso da usare, di solito si usa prima di un sync da un altro server.

#!/bin/bash
cd /media/sda1/dati
for X in $(find -mindepth 1 -maxdepth 1); do
	rm -rf /media/sda1/dati/$X/
done

Mail Server Aggregator (Pop3/Webmail)

Per avere un server che controlli tutti i vostri account sparsi per internet e li richiuda in un unica mail, dando la possibilità di scaricarli tramite pop3 ed accedervi tramite webmail, seguite quanto segue:

In generale:
– Per prima cosa bisogna far si che la posta sia gestita in locale, quindi bisogna installare un MTA, in questo caso Postfix.
– Poi serve un programma che vada a controllare tutti gli account e li scarichi sull’account locale gestito da Postfix, in questo caso il programma è Fetchmail.
– Quindi serve che l’account locale sia raggiungibile da un altro computer tramite protocollo pop3, in questo caso il programma è solid-pop3d
– In fine per dare un servizio di webmail per questo account bisogna usare OpenWebMail, il quale per funzionare necessita di un server web come Apache2

In dettaglio:
Creare un utente nuovo nel sistema che sarà l’utente su cui si basta l’aggregazione delle e-mail, installare Postfix ed in caso usare anche il webmin-postfix per gestirlo, ora si ha un utente con la sua casella email in locale.
Per far si che ogni 10 minuti vengano controllate tutte le email esterne dell’utente, installare Fetchmail ed il conseguente modulo Webmin, da esso si possono settare i vari account esterni e farli inoltrare nella mail dell’utente locale appena creato. Bisogna anche ricordarsi di far eseguire a root le operazioni di Fetchmail, quindi rispondiamo root alla prima domanda del modulo Webmin di Fetchmail.
Per poter controllare la posta di libero necessito di Freepopsd (presente nel blog), mentre per controllare la posta di Gmail si deve usare ssl su porta 995.
Ora per rendere il demone ripetitivo, basta aggiungere in /root/.fetchmail come prima riga:

set daemon 600

(600 secondi = 10 minuti).
Quindi bisogna settare l’avvio del demone con:

update-rc.d fetchmail remove e poi update-rc.d fetchmail start 90 0 1 2 3 4 5 6 .

e per essere sicuri che Freepopsd sia attivato prima di Fetchmail impostare

update-rc.d freepopsd start 80 0 1 2 3 4 5 6 .

Ora tutte le mail impostate in Fetchmail verranno redirette nell’utente locale, per controllarle da quell’utente provare il
comando mail.
A questo punto per controllare questa mail da fuori, bisogna attivare il servizio pop3, e per questo basta installare solid-pop3d, senza nessuna configurazione, da un altro pc basta dare l’utente e come dominio l’indirizzo ip.
Quindi l’accesso in webmail, installare apache2, il modulo webmin per gestirlo ed infine il modulo php4 di pache2, ora il server web sulla macchina è attivo. Provare un http://localhost di verifica.
OpenWebMail non è nei repository Ubuntu, ma al momento è presente in Openwebmail

per installarlo usare dpkg -i per poi prendere nota delle sue dipendenze, soddisfarle, ed infine reinstallarlo.
Configurare Apache2 con OpenWebMail è semplice, usare il comando

cat /etc/openwebmail/apache.conf >> /etc/apache2/apache2.conf

Per impostare OpenWebMail come sito di default basta sostituirlo in /etc/apache2/sites-available/default e cambiare la riga di apache2-default così:

RedirectMatch ^/$ /openwebmail/

Infine dentro /etc/apache2/ports.conf cambiate la porta di default 80 con un altra meno standard, ricordandosi di evitare conflitti con porte già occupate. Fare una prova generale con ip:porta e con questo abbiamo finito.
Concludendo, tutto questo funziona all’inteno di una lan, se volete controllare la posta da internet, bisogna ovviamente settare un port forwarding tra ip_pubblico:XXX > ip_locale:XXX sia per la parte pop3 che per la parte webmail.

Configurare Postfix Amavis Spamassassin e Clamav

Una buona base di partenza è qui: Mail Server Postfix

In inglese ma più completo invece questo: Postfix

Alcune puntualizzazioni:
In /etc/postfix/master.cf le opzioni si devono aggiungere lasciando due spazi prima di -o altrimenti Postfix non le legge come opzione ma come comando (dando errore di conseguenza) quindi ad esempio:

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 strict_rfc821_envelopes=yes
  -o mynetworks=127.0.0.0/8
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1001

pre-cleanup unix n - - - 0 cleanup
  -o virtual_alias_maps=
  -o canonical_maps=
  -o sender_canonical_maps=
  -o recipient_canonical_maps=
  -o masquerade_domains=

La configurazione di Amavis non è dentro /etc/amavis/amavisd.conf ma si divide in vari file nella cartella /etc/amavis/conf.d

Modificare il file 50-user aggiungendo prima del 1; il parametro:

$myhostname = 'example.com' ;

In /etc/default/spamassassin l’opzione da settare a 1 è ENABLED non ENABLE

Aggiungere il seguente filtro a /etc/procmailrc per girare le mail nella cartella spam (con Maildir):

MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
LOGFILE=$HOME/Procmail.log
DROPPRIVS=yes

:0fw
| /usr/bin/spamassassin

:0:
* ^X-Spam-Status: Yes
.Spam/

Configurare Spamassassin in /etc/spamassassin/local.cf come segue:

required_score		5.0
rewrite_header		subject [SPAM]-->
report_safe		0
ok_languages		it
ok_locales		en
use_dcc		1
use_pyzor		1
use_razor2		1
skip_rbl_checks		0
dns_available		yes
use_bayes		1
use_bayes_rules		1
bayes_auto_learn		1
pyzor_path		/usr/bin/pyzor

Installare quindi dcc-client razor e pyzor

La versione di Clamav presente nei repository di Ubuntu non è aggiornata, da questi altri invece è possibile reperire gli aggiornamenti:

deb http://www.ricky-chan.co.uk/ubuntu dapper main

per aggiornare la definizione dei virus invece, usare un cron ad una data ora, ad esempio:

15 19 * * * /usr/bin/freshclam