Problematiche di gestione e installazione di un server Linux
Installazione di Linux da CD/DVD
- Attivitā semplice, rapida, consolidata ormai d'uso comune fra tecnici IT
- Diverse distribuzioni, logica comune: Boot dal CD, scelta configurazione (lingua, tastiera, utenti, parametri di rete, software da installare, logiche di partizionamento...), installazione pacchetti su hard disk montato in locale.
Installazione automatizzata
- PXE: Boot kernel direttamente via rete (su NIC che lo supportano). Totalmente automatizzato.
- Kickstart e simili: Caricamento parametri di installazione via rete. Richiede CD/floppy di boot.
- Selezione installation source: Configurazione manuale, scaricamento dei pacchetti via rete. Richiede CD/floppy di boot e inserimento parametri.
- Strumenti per il provisioning centralizzato: Cobbler.
Aggiornamento
Imprescindibile, necessario, semplice.
- Automatico: Lasciar fare al proprio Linux in totale autonomia
- Semi Automatico: Scaricare i pacchetti e non installarli
- Manuale: Installare i pacchetti a mano.
- Manuale con compilazione: Fuori dalla logica dei pacchetti predefiniti. Si ricompila il proprio software secondo le proprie necessitā
Hardening post installazione
- Aggiornamento software e decisione su policy di autoaggiornamento
- Rimozione dalla fase di avvio dei servizi non necessari
- Configurazione/tuning filtri iptables
- Configurazione servizi di produzione
- Verifica porte aperte, credenziali e logiche di accesso
- Implementazione di strumenti di monitoraggio e controllo custom
- Implementazione sistemi di intrusion detection
- Implementazione e test di Mandatory Access Control List
Gestione e configurazione centralizzata
- Su infrastrutture medio/grandi č ormai un requirement
- Gestire e configurare un parco server da un unico punto
- Configuration management con Puppet / CFEngine
- Gestione centralizzata con Puppet / Func / SSH
Monitoraggio e documentazione
- Un server non dovrebbe essere considerato in produzione fino a quando non viene correttamente monitorato
- Strumenti di Monitoraggio: Nagios (e progetti derivati), Cacti
- La documentazione č importante: deve essere rivolta a tecnici, contestuale e facile da gestire/aggiornare
- SCM come git, cvs, subversion e altri possono essere usati sulle configurazioni di un sistema (oltre che su codice software).