Sei sulla pagina 1di 11

Capitolo 6.

Amministrazione remota
Ci sono diversi modi per amministrare un server Linux da remoto; questa sezione illustra due dei metodi pi comuni, come OpenSSH e Puppet.

81

Amministrazione remota

1. Server OpenSSH
1.1. Introduzione
Questa sezione della Guida a Ubuntu server introduce una serie di potenti strumenti per il controllo remoto di computer e per il trasferimento di dati tra i computer in rete chiamata OpenSSH. Vengono spiegate alcune delle possibili impostazioni dell'applicazione server OpenSSH e come modificarne la configurazione in Ubuntu. OpenSSH una versione libera della famiglia di protocolli e strumenti SSH (Secure SHell) per il controllo remoto di un computer o per il trasferimento di file tra computer. Gli strumenti tradizionali usati per svolgere queste funzioni, come telnet o rcp, sono insicuri e quando utilizzati trasmettono la password dell'utente in chiaro. OpenSSH fornisce un demone server e degli strumenti lato client per facilitare operazioni di controllo remoto e trasferimento di file in sicurezza e con crittografia, sostituendo in modo completo gli strumenti tradizionali. Il componente server di OpenSSH, sshd, in ascolto continuo per le connessioni in arrivo dei client, qualunque sia lo strumento usato sui client. Quando avviene una richiesta di connessione, per mezzo di sshd viene impostata la corretta connessione in base allo strumento utilizzato dal client. Per esempio, se il computer remoto sta effettuando una connessione con l'applicazione client ssh, il server OpenSSH imposta, dopo l'autenticazione, una sessione di controllo remoto. Se un utente remoto si connette a un server OpenSSH con scp, il demone server OpenSSH inizializza, dopo l'autenticazione, una procedura di copia sicura di file tra il server e il client. OpenSSH permette l'utilizzo di diversi metodi di autenticazione, inclusi password semplice, chiave pubblica e ticket Kerberos.

1.2. Installazione
L'installazione delle applicazioni server e client di OpenSSH semplice. Per installare l'applicazione client OpenSSH sui sistemi Ubuntu, usare questo comando al prompt di un terminale:

sudo apt-get install openssh-client

Per installare l'applicazione server di OpenSSH e i relativi file di supporto, usare questo comando al prompt di un terminale:

sudo apt-get install openssh-server

possibile scegliere di installare il pacchetto openssh-server durante il processo di installazione della Server Edition.

1.3. Configurazione
possibile configurare il comportamento predefinito dell'applicazione server di OpenSSH, sshd, modificando il file /etc/ssh/sshd_config. Per maggiori informazioni riguardo le direttive di 82

Amministrazione remota configurazione usate in questo file, consultare l'appropriata pagina di manuale inserendo, a un prompt di terminale, il seguente comando:

man sshd_config

All'interno del file di configurazione di sshd sono presenti diverse direttive per controllare impostazioni riguardo la comunicazione o i mezzi di autenticazione. Di seguito vengono riportati degli esempi di direttive di configurazione che possibile cambiare modificando il file /etc/ssh/
sshd_config.

Prima di modificare il file di configurazione, consigliato fare una copia del file originale e proteggerla dalla scrittura, cos da avere le impostazioni originali come riferimento ed eventualmente riusarle se necessario. Copiare il file /etc/ssh/sshd_config e proteggerlo da scrittura, con il seguente comando, digitando a un prompt di terminale:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original sudo chmod a-w /etc/ssh/sshd_config.original

Quelli che seguono sono esempi delle direttive di configurazione che possibile cambiare: Per impostare OpenSSH in modo da restare in ascolto sulla porta TCP 2222 invece che sulla predefinita porta TCP 22, cambiare la direttiva Port come segue: Port 2222 Per consentire l'utilizzo in sshd di credenziali di accesso basate su chiave pubblica, aggiungere o modificare la riga: PubkeyAuthentication yes Se la riga gi presente, assicurarsi che non sia commentata. Per far s che il server OpenSSH mostri il contenuto del file /etc/issue.net come un banner di pre-accesso, aggiungere o modificare la riga: Banner /etc/issue.net Nel file /etc/ssh/sshd_config. Dopo aver apportato dei cambiamenti al file /etc/ssh/sshd_config, salvarlo e, per rendere effettivi i cambiamenti, riavviare il demone sshd usando il seguente comando:

