server
daniele_dll's picture
Tagged:  •  

Ogni tanto mi faccio risentire, anche se di rado :)

Ho finalmente finito di riconfigurare il server nuovo che mi ha succhiato ben una settimana di tempo! Si, lo so, è un casino, ma considerate che:
- da FC7 ho upgradato a FC8 e durante l'operazione più volte si è interrotta l'installazione, ergo mi ritrovo il SO pieno di pacchetti della fedora core 7 che pian piano, quando mi capita, vado rimuovendo;
- come server FTP ho utilizzato ProFTPd per poterlo agganciare con facilità alla nuova architettura (vedi punto successivo);
- ho riorganizzato tutta la struttura interna dei dati, infatti mentre prima sul database ci stavano soltanto le informazioni sulle caselle di posta, adesso risiedono all'interno elenco dei clienti, elenco dei dati di accesso per cliente, elenco di domini per cliente, elenco di spazi web per cliente ed elenco di indirizzi email per cliente;
- ho sviluppato una serie di script per creare, aggiornare ed eliminare i domini e gli spazi web, che mi permettono con estrema facilità di inserire un dominio agganciandolo ad un cliente tramite l'id e di inserire uno spazio web con altrettanta facilità, ancora devo sviluppare quelli per inserire gli account di posta;
- grazie sempre alla nuova struttura posso abilitare, disabilitare un account di posta, uno spazio web, un intero dominio o un cliente con un semplice cambio di un valore nel db, cosa purtroppo a volte necessaria;
- tutti i servizi che sono presenti sulla macchina poggiano sull'infrastruttura di mysql, anche se comunque exim è abbastanza esoso ma per fortuna c'è il caching che risparmia tanto lavoro;
- grazie alla nuova struttura ho dovuto spostare e ristrutturare i dati a mano, potete immaginare che gran casino :argh:;
- ho utilizzato apache con il multi processing module (MPM) ITK che permette di assegnare un User ID e un Group IP ad un virtual host in questo modo non solo php gira con i permessi dell'utente ma mi permette anche di stare più tranquillo per quanto riguarda i danni fattibili da un account all'altro, infatti al massimo una pagina web, se riesce a sfruttare qualche vulnerabilità di php o di apache, può raggiungere solo le cartelle dei siti o della posta elettronica dello stesso dominio, nulla di più! La cosa mi ha richiesto parecchio tempo perché per evitare rischi con i pacchetti rpm ho dovuto patchare lo spec di apache per farglielo compilare e far creare il pacchetto ed in aggiunta ho dovuto rifare la prima patch della serie per l'mpm itk perché si basava su codice vecchio;
- ho implementato webalizer, sempre tramite uno script, per creare automaticamente le statistiche giornaliere dei domini e sottodomini, anche se ancora devo aggiungere la possibilità di far inserire una password per l'accesso ai file delle statistiche per dominio;
- ho implementato mod_security e mod_evasive per permettere, guardandosi i log, di scoprire eventuali tentativi con facilità oltre che per aumentare la sicurezza e ridurre i possibbili attacchi ddos!

Ho ancora un po di roba da fare:
- backup, i dati stanno su un raid mirror ma è meglio prevenire che curare, dove rimmarranno al massimo 7 giorni;
- backup geolocalizzati, ergo i dati, una volta backuppati, saranno anche trasferiti in remoto su di un altra macchina per sicurezza dove a differenza rimarranno dai 15 giorni in su (devo ancora decidere comunque) e per motivi di privacy, dato che la macchina la tengo in negozio dove lavoro, i dati staranno su un raid mirror crittografato con serpent ed una bella chiavona!
- web mail tramite squirrelmail o simili, anche se sinceramente sono abb. deluso da questo software e volevo provare qualche altro software che lavorasse direttamente su disco o comunque dasse la possibilità di creare caliendari, agende e note, magari anche considivisi, con facilità o qualcosa del genere cmq;
- bind con patch sdb per mysql o dlz, sono indeciso su cosa usare, sempre che non completi di scrivere il mini server dns che ho iniziato a sviluppare e con il quale sono già in grado di ricere le richieste e parsarle quasi perfettamente ... con il server dns oltre a dare la possibilità di gestire i dns tramite lo stesso pannello di controllo ho anche la possibilità di assegnare ai clienti ai quali faccio assistenza remota un sotto dominio tipo CUSTOMERNAME.customer.phpsoft.it in modo da usarlo io e semplificarmi la vita!
- pannello di controllo per vedere i grafici dello spazio su disco occupato dai propri domini e sotto domini, per creare sotto domini e per creare caselle di posta elettronica, oltre che per visualizzare anche le date di scadenza del servizio stesso e dei domini (li preferisco gestire come due cose distinte in modo che se i domini sono attivati giorni diversi dallo spazio web si può rinnovare senza impazzire!).

Come webserver volevo usare lighttpd, ma si presentavano una serie di problemi:
- non supporta gli .htaccess che sono fondamentali in un hosting condiviso;
- non supporta mod_php o simili, tutto tramite fastcgi cosa che mi comportava una configurazione contorta per far quello che ho fatto con httpd mpm itk;
avevo poco tempo per poterlo testare e configurare a fondo

Per adesso il server va molto bene, però considerando che è entrato in servizio da poco è meglio aspettare prima di cantar vittoria!

In allegato trovate la configurazione del database e dei file di configurazione :)

@UPDATE 21/12/2007 15:23
mi son dato da fare è:
- ho sistemato l'invio della posta elettronica tramite script che dava qualche problema legato alla nuova architettura
- ho implementato i backups, adesso è presente una cartella backups accessibile tramite ftp nel proprio spazio web da cui è possibile scaricare gli ultimi backups
- ho implementato le statistiche, anche se ancora devo sistemare l'accessibilità, ma son presenti dentro la cartella stats dei propri spazi web