Debian 9 Stretch - Installazione base: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
(44 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
{{Versioni compatibili|Stretch|}}
==Note preliminari==
==Note preliminari==
In questa guida mostreremo come effettuare una installazione base di una macchina Debian Stretch, su cui poi sarà possibile installare tutti i servizi desiderati.
In questa guida mostreremo come effettuare una installazione base di una macchina '''Server''' Debian Stretch, su cui poi sarà possibile installare tutti i servizi desiderati.
<br/>
<br/>
Utilizzeremo i seguenti parametri:
Utilizzeremo i seguenti parametri:
Riga 9: Riga 10:
<br/>
<br/>
- Gateway: <tt>192.168.1.1</tt>
- Gateway: <tt>192.168.1.1</tt>
<br/><br/>
Queste sono le impostazioni comuni che applico ad ogni installazione di un nuovo server Debian.
<br/>
A partire da questa base, è poi possibile installare i demoni che ci occorrono: Apache, MySQL, Postfix, Samba, etc.
==Installazione==
==Installazione==
Per installare una macchina server, consigliamo di partire con:
Per installare una macchina server, consigliamo di partire con:
Riga 17: Riga 23:
==SSH Server==
==SSH Server==
Dopo aver installato un sistema minimale, è consigliato installare il demome SSH, per permettere la gestione remota del server:
Dopo aver installato un sistema minimale, è consigliato installare il demome SSH, per permettere la gestione remota del server:
[code]
<pre>
# apt-get -y install ssh openssh-server openssh-client ssh
# apt-get -y install ssh openssh-server openssh-client ssh
[/code]
</pre>
È possibile creare una chiave RSA per poter accedere al server remoto dal proprio account, senza avere bisogno di inserire la password ogni volta. Per fare ciò occorre innanzitutto che nel file di configurazione di OpenSSH sul server siano abilitate le seguenti voci:
<pre>
# nano /etc/ssh/sshd_config
 
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
</pre>
===Generazione della chiave RSA===
Eseguire <tt>ssh-keygen</tt> sul proprio client e premere Invio quando viene chiesta la password.<br/>
Verranno generate sia la chiave privata che quella pubblica. Le chiavi saranno memorizzate in <tt>~/.ssh/id_rsa</tt> e <tt>~/.ssh/id_rsa.pub</tt>.
Successivamente occorre aggiungere il contenuto del file con la chiave pubblica nel file <tt>~/.ssh/authorized_keys</tt> sul server remoto; questa operazione può essere compiuta via SCP. Attenzione: il file deve essere protetto con permessi 600).
<br/>
Adesso si dovrebbe avere la possibilità di utilizzare ssh per collegarsi al sistema remoto senza che sia richiesta la password.
 
