Linux Amministratore - ENGIM: Corsi di Formazione e
Transcript
Linux Amministratore - ENGIM: Corsi di Formazione e
Linux Amministratore – base Il corso presenta gli strumenti di base per il sistemista Linux che intenda amministrare un server in rete. ● ● ● ● ● ● ● ● ● ● ● ● ● Presentazione del corso Breve storia di Linux ○ nascita del kernel ○ l'ambiente GNU ○ I giorni nostri Distribuzioni di Linux ○ caratteristiche principali delle varie distribuzioni ○ distribuzioni per uso desktop ○ distribuzioni per uso server ○ distribuzioni per uso embedded Installazione di Ubuntu server ○ partizionamento ○ directory / ○ directory /home ○ directory /usr ○ directory /var ○ directory /tmp ○ area di swap ○ requisiti hardware minimi ○ dimensioni ragionevoli per le partizioni ○ installazione del sistema di base Struttura del sistema ○ processo di boot nei PC compatibili ○ boot manager ○ boot loader ○ kernel ○ initrd ○ filesystem / L'ambiente GNU ○ I comandi di base ○ compilatore e toolchain I pacchetti aggiuntivi ○ demoni, applicativi, ambiente grafico Cos'è la shell Uso della Bash ○ autocompletamento ○ storico dei comandi I principali comandi ○ echo, ls, cp, mv, rm, mkdir, rmdir, cat ○ flussi predefiniti ○ redirezione ○ pipelines ○ i comandi less, cut, tr variabili d'ambiente ○ PS1 ○ PATH ○ HOME utenti e gruppi ○ aggiungere un utente ○ aggiungere un gruppo ○ aggiungere un utente ad un gruppo ○ cambiare le password proprietari e permessi POSIX ○ comandi per gestire i proprietari dei files ○ gruppi di permessi ○ comandi per gestire i gruppi di permessi ○ effetti dei permessi su files e directories ○ effetti del gruppo di permessi special ○ reimpostare i permessi con chmod -R ○ caso particolare: permesso di eliminare un file non scrivibile ● ● ● ● ● ● ● ● ● ● ● ● la variabile UMASK Basi di networking ○ indirizzi IP e subnetting ○ tabelle di routing ○ risoluzione dei nomi ○ porte e servizi ○ impostare l'indirizzo IP: ifconfig editare files di testo: vi e nano FHS ○ cos'è FHS ○ layout del filesystem ○ scopo delle principali directories configurazione permanente del sistema ○ /etc/network/interfaces ○ /etc/resolv.conf ○ /etc/rc.local ○ /etc/profile (o /etc/environment) scripting bash ○ la shebang ○ assegnazione di variabili ○ input dell'utente ○ controllo di flusso ■ if ■ case ○ cicli ■ for ■ while ○ funzioni ○ sourcing di librerie I principali script di sistema ○ .bashrc ○ .bash_profile ○ /etc/init.d/* Runlevels ○ /etc/rc2.d/ Il gestore di pacchetti APT ○ L'elenco pacchetti disponibili ○ /etc/apt/sources.list ○ Le versioni di Debian ■ stable ■ testing/unstable ■ experimental ○ Usare più versioni contemporaneamente ○ Apt-pinning ■ /etc/apt/preferences ■ /etc/apt/conf.d/ ○ installazione di software ○ dpkg ○ apt-get ○ Aptitude gestione dei processi ○ visualizzare i processi attivi ○ scoprire processi impazziti ○ terminare processi ○ mandare segnali generici ai processi ○ riconfigurare i demoni senza riavvio (SIGHUP) ○ riavviare i demoni ○ avviare processi con una priorità diversa ○ cambiare la priorità dei processi Schedulare esecuzioni periodiche: CRON ○ configurare /etc/crontab ○ utilizzare le configurazioni già esistenti Installazione di un ambiente LAMP Installazione di Apache2 ■ layout della directory di configurazione ○ Installazione di MySQL ■ abilitare il networking ○ Installazione di PHP ■ Installazione dei moduli PHP per Apache2 ○ Installazione di phpMyAdmin ○ Configurazione dei name based VirtualHost ■ la directory www di default ■ spostare la directory www ○ Configurazione della connessione https ■ Creare un certificato self signed ■ Creare una CA e firmare un certificato ■ Richiedere un certificato firmato da una CA ufficiale ■ Installare il certificato in Apache2 ○ Installare il server FTP ■ vsftpd ■ configurazione con PAM ■ limitare l'accesso al solo FTP ○ Installare il server SFTP ■ Installare il server ssh ■ limitare l'accesso al solo SFTP ○ Condividere la directory in rete locale ■ Installare Samba ■ Configurare la condivisione ■ Configurare il backend di autenticazione ■ Sincronizzare le password Amministrare un dominio internet ○ zone e livelli ○ root NS ○ caching dei DNS ○ record A ○ record CNAME ○ record MX ○ record PTR ○ installare BIND ○ bind come resolver locale ○ bind come DNS autoritativo Server di posta: principi di funzionamento ○ MUA, MTA e MDA ○ protocollo SMTP ○ protocollo POP3 ○ protocollo IMAP Scegliere un MTA ○ SendMail ○ Postfix ○ Courier-mta Installare Postfix ○ Configurare gli utenti ○ utenti virtuali: backend mysql ○ un semplice filtro antispam: greylisting Installare un MUA per server: fetchmail ○ configurare fetchmail ■ fetchmailconf ■ far confluire la posta da diversi account ○ affiancare un MDA: procmail ○ regole di procmail ○ usare le Maildirs ○ filtrare lo spam: spamassassin ○ addestrare spamassassin Installare un demone POP/IMAP: Courier ○ Usare mysql come backend ■ configurazione dell'authdaemon ○ ● ● ● ● ● ● ● ● ● ● ● ● ● Tenere sotto controllo il sistema ○ I files di log ■ messages ■ auth.log ■ I log di samba ■ I log di Apache/PHP Sicurezza di un sistema Linux ○ Principali problemi di sicurezza ○ Rimozione dei servizi non necessari ○ Aggiornamento del sistema ○ Monitoraggio del sistema ○ Gestione degli utenti e delle password ○ Esposizione del server su internet ○ Protezione tramite firewall locale ○ Layout di rete con DMZ a firewall singolo ○ Layout di rete con DMZ a firewall doppio ○ Configurare un semplice firewall ■ iptables ■ tabelle di netfilter ■ impostare le regole ■ Il problema FTP Affidabilità di un sistema Linux ○ Configurare il mirroring dei dischi ○ Monitorare lo stato dei dischi in RAID ○ Prepararsi al disaster recovery: politiche di backup ■ tar/cp/dd ■ cenni su Bacula Versatilità di un sistema Linux ○ cenni su LVM ○ ridimensionare i filesystem Disponibilità di un sistema Linux ○ evitare i reboot ○ riconfigurare i servizi senza riavvio Installazione di SWAT ○ amministrazione di Samba con SWAT Ricompilazione del kernel ○ Debian-way ○ Installazione del nuovo kernel