sudo service ssh restart

Per poter adattare il comportamento dell'applicazione server alle proprie necessit, sono disponibili molte altre direttive di configurazione per sshd. Se per l'unico metodo per 83

Amministrazione remota accedere a un server ssh, se si commette un errore nella configurazione di sshd attraverso il file /etc/ssh/sshd_config, pu risultare precluso l'accesso al server dopo il suo riavvio. Inoltre, se viene fornita una direttiva di configurazione non corretta, il server sshd potrebbe non riuscire ad avviarsi; necessario pertanto prestare grande attenzione nella modifica di questo file su un server remoto.

1.4. Chiavi SSH


Le chiavi SSH consentono l'autenticazione tra due host senza la necessit di una password. L'autenticazione con chiave SSH utilizza due chiavi, una privata e una public. Per generare le chiavi, in un terminale, digitare:

ssh-keygen -t dsa

Vengono cos generate le chiavi usando un metodo Digital Signature Algorithm (DSA). Durante questo processo viene chiesto di inserire una password: premere semplicemente Enter quando viene chiesto di creare la chiave. La chiave pubblica viene salvata, in modo predefinito, nel file ~/.ssh/id_dsa.pub, mentre quella privata in ~/.ssh/id_dsa. Ora, copiare il file id_dsa.pub nell'host remoto e aggiungere il suo contenuto al file ~/.ssh/authorized_keys digitando:

ssh-copy-id NOME_UTENTE@HOST_REMOTO

Infine, controllare i permessi del file authorized_keys: solo l'utente autenticato dovrebbe avere i permessi di lettura e scrittura. Nel caso non fossero corretti, modificarli:

chmod 600 .ssh/authorized_keys

Dovrebbe essere possibile ora collegarsi via SSH all'host senza l'utilizzo di una password.

1.5. Riferimenti
Pagina della documentazione della comunit su SSH1. Sito web di OpenSSH2 Pagina wiki di OpenSSH avanzato3

1 https://help.ubuntu.com/community/SSH 2 http://www.openssh.org/ 3 https://wiki.ubuntu.com/AdvancedOpenSSH

84

Amministrazione remota

2. Puppet
Puppet un'infrastruttura a piattaforma incrociata che consente agli amministratori di sistema di eseguire tramite codice attivit comuni, quali l'installazione di nuovo software, il controllo dei permessi sui file o l'aggiornamento di account utente. Puppet importante non solo durante l'installazione iniziale di un sistema, ma anche attraverso l'intero ciclo di vita del sistema. Puppet viene utilizzato in molte circostanze nella configurazione dei server e dei client. Questa sezione illustra l'installazione e configurazione di Puppet in una configurazione client/server; questo semplice esempio mostra come installare Apache usando Puppet.

2.1. Installazione
Per installare Puppet, in un terminale sul server digitare:
sudo apt-get install puppetmaster

Sulla macchina, o le macchine, client, digitare:


sudo apt-get install puppet

2.2. Configurazione
Prima di configurare puppet, necessario aggiungere una voce DNS CNAME per puppet.example.com, dove example.com il proprio dominio. Per impostazione predefinita, i client Puppet verificano sul DNS che puppet.examnple.com sia il nome del server puppet o il Puppet Master. Per maggiori dettagli, consultare Capitolo 8, DNS (Domain Name Service) [140]. Se non si utilizza DNS, possibile aggiungere delle voci ai file server e client /etc/hosts. Per esempio, aggiungere al file /etc/hosts del server Puppet:
127.0.0.1 localhost.localdomain localhost puppet 192.168.1.17 meercat02.example.com meercat02