{{Warningbox|Se non si riuscisse a collegarsi ricevendo invece il messaggio ''Permission denied (publickey)'' verificare che:
* la chiave privata usata in fase di autenticazione sia quella corretta;
* la chiave pubblica necessaria sia stata effettivamente (e correttamente) aggiunta al file <code>authorized_keys</code>;
* il file <code>~/.ssh/authorized_keys</code> sia accessibile solo e soltanto al proprietario (600);
* la home dell'utenza che si vuole usare sia scrivibile solo da essa (755, 750 o 700)}};
<br/>
Per configurare correttamente il demone SSH e per ulteriori informazioni dettagliate, consigliamo di consultare la guida apposita:
Per configurare correttamente il demone SSH e per ulteriori informazioni dettagliate, consigliamo di consultare la guida apposita:
[[http://guide.debianizzati.org/index.php/OpenSSH]]
[[http://guide.debianizzati.org/index.php/OpenSSH OpenSSH Server]]
 
==Installazione di un editor di testo==
E' consigliato installare un editor di testo per gestire la modifiche dei file di configurazione.
<pre>
# apt-get -y install vim-nox nano
</pre>
 
==Configurazione della rete==
Da Debian Stretch il pacchetto che contiene alcuni utili tool di rete (es: <tt>ifconfig</tt>) è diventato opzionale; procediamo a installarlo:
<pre>
# apt-get install net-tools
</pre>
L'installer di Debian ha provveduto a configurare la rete attraverso il servizio DHCP. Per un server, tuttavia, è conveniente impostare un indirizzo IP statico:
<pre>
# nano /etc/network/interfaces
</pre>
Individuiamo la sezione dedicata alla scheda di rete del server e modifichiamola come segue:
<pre>
source /etc/network/interfaces.d/*
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto ens33
#iface ens33 inet dhcp
iface ens33 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
</pre>
Riavviamo la rete:
<pre>
# service networking restart
</pre>
Modifichiamo quindi il file <tt>hosts</tt>:
<pre>
# nano /etc/hosts
</pre>
aggiungendo il nome del nostro server:
<pre>
127.0.0.1      localhost.localdomain  localhost
192.168.1.100  server1.example.com    server1
 
# The following lines are desirable for IPv6 capable hosts
::1    localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
</pre>
Quindi verifichiamo che nel file <tt>hostname</tt> sia presente il nome del server:
<pre>
nano /etc/hostname
</pre>
<pre>
server1
</pre>
In caso, modifichiamo il file.
<br/>
Riavviamo il server:
<pre>
# reboot
</pre>
e verifichiamo che tutto sia a posto:
<pre>
# hostname
# hostname -f
</pre>
<pre>
#root@server1:/home/administrator# hostname
server1
#root@server1:/home/administrator# hostname -f
server1.example.com
</pre>
==Impostazione del sources.list==
Verifichiamo i repository configurati sul server:
<pre>
nano /etc/apt/sources.list
</pre>
Per maggiori informazioni consigliamo la lettura delle seguenti guide:
* [[http://guide.debianizzati.org/index.php/I_repository_ed_il_loro_utilizzo Utilizzo dei repository]]
* [[http://guide.debianizzati.org/index.php/Repository_%26_pinning Repository e pinning]]
* [[http://guide.debianizzati.org/index.php/Il_repository_Backports Il repository Backports]]
==Gestione dei pacchetti a 32 bit==
Nei server con Debian Stretch amd64 è possibile che ci sia la necessità di installare alcuni pacchetti disponibili solo per la versione a 32 bit del sistema. Per fare questo è possibile abilitare la gestione dei pacchetti a 32 bit con i comandi:
<pre>
# dpkg --add-architecture i386
# apt-get update
</pre>
Da adesso sarà possibile installare pacchetti a 32 bit specificando l'architettura in fase di installazione:
<pre>
# apt-get install nomepacchetto:i386
</pre>
==Tool di pulizia==
Conviene installare alcuni tool per la pulizia e la manutenzione del sistema:
<pre>
# apt-get install checkinstall debfoster deborphan locate mlocate apt-file apt-listbugs apt-show-versions
# updatedb
# apt-file update
</pre>
Per ulteriori informazioni si veda la guida apposita: [[http://guide.debianizzati.org/index.php/Pulire_Debian Pulire Debian]]
 
==Monitoraggio della configurazione==
Conviene installare un tool per tenere traccia dei cambiamenti apportati ai file di configurazione del server e per poter ripristinare i file modificati, in caso di errori di configurazione.
<br/>
Il tool suggerito si chiama <tt>etckeeper</tt>; per l'installazione rimandiamo alla guida apposita: [[http://guide.debianizzati.org/index.php/Monitorare_e_backuppare_i_cambiamenti_della_configurazione Monitorare i cambiamenti della configurazione]]
==Impostazione dell'orario==
Può essere conveniente utilizzare un server NTP, in modo che la sincronizzazione dell'ora sia gestita automaticamente:
<pre>
# apt-get install ntp
</pre>
Il pacchetto installerà un demone che resterà in funzione e si occuperà di sincronizzare l'orologio del server con un server NTP mondiale.
 
Il file di configurazione del demone è <code>/etc/ntp.conf</code>. In questo file vanno specificati i server NTP da contattare per la sincronizzazione, ad esempio ntp1.ien.it o ntp2.ien.it.
 
Per maggiori informazioni: [[http://guide.debianizzati.org/index.php/Impostare_e_modificare_data_e_ora Impostare data e ora]]
==Messaggio personalizzato al login==
Può essere utile far apparire un messaggio personalizzato al momento del login via SSH.
<br/>
Per fare questo si segua la guida apposita: [[http://guide.debianizzati.org/index.php/Stretch_Messaggio_del_giorno Messaggio del giorno]]
==Alcuni programmi utili==
Installiamo alcuni tool che possono tornare utili e un MTA per inviare le mail di sistema al nostro account di posta:
<pre>
# apt-get install exim4 mc p7zip-full htop wipe needrestart
</pre>
<pre>
# nano /etc/aliases
...
root:la_mia_mail@email.it
</pre>
<pre>
# newaliases
</pre>
* Programmi e di tools da linea di comando: [[http://guide.debianizzati.org/index.php/Elenco_programmi_senza_interfaccia_grafica Programmi senza interfaccia grafica]]
* Cowsay. Non è propriamente un programma utile, ma è carino da avere: [[http://guide.debianizzati.org/index.php/Cowsay,_la_mucca_che_ci_parla_dal_terminale Cowsay]]
* Webmin. Per amministrare il server via HTTPS: [[http://guide.debianizzati.org/index.php/Webmin:_amministrare_Debian_via_web Webmin]]
 
==Monitoraggio e sicurezza==
* Monitorare il traffico sulle interfacce di rete: [[http://guide.debianizzati.org/index.php/Monitorare_il_traffico_sulle_interfacce_di_rete VnStat]]
* Protezione da attacchi e accessi non autorizzati: [[http://guide.debianizzati.org/index.php/Fail2ban Fail2Ban]]
* Protezione da malware, rootkit e altre schifezze: [[Protezione da malware]]
* Strumenti per il monitoraggio del server: [[http://guide.debianizzati.org/index.php/Strumenti_per_monitorare_le_performance Monitoraggio]]
* Ottimizzazione delle performance di MySQL: [[http://guide.debianizzati.org/index.php/Ottimizzare_le_performances_di_MySQL Ottimizzare MySQL]]
 
==Operazioni conclusive==
Dopo aver installato tutti i demoni che ci occorrono sulla macchina (Apache, MySQL, FTP, Postfix, Samba, etc), consiglio di affrontare la gestione dei log e del monitoraggio dello stato del sistema.
===Gestione dei Log===
In un server di produzione, i log possono arrivare a occupare svartiati GB di spazio e diventa quindi fondamentale avere uno strumento per gestirli correttamente.
<br/>
Installiamo quindi Logrotate:
<pre>
# apt install logrotate
</pre>
Nella directory <code>/etc/logrotate.d</code> possiamo trovare tutti i file di configurazione per la gestione dei log dei singoli demoni.
<br/>
I file sono costruiti tutti nella stessa maniera:
<pre>
# Indicazione del log
/var/log/apache2/* {
 
# Rotazione ogni settimana (oppure daily)
weekly
 
# Vengono mantenuti gli ultimi 3 log
rotate 3
 
# La rotazione scatta solo se il file pesa almeno 10M
size 10M
 
# I file rotati verranno compressi
compress
delaycompress
 
# Il nuovo file avrà questi permessi e questi owner
create 640 root adm
}
</pre>
L'installazione di Logrotate automaticamente imposta anche uno script in <code>/etc/cron.daily</code> che eseguirà logrotate giornalmente, alle 6 di ogni mattina.
<br/><br/>
Per monitorare i log può essere utile affidarsi a sistemi automatizzati: [[Monitorare i log di sistema con Logwatch]]
 
===Impostazione backup e script personalizzati===
Al termine dell'installazione e della configurazione dei demoni e dei servizi, è utile impostare degli script di backup. A questo proposito possono essere utili le seguenti guide:
* Backup di MySQL: [[http://guide.debianizzati.org/index.php/Backup_di_MySQL_tramite_script Backup di MySQL]]
* Utilizzo del servizio Cron: [[http://guide.debianizzati.org/index.php/Utilizzo_del_servizio_di_scheduling_Cron Scheduling con Cron]]
 
===Impostazioni tool di monitoraggio e firewall===
Come ultima cosa, impostiamo alcuni tool di monitoraggio e, per ultimo, le regole del firewall del server:
* Monitoraggio dei demoni con Monit: [[http://guide.debianizzati.org/index.php/Debian_Stretch_-_Monit Monit]]
* [[Fail2ban]]: impedire attacchi brute-force ai nostri server
* [[Monitorare un server con OpenNMS]]
* [[Monitorare i log di sistema con Graylog2]]
* Monitoraggio della banda: [[Monitorare la banda con BitmeterOS]]
* Impostazione firewall con iptables: [[http://guide.debianizzati.org/index.php/Impostare_un_firewall_con_uno_script_iptables Firewall con IPTables]]
 
 
{{Autori
|Autore = [[User:Ferdybassi|ferdybassi]]
|Verificata_da=
|Estesa_da =
}}
[[Categoria:SSH server e amministrazione remota]]
[[Categoria:Firewall]]
[[Categoria:Monitoraggio]]
[[Categoria:Installazione]]

Menu di navigazione