You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/books/admin_guide/10-boot.it.md
+83-56Lines changed: 83 additions & 56 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ In questo capitolo verrà illustrato come si avvia il sistema.
10
10
**Obiettivi** : In questo capitolo, i futuri amministratori Linux apprenderanno:
11
11
12
12
:heavy_check_mark: Le diverse fasi del processo di avvio;
13
-
:heavy_check_mark: Come Rocky Linux supporta questo avvio tramite Grub2 e systemd;
13
+
:heavy_check_mark: Come Rocky Linux supporta questo avvio tramite Grub2 e `systemd`;
14
14
:heavy_check_mark: Come proteggere Grub2 da un attacco;
15
15
:heavy_check_mark: Come gestire i servizi;
16
16
:heavy_check_mark: Come accedere ai registri di log con `journald`.
@@ -25,29 +25,29 @@ In questo capitolo verrà illustrato come si avvia il sistema.
25
25
26
26
## Il processo di avvio
27
27
28
-
È importante capire il processo di avvio di Linux per poter risolvere i problemi che potrebbero verificarsi.
28
+
È importante capire il processo di boot di Linux per risolvere problemi nel caso si verifichino.
29
29
30
30
Il processo di avvio include:
31
31
32
32
### L'avvio del BIOS
33
33
34
-
Il **BIOS** (Basic Input/Output System) esegue il **POST** (power on self test) per rilevare, testare e inizializzare i componenti hardware del sistema.
34
+
Il **BIOS** (Basic Input/Output System) esegue il **POST** (power on self test) per rilevare, testare e inizializzare i componenti hardware di sistema.
35
35
36
36
Quindi carica il **MBR** (Master Boot Record).
37
37
38
38
### Il Master boot record (MBR)
39
39
40
-
Il Master Boot Record sono i primi 512 byte del disco di avvio. Il MBR trova il dispositivo di avvio e carica il bootloader **GRUB2** in memoria passando il controllo ad esso.
40
+
Il Master Boot Record sono i primi 512 byte del disco di avvio. Il MBR trova il dispositivo di boot e carica il bootloader **GRUB2** in memoria passando il controllo quest'ultimo.
41
41
42
42
I successivi 64 byte contengono la tabella delle partizioni del disco.
43
43
44
44
### Il bootloader Grub2
45
45
46
46
Il bootloader predefinito per la distribuzione Rocky 8 è **GRUB2** (GRand Unified Bootloader). GRUB2 sostituisce il vecchio. GRUB bootloader (chiamato anche GRUB legacy).
47
47
48
-
Il file di configurazione di GRUB2 si trova in `/boot/grub2/grub.cfg` ma questo file non dovrebbe mai essere modificato direttamente.
48
+
Il file di configurazione di GRUB 2 si trova in `/boot/grub2/grub.cfg` ma questo file non dovrebbe mai essere modificato direttamente.
49
49
50
-
Le impostazioni di configurazione del menu GRUB2 si trovano in `/etc/default/grub` e sono usate per generare il file `grub.cfg`.
50
+
Le impostazioni di configurazione del menu di GRUB2 si trovano in `/etc/default/grub`. Il comando `grub2-mkdconfig` li utilizza per generare il file `grub.cfg`.
Se vengono apportate modifiche a uno o più di questi parametri, deve essere eseguito il comando `grub2-mkconfig` per rigenerare il file `/boot/grub2/grub.cfg`.
62
+
Se si modifica uno o più di questi parametri, deve essere eseguito il comando `grub2-mkconfig` per ri-generare il file `/boot/grub2/grub.cfg`.
Systemd è il genitore di tutti i processi di sistema. Legge il target del link `/etc/systemd/system/default.target` (es. `/usr/lib/systemd/system/multi-user.target`) per determinare l'obiettivo predefinito del sistema. Il file definisce i servizi da avviare.
81
+
`systemd` è il genitore di tutti i processi di sistema. Legge il target del link `/etc/systemd/system/default.target` (es. `/usr/lib/systemd/system/multi-user.target`) per determinare l'obiettivo predefinito del sistema. Il file indica i servizi da avviare.
82
82
83
-
Systemd posiziona quindi il sistema nello stato definito dall'obiettivo eseguendo le seguenti attività di inizializzazione:
83
+
`systemd` pone quindi il sistema nello stato definito dall'obiettivo eseguendo le seguenti operazioni di inizializzazione:
84
84
85
85
1. Imposta il nome della macchina
86
86
2. Inizializza la rete
@@ -96,50 +96,75 @@ Systemd posiziona quindi il sistema nello stato definito dall'obiettivo eseguend
96
96
Perché proteggere il bootloader con una password?
97
97
98
98
1. Prevenire l'accesso in *Single user mode* - Se un utente malintenzionato può avviare in single user mode, diventa l'utente root.
99
-
2. Impedire l'accesso alla console di GRUB - Se un utente malintenzionato riesce a utilizzare la console Grub, può modificare la sua configurazione o raccogliere informazioni sul sistema utilizzando il comando `cat`.
100
-
3. Impedire l'accesso ai sistemi operativi insicuri. Se c'è un doppio avvio sul sistema, un utente malintenzionato può selezionare un sistema operativo come DOS che all'avvio ignora i controlli di accesso e le autorizzazioni dei file.
99
+
2. Impedire l'accesso alla console di GRUB - Se un utente malintenzionato riesce a utilizzare la console GRUB, potrebbe modificare la sua configurazione o raccogliere informazioni di sistema con il comando `cat`.
100
+
3. Impedire l'accesso ai sistemi operativi insicuri. Se il sistema è configurato con dual boot, un utente malintenzionato putrebbe selezionare un sistema operativo come DOS che in fase di boot ignora controlli d'accesso e autorizzazioni dei file.
101
101
102
102
Per proteggere con password il bootloader GRUB2:
103
103
104
-
* Rimuovere `-unrestricted` dalla dichiarazione principale `CLASS=` nel file `/etc/grub.d/10_linux`.
104
+
1. Accedere al sistema operativo come utente root ed eseguire il comando `grub2-mkpasswd-pbkdf2`. L'output del comando è il seguente:
105
105
106
-
* Se un utente non è stato ancora configurato, utilizzare il comando `grub2-setpassword` per fornire una password per l'utente root:
106
+
```bash
107
+
Enter password:
108
+
Reenter password:
109
+
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.D0182EDB28164C19454FA94421D1ECD6309F076F1135A2E5BFE91A5088BD9EC87687FE14794BE7194F67EA39A8565E868A41C639572F6156900C81C08C1E8413.40F6981C22F1F81B32E45EC915F2AB6E2635D9A62C0BA67105A9B900D9F365860E84F1B92B2EF3AA0F83CECC68E13BA9F4174922877910F026DED961F6592BB7
110
+
```
107
111
108
-
```bash
109
-
# grub2-setpassword
110
-
```
112
+
È necessario inserire la password. Il ciphertext della password è la long string “grub.pbkdf2.sha512...”.
111
113
112
-
Un file `/boot/grub2/user.cfg` sarà creato se non era già presente. Contiene la password hashed. di GRUB2.
114
+
2. Incollare il ciphertext della password nell'ultima riga del file <strong x-id=“1”>/etc/grub.d/00_header</strong>. Il formato del testo incollato è il seguente:
113
115
114
-
!!! Note "Nota"
116
+
```bash
117
+
cat <<EOF
118
+
set superusers='frank'
119
+
password_obkdf2 frank grub.pbkdf2.sha512.10000.D0182EDB28164C19454FA94421D1ECD6309F076F1135A2E5BFE91A5088BD9EC87687FE14794BE7194F67EA39A8565E868A41C639572F6156900C81C08C1E8413.40F6981C22F1F81B32E45EC915F2AB6E2635D9A62C0BA67105A9B900D9F365860E84F1B92B2EF3AA0F83CECC68E13BA9F4174922877910F026DED961F6592BB7
120
+
EOF
121
+
```
115
122
116
-
Questo comando supporta solo le configurazioni con un singolo utente root.
123
+
È possibile sostituire l'utente 'frank'con un qualsiasi utente.
È anche possibile impostare una password in chiaro, ad esempio:
126
+
127
+
```bash
128
+
cat <<EOF
129
+
set superusers='frank'
130
+
password frank rockylinux8.x
131
+
EOF
132
+
```
133
+
134
+
3. Il passo finale consiste nell'eseguire il comando `grub2-mkconfig -o /boot/grub2/grub.cfg` per aggiornare le impostazioni di GRUB2.
135
+
136
+
4. Riavviare il sistema operativo per verificare la crittografia di GRUB2. Selezionare la prima voce del menu di avvio, digitare il tasto ++"e"++, quindi inserire l'utente e la password corrispondenti.
122
137
123
-
* Ricreare il file di configurazione con il comando `grub2-mkconfig`:
138
+
```bash
139
+
Enter username:
140
+
frank
141
+
Enter password:
142
+
143
+
```
144
+
145
+
Dopo l'esito positivo della verifica, digitare ++ctrl+"x"++ per avviare il sistema operativo.
146
+
147
+
A volte, in alcuni documenti, si può notare che il comando `grub2-set-password` (`grub2-setpassword`) viene usato per proteggere il bootloader di GRUB2:
148
+
149
+
| comando | Funzione di base | Metodo per modificare il file di configurazione | automatismo |
| `grub2-set-password` | Imposta password e aggiorna la configurazione | Completamento automatico | Elevato |
152
+
| `grub2-mkpasswd-pbkdf2` | Genera solo valori hash encrypted | Richiede intervento manuale | basso |
153
+
154
+
Accedere al sistema operativo come utente root ed eseguire il comando `gurb2-set-password` come segue:
124
155
125
156
```bash
126
-
[root]# grub2-mkconfig -o /boot/grub2/grub.cfg
127
-
Generating grub configuration file ...
128
-
Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64
129
-
Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img
130
-
Found linux image: /boot/vmlinuz-0-rescue-f9725b0c842348ce9e0bc81968cf7181
131
-
Found initrd image: /boot/initramfs-0-rescue-f9725b0c842348ce9e0bc81968cf7181.img
132
-
done
157
+
# grub2-setpassword
133
158
```
134
159
135
-
* Riavviare il sistema e controllare.
160
+
Dopo l'esecuzione del comando `grub2-set-password`, il file **/boot/grub2/user.cfg** verrà generato automaticamente.
136
161
137
-
Tutte le voci definite nel menu GRUB richiederanno ora un utente e una password da inserire a ciascun avvio. Il sistema non avvierà un kernel senza l'intervento diretto dell'utente dalla console.
162
+
Selezionare la prima voce del menu di avvio e digitare il tasto ++"e"++ , quindi inserire l'utente e la password corrispondenti:
138
163
139
-
* Quando viene richiesto l'utente, inserire `root`;
140
-
* Quando viene richiesta una password, inserire la password fornita al comando `grub2-setpassword`.
164
+
```bash
165
+
Questo comando supporta solo le configurazioni con un singolo utente root.
141
166
142
-
Per proteggere solo la modifica delle voci del menu GRUB e l'accesso alla console, l'esecuzione del comando `grub2-setpassword` è sufficiente. Ci possono però essere casi in cui ci sono buone ragioni per non farlo. Questo potrebbe essere particolarmente vero in un data center remoto in cui l'inserimento di una password ogni volta che viene riavviato un server è difficile o impossibile da fare.
167
+
```
143
168
144
169
## Systemd
145
170
@@ -166,43 +191,45 @@ Systemd introduce il concetto di file di unità, noti anche come unità di syste
166
191
167
192
Ci sono molti tipi di unità: Device unit, Mount unit, Path unit, Scope unit, Slice unit, Snapshot unit, Socket unit, Swap unit, Timer unit.
168
193
169
-
* Systemd supporta le istantanee dello stato del sistema e il ripristino.
194
+
*`Systemd` supporta le istantanee dello stato del sistema e il ripristino.
170
195
171
-
* Mount points possono essere configurati come target di systemd.
196
+
* Mount points possono essere configurati come target di `systemd`.
172
197
173
-
* All'avvio, systemd crea socket di ascolto per tutti i servizi di sistema che supportano questo tipo di attivazione e passa questi socket ai relativi servizi non appena vengono avviati. Ciò consente di riavviare un servizio senza perdere un singolo messaggio inviato dalla rete durante la sua indisponibilità. Il socket corrispondente rimane accessibile e tutti i messaggi vengono accodati.
198
+
* All'avvio, `systemd` crea socket di ascolto per tutti i servizi di sistema che supportano questo tipo di attivazione e passa questi socket ai relativi servizi non appena vengono avviati. Ciò consente di riavviare un servizio senza perdere un singolo messaggio inviato dalla rete durante la sua indisponibilità. Il socket corrispondente rimane accessibile e tutti i messaggi vengono accodati.
174
199
175
200
* I servizi di sistema che utilizzano D-BUS per le comunicazioni tra processi possono essere avviati su richiesta la prima volta che vengono utilizzati da un client.
176
201
177
-
* Systemd arresta o riavvia solo i servizi in esecuzione. Le versioni precedenti (prima di RHEL7) tentavano di arrestare direttamente i servizi senza controllarne lo stato corrente.
202
+
* `Systemd` arresta o riavvia solo i servizi in esecuzione. Le versioni precedenti (prima di RHEL7) tentavano di arrestare direttamente i servizi senza controllarne lo stato corrente.
178
203
179
204
* I servizi di sistema non ereditano alcun contesto (come le variabili di ambiente HOME e PATH). Ogni servizio opera nel proprio contesto di esecuzione.
180
205
181
206
Tutte le operazioni delle unità di servizio sono soggette a un timeout predefinito di 5 minuti per evitare che un servizio malfunzionante blocchi il sistema.
182
207
208
+
Per motivi di spazio, questo documento non fornirà un'introduzione dettagliata a `systemd`. Se si è interessati a esplorare ulteriormente `systemd` , c'è un'introduzione molto dettagliata in<a href=“./16-about-sytemd.md”>questo documento</a>.
209
+
183
210
### Gestione dei servizi di sistema
184
211
185
212
Le unità di servizio terminano con l'estensione di file `.service` e hanno uno scopo simile a quello degli script di init. Il comando `systemctl` viene utilizzato per `visualizzare`, `avviare`, `fermare`, `riavviare` un servizio di sistema:
| systemctl enable *name*.service | Attivare un servizio |
229
+
| systemctl disable *name*.service | Disabilitare un servizio |
230
+
| systemctl list-unit-files --type service | Elencare tutti i servizi e i controlli se sono in esecuzione |
231
+
| systemctl list-dependencies --after | Elencare i servizi che si avviano prima dell'unità specificata |
232
+
| systemctl list-dependencies --before |Elencare i servizi che si avviano dopo l'unità specificata |
206
233
207
234
Esempi:
208
235
@@ -256,9 +283,9 @@ WantedBy=multi-user.target
256
283
257
284
### Utilizzo degli obiettivi di sistema
258
285
259
-
Su Rocky8/RHEL8, il concetto di runlevel è stato sostituito dagli obiettivi systemd.
286
+
Su Rocky8/RHEL8, il concetto di runlevel è stato sostituito dagli obiettivi `systemd`.
260
287
261
-
I sistemi di destinazione sono rappresentati da unità di destinazione. Le unità di destinazione terminano con l'estenzione `.target` e il loro unico scopo è di raggruppare altre unità systemd in una catena di dipendenze.
288
+
La rappresentazione dei target di `systemd` è per unità di destinazione. Le unità di destinazione terminano con l'estenzione `.target` e il loro unico scopo è di raggruppare altre unità `systemd`in una catena di dipendenze.
262
289
263
290
Ad esempio, l'unità `graphical.target`, che viene utilizzata per avviare una sessione grafica, inizializza i servizi di sistema come il **GNOME display manager** (`gdm.service`) o l'**accounts service** (`accounts-daemon.service`) e attiva anche l'unità `multi-user.target`.
264
291
@@ -335,9 +362,9 @@ systemctl isolate name.target
335
362
336
363
La **Modalità di ripristino** fornisce un ambiente semplice per riparare il sistema nei casi in cui è impossibile eseguire un normale processo di avvio.
337
364
338
-
In `modalità di ripristino`, il sistema tenta di montare tutti i file system locali e avviare diversi servizi di sistema importanti, ma non abilita un'interfaccia di rete o consente ad altri utenti di connettersi al sistema contemporaneamente.
365
+
In `rescue mode`, il sistema tenta di montare tutti i file system locali e avviare diversi servizi di sistema importanti, ma non abilita un'interfaccia di rete o consente ad altri utenti di connettersi al sistema contemporaneamente.
339
366
340
-
Su Rocky 8, la `modalità di ripristino` è equivalente al vecchio `single user mode` e richiede la password di root.
367
+
Su Rocky 8, la `rescue mode` è equivalente al vecchio `single user mode` e richiede la password di root.
341
368
342
369
Per modificare la destinazione corrente immettere `rescue mode` nella sessione corrente:
343
370
@@ -372,7 +399,7 @@ I file di registro possono, oltre a `rsyslogd`, essere gestiti anche dal demone
372
399
373
400
Il demone `journald` cattura i messaggi Syslog, i messaggi di registro del kernel, i messaggi dal disco RAM iniziale e dall'inizio dell'avvio, nonché i messaggi scritti nell'output standard e l'output di errore standard di tutti i servizi, quindi li indicizza e li rende disponibili all'utente.
374
401
375
-
Il formato del file di registro nativo, che è un file binario strutturato e indicizzato, migliora le ricerche e consente un funzionamento più rapido, memorizza anche le informazioni dei metadati, come i timestamp o gli ID utente.
402
+
Il formato del file di log nativo, che è un file binario strutturato e indicizzato, migliora le ricerche e consente un funzionamento più rapido. Memorizza anche informazioni sui metadati, come i timestamp o gli ID utente.
376
403
377
404
### comando `journalctl`
378
405
@@ -382,7 +409,7 @@ Il comando `journalctl` visualizza i file di registro.
382
409
journalctl
383
410
```
384
411
385
-
Il comando elenca tutti i file di registro generati sul sistema. La struttura di questa uscita è simile a quella utilizzata in `/var/log/messages/` ma offre alcuni miglioramenti:
412
+
Il comando elenca tutti i file di registro generati sul sistema. La struttura di questo output è simile a quella utilizzata in`/var/log/messages/` ma offre alcuni miglioramenti:
386
413
387
414
* la priorità delle voci è segnata visivamente;
388
415
* i timestamp sono convertiti nella zona oraria locale del sistema;
0 commit comments