Su ciascun client Puppet, aggiungere una voce per il server:


192.168.1.16 meercat.example.com meercat puppet

Sostituire gli indirizzi IP e i nomi di dominio nell'esempio precedente con gli indirizzi e i nomi di dominio reali di server e client. Impostare quindi alcune risorse per apache2: creare un file /etc/puppet/manifests/site.pp contenente quanto segue:
package { 'apache2':

85

Amministrazione remota
ensure => installed } service { 'apache2': ensure => true, enable => true, require => Package['apache2'] }

Quindi creare un file /etc/puppet/manifests/nodes.pp per il nodo, con:


node 'meercat02.example.com' { include apache2 }

Sostituire meercat02.example.com con il nome reale dell'host del client Puppet.

Il passo finale per questo semplice server Puppet consiste nel riavviare il demone:
sudo service puppetmaster restart

Configurato il server Puppet, necessario configurare il client. Per prima cosa, configurare il demone Puppet per l'avvio. Modificare /etc/default/puppet, cambiando START in yes:
START=yes

Quindi avviare il servizio:


sudo service puppet start

Tornando sul server Puppet , firmare il certificato client digitando:


sudo puppetca --sign meercat02.example.com

Controllare il file /var/log/syslog per errori di configurazione. Se tutto funziona correttamente, il pacchetto apache2 e le sue dipendenze saranno installati sul client Puppet. Questo esempio molto semplice e non evidenzia molte delle caratteristiche e dei vantaggi di Puppet. Per ulteriori informazioni, consultare Sezione 2.3, Risorse [86].

2.3. Risorse
Visitare il sito web per consultare la documentazione ufficiale di Puppet4
4 http://docs.puppetlabs.com/

86

Amministrazione remota Consultare anche Pro Puppet5. Un'altra fonte di ulteriori informazioni la pagina della documentazione della comunit di Ubuntu su Puppet6.

5 http://www.apress.com/9781430230571 6 https://help.ubuntu.com/community/Puppet

87

Amministrazione remota

3. Zentyal
Zentyal un server Linux per piccole aziende, che pu essere configurato come gateway, gestore d'infrastruttura, gestore unico della sicurezza (Unified Threat Manager), server per ufficio (Office Server), server unico per le comunicazioni (Unified Communication Server) o una combinazione di questi. Tutti i servizi di rete gestiti da Zentyal sono strettamente integrati, rendendo automatici molti processi. Ci contribuisce a evitare errori nella configurazione e amministrazione della rete e consente di risparmiare tempo. Zentyal open source, rilasciato sotto licenza GNU (General Public License GPL) e funziona in ambiente Ubuntu GNU/Linux. Zentyal consiste di una serie di pacchetti (di solito uno per ciascun modulo) che fornisce un'interfaccia web per configurare i diversi server o servizi. La configurazione memorizzata in un database chiave-valore Redis ma la configurazione collegata di utenti, gruppi e domini su OpenLDAP . Quando viene configurato uno dei parametri disponibili attraverso l'interfaccia web, i file finali di configurazione vengono sovrascritti usando i modelli di configurazione forniti dai moduli. I principali vantaggi dell'uso di Zentyal sono: unica interfaccia grafica utente per configurare tutti i servizi di rete ed elevata integrazione fra di essi subito disponibile.

3.1. Installazione
Zentyal 2.3 disponibile nel repository Universe di Ubuntu 12.04; i moduli disponibili sono: zentyal-core e zentyal-common: il cuore dell'interfaccia Zentyal e le librerie comuni dell'infrastruttura. Comprende anche i registri e i moduli di avviso che forniscono all'amministratore un'interfaccia per visualizzare i registri e generano avvisi da questi. zentyal-network: gestisce la configurazione della rete. Dalle interfacce (che supportano IP statici, DHCP, VLAN, bridge o PPPoE), ai gateway multipli in caso di pi connessioni a internet, bilanciamento dei carichi e istradamento avanzato, rotte statiche o DNS dinamici. zentyal-objects e zentyal-services: fornisce un livello di astrazione per indirizzi di rete (per es. LAN invece di 192.168.1.0/24) e porte chiamate come servizi (per es. HTTP invece di 80/TCP). zentyal-firewall: configura le regole di iptables per bloccare connessioni proibite, NAT e reindirizzamenti di porte. zentyal-ntp: installa il demone NTP per sincronizzare l'orologio software del server e consentire ai client di rete di sincronizzare a loro volta i propri orologi su quello del server. zentyal-dhcp: configura un server ISC DHCP che supporta intervalli di rete, indirizzi riservati statici e altre opzioni avanzate come NTP, WINS, aggiornamenti dei DNS dinamici e avvio di rete con PXE. zentyal-dns: introduce un server DNS ISC Bind9 nel server per effettuare la cache di query locali in qualit di server d'inoltro o come server autorevole per i domini configurati. Consente di configurare record A, CNAME, MX, NS, TXT e SRV. zentyal-ca: integra in Zentyal un gestore di Autorit di Certificazione in modo tale da consentire agli utenti di autenticarsi ai servizi come con OpenVPN. 88

Amministrazione remota zentyal-openvpn: consente di configurare pi server e client VPN usando OpenVPN e con configurazione dell'instradamento dinamico tramite Quagga. zentyal-users: fornisce un'interfaccia per configurare e gestire utenti e gruppi su OpenLDAP. Altri servizi su Zentyal sono autenticati in LDAP con gestione centralizzata di utenti e gruppi. anche possibile sincronizzare utenti, password e gruppi da un dominio Microsoft Active Directory. zentyal-squid: configura Squid e Dansguardian per aumentare la velocit di navigazione, grazie alle capacit di caching e di filtro dei contenuti. zentyal-samba: consente la configurazione di Samba e la sua integrazione con LDAP esistenti. Per mezzo della stessa interfaccia possibile definire politiche delle password, creare risorse condivise e assegnare permessi. zentyal-printers: integra CUPS con Samba e consente non solo di configurare stampanti, ma anche di concedere loro permessi basati su utenti e gruppi LDAP. Per installare Zentyal, in un terminale sul server digitare il seguente comando (in cui <zentyalmodule> uno dei moduli dell'elenco precedente):

sudo apt-get install <zentyal-module>

Zentyal pubblica un principale rilascio stabile una volta all'anno (in settembre) basato sul pi recente rilascio LTS di Ubuntu; i rilasci stabili hanno numeri secondari pari (per es. 2.2, 3.0) mentre i rilasci beta hanno numeri secondari dispari (per es. 2.1, 2.3). In Ubuntu 12.04 incluso il pacchetto Zentyal 2.3. Per effettuare il suo aggiornamento a un nuovo rilascio stabile pubblicato dopo il rilascio di Ubuntu 12.04, possibile usare Zentyal Team PPA7. L'aggiornamento a un rilascio stabile pi recente pu fornire correzioni a piccoli bug, non applicate alla versione 2.3 in Precise, e pi recenti funzionalit. If you need more information on how to add packages from a PPA see Add a Personal Package Archive (PPA)8. In Zentyal Team PPA9 possibile trovare questi ulteriori moduli, non presenti nei repository di Ubuntu: zentyal-antivirus: integra l'antivirus ClamAV con altri moduli come il proxy, la condivisione di file o il filtro di posta. zentyal-asterisk: configura Asterisk per fornire un semplice centralino telefonico (PBX, Private Branch Exchange) con autenticazione basata su LDAP. zentyal-bwmonitor: consente di monitorare l'uso della banda di rete da parte dei client LAN. zentyal-captiveportal: integra un portale di accesso obbligatorio (captive portal) con firewall e utenti e gruppi LDAP.
7 https://launchpad.net/~zentyal/ 8 https://help.ubuntu.com/$distro-rev-short/ubuntu-help/addremove-ppa.html 9 https://launchpad.net/~zentyal/

89

Amministrazione remota zentyal-ebackup: consente di effetture backup pianificati del server usando il popolare strumento di backup duplicity. zentyal-ftp: configura un server FTP con autenticazione basata su LDAP. zentyal-ids: integra un sistema di rilevamento intrusioni nella rete. zentyal-ipsec: consente di configurare tunnel IPsec usando OpenSwan. zentyal-jabber: integra un server di messaggistica istantanea (XMPP) ejabberd con utenti e gruppi LDAP. zentyal-thinclients: soluzione per thin client basata su LTSP. zentyal-mail: stack completo per la posta che include Postfix e Dovecot con backend LDAP. zentyal-mailfilter: configura amavisd con lo stack per filtrare posta indesiderata e virus allegati. zentyal-monitor: integra collectd per monitorare le prestazioni del server e i servizi in esecuzione. zentyal-pptp: configura un server VPN PPTP. zentyal-radius: integra FreeRADIUS con utenti e gruppi LDAP. zentyal-software: semplice interfaccia per gestire i moduli installati di Zentyal e gli aggiornamenti del sistema. zentyal-trafficshaping: configura le regole del traffico per limitare la larghezza di banda e migliorare la latenza. zentyal-usercorner: consente agli utenti di modificare i propri attributi LDAP usando un browser web. zentyal-virt: semplice interfaccia per creare e gestire macchine virtuali basate su libvirt. zentyal-webmail: consente di accedere alla propria posta usando il popolare servizio di webmail Roundcube. zentyal-webserver: configura il server web Apache per ospitare diversi siti sulla propria macchina. zentyal-zarafa: integra la suite di software condiviso Zarafa con lo stack per posta elettronica Zentyal e LDAP.

3.2. Primi passi


A ciascun account di sistema appartenente al gruppo sudo consentito l'accesso all'interfaccia web Zentyal. Se si usa l'utente creato durante l'installazione, questo appartiene al gruppo sudo per impostazione predefinita. Se necessario aggiungere un altro utente al gruppo sudo, basta eseguire:

sudo adduser NOME_UTENTE sudo

90

Amministrazione remota Per accedere all'interfaccia web Zentyal, navigare in https://localhost/ (o l'IP del proprio server remoto). Zentyal crea e firma il proprio certificato SSL, pertanto necessario accettare un'eccezione di sicurezza sul proprio browser. Una volta eseguito l'accesso, verr visualizzato un cruscotto con una panoramica del server: per configurare le caratteristiche dei moduli installati, aprire le diverse sezioni del men sulla sinistra. Quando vengono effettuate modifiche, nell'angolo superiore destro appare il pulsante rosso Save changes su cui fare clic per salvare tutte le modifiche alla configurazione. Per applicare queste modifiche nel server, necessario abilitare il modulo, mediante la voce Module Status nel men sulla sinistra. Ogni volta che si abilita un modulo, appare una finestra di popup di conferma prima che vengano eseguite le necessarie operazioni e i cambiamenti sul server e sui file di configurazione. Per personalizzare il file di configurazione o eseguire determinate azioni (script o comandi) per configurare caratteristiche non disponibili su Zentyal, collocare i modelli dei file di configurazione personalizzata in /etc/zentyal/stubs/<module>/ e i puntatori in /etc/zentyal/ hooks/<module>.<action>.

3.3. Riferimenti
Pagina della documentazione ufficiale di Zentyal10. Consultare anche la pagina della documentazione della comunit di Zentyal11. Non dimenticare di visitare il forum12 per il supporto della comunit, commenti, richieste di caratteristiche, ecc.

10 http://doc.zentyal.org/ 11 http://trac.zentyal.org/wiki/Documentation 12 http://forum.zentyal.org/

91

Potrebbero piacerti anche