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