Amministratore Linux - Aggiornamenti di sistema

Il sistema CentOS 7 può essere aggiornato in tre modi:

  • Manually
  • Automatically
  • Aggiorna manualmente per i principali problemi di sicurezza e configura gli aggiornamenti automatici

In un ambiente di produzione, si consiglia di aggiornare manualmente i server di produzione. O almeno stabilire un piano di aggiornamento in modo che l'amministratore possa garantire servizi vitali per le operazioni aziendali.

È plausibile che un semplice aggiornamento della protezione possa causare problemi ricorsivi con un'applicazione comune che richiede l'aggiornamento e la riconfigurazione da parte di un amministratore. Quindi, stancati di pianificare gli aggiornamenti automatici in produzione prima di testare prima su server e desktop di sviluppo.

Aggiorna manualmente CentOS 7

Per aggiornare CentOS 7, vorremo acquisire familiarità con il comando yum .yumè usato per gestire i repository di pacchetti in CentOS 7. yum è lo strumento comunemente usato per:

  • Aggiorna il sistema Linux CentOS 7
  • Cerca pacchetti
  • Installa i pacchetti
  • Rileva e installa le dipendenze richieste per i pacchetti

Per poter utilizzare yum per gli aggiornamenti, il tuo server CentOS dovrà essere connesso a Internet. La maggior parte delle configurazioni installerà un sistema di base, quindi utilizzerà yum per interrogare il repository CentOS principale per funzionalità aggiuntive nei pacchetti e applicare gli aggiornamenti di sistema.

Abbiamo già utilizzato yum per installare alcuni pacchetti. Quando usi yum dovrai sempre farlo come utente root. O un utente con accesso root. Quindi cerchiamo e installiamo un editor di testo facile da usare chiamato nano .

[[email protected] rdc]# yum search nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.rackspace.com
 * epel: mirror.chpc.utah.edu
 * extras: repos.forethought.net 
 * updates: repos.forethought.net 
====================================================================== 
      N/S matched: nano 
======================================================================
nano.x86_64 : A small text editor
nodejs-nano.noarch : Minimalistic couchdb driver for Node.js
perl-Time-Clock.noarch : Twenty-four hour clock object with nanosecond precision
 Name and summary matches only, use "search all" for everything.
 
[[email protected] rdc]#

Ora, installiamo l' editor di testo nano .

[[email protected] rdc]# yum install nano
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package nano.x86_64 0:2.3.1-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================  
Package                             Arch
Version                          Repository                            Size  
================================================================================  
 Installing: 
 nano                               x86_64
 2.3.1-10.el7                    base                                  440 k
 
Transaction Summary
Install  1 Package
Total download size: 440 k
Installed size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
nano-2.3.1-10.el7.x86_64.rpm
| 440 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
 Installing : nano-2.3.1-10.el7.x86_64
1/1  
 Verifying  : nano-2.3.1-10.el7.x86_64
1/1  
Installed: 
 nano.x86_64 0:2.3.1-10.el7
 
Complete!

[[email protected] rdc]#

Abbiamo installato l'editor di testo nano. Questo metodo, IMO, è molto più semplice della ricerca di utilità sui siti Web e dell'esecuzione manuale dei programmi di installazione. Inoltre, i repository utilizzano le firme digitali per convalidare i pacchetti assicurando che provengano da una fonte attendibile con yum. Spetta all'amministratore convalidare l'autenticità quando si fida di nuovi repository. Questo è il motivo per cui è considerata una best practice essere stanco di repository di terze parti.

Yum può essere utilizzato anche per rimuovere un pacchetto.

[[email protected] rdc]# yum remove nano 
Loaded plugins: fastestmirror, langpacks 
Resolving Dependencies 
--> Running transaction check 
---> Package nano.x86_64 0:2.3.1-10.el7 will be erased 
--> Finished Dependency Resolution

Dependencies Resolved

Ora controlliamo gli aggiornamenti.

[[email protected] rdc]# yum list updates
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.keystealth.org
 * epel: pubmirror1.math.uh.edu
 * extras: centos.den.host-engine.com
 * updates: repos.forethought.net
Updated Packages
NetworkManager.x86_64           1:1.4.0-17.el7_3       updates
NetworkManager-adsl.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-glib.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-libnm.x86_64     1:1.4.0-17.el7_3       updates
NetworkManager-team.x86_64      1:1.4.0-17.el7_3       updates
NetworkManager-tui.x86_64       1:1.4.0-17.el7_3       updates
NetworkManager-wifi.x86_64      1:1.4.0-17.el7_3       updates
audit.x86_64                    2.6.5-3.el7_3.1        updates
audit-libs.x86_64               2.6.5-3.el7_3.1        updates
audit-libs-python.x86_64

Come illustrato, abbiamo alcune dozzine di aggiornamenti in attesa di installazione. In realtà, ci sono circa 100 aggiornamenti totali poiché non abbiamo ancora configurato gli aggiornamenti automatici. Quindi, installiamo tutti gli aggiornamenti in sospeso.

[[email protected] rdc]# yum update
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.usc.edu
 * epel: pubmirror1.math.uh.edu
 * extras: repos.forethought.net
 * updates: repos.forethought.net
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.4.0-14.el7_3 will be updated
---> Package NetworkManager.x86_64 1:1.4.0-17.el7_3 will be an update
 selinux-policy            noarch      3.13.1102.el7_3.15      updates     414 k
 selinux-policy-targeted   noarch      3.13.1102.el7_3.15      updates     6.4 M 
 systemd                   x86_64      21930.el7_3.7           updates     5.2 M 
 systemd-libs              x86_64      21930.el7_3.7           updates     369 k 
 systemd-python            x86_64      21930.el7_3.7           updates     109 k 
 systemd-sysv              x86_64      21930.el7_3.7           updates     63 k 
 tcsh                      x86_64      6.18.01-13.el7_3.1      updates     338 k 
 tzdata                    noarch      2017a1.el7              updates     443 k 
 tzdata-java               noarch      2017a1.el7              updates     182 k 
wpa_supplicant             x86_64      1:2.021.el7_3           updates     788 k  

Transaction Summary 
=============================================================================== 
  Install   2 Packages 
  Upgrade  68 Packages 
Total size: 196 M 
Total download size: 83 M 
Is this ok [y/d/N]:

Dopo aver premuto il tasto "y", inizierà l'aggiornamento di CentOS 7. Il processo generale che yum attraversa durante l'aggiornamento è:

  • Controlla i pacchetti correnti
  • Cerca nel repository i pacchetti aggiornati
  • Calcola le dipendenze necessarie per i pacchetti aggiornati
  • Scarica gli aggiornamenti
  • Installa gli aggiornamenti

Ora, assicuriamoci che il nostro sistema sia aggiornato -

[[email protected] rdc]# yum list updates 
Loaded plugins: fastestmirror, langpacks 
Loading mirror speeds from cached hostfile 
 * updates: mirror.compevo.com

[[email protected] rdc]#

Come puoi vedere, non ci sono aggiornamenti elencati.

Configurare gli aggiornamenti automatici per YUM

In un ambiente Enterprise, come accennato in precedenza, gli aggiornamenti automatici possono o meno essere il metodo di installazione preferito. Esaminiamo i passaggi per configurare gli aggiornamenti automatici con yum.

Innanzitutto, installiamo un pacchetto chiamato yum-cron .

[[email protected] rdc]# yum -y install yum-cron
Install  1 Package
Total download size: 61 k
Installed size: 51 k
Downloading packages:
yum-cron-3.4.3-150.el7.centos.noarch.rpm
|  61 kB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : yum-cron-3.4.3-150.el7.centos.noarch
1/1
  Verifying  : yum-cron-3.4.3-150.el7.centos.noarch
1/1

Installed: 
 yum-cron.noarch 0:3.4.3-150.el7.centos
 
Complete!

[[email protected] rdc]#

Per impostazione predefinita, yum-cron scaricherà solo gli aggiornamenti e non li installerà. Se installare gli aggiornamenti automaticamente è nell'amministratore. L'avvertenza più grande è che alcuni aggiornamenti richiedono il riavvio del sistema. Inoltre, alcuni aggiornamenti potrebbero richiedere una modifica della configurazione prima che i servizi siano nuovamente operativi.

L'aggiornamento delle dipendenze può creare un problema ricorsivo nella seguente situazione:

  • Un aggiornamento è consigliato da yum per una certa libreria

  • La libreria supporta solo Apache Server 2.4, ma abbiamo il server 2.3

  • Il nostro sito commerciale si basa su una determinata versione di PHP

  • La nuova versione di Apache installata per la libreria richiede l'aggiornamento di PHP

  • Le nostre applicazioni web di produzione non sono ancora state testate con la nuova versione PHP

Yum può andare avanti e aggiornare automaticamente Apache e PHP senza preavviso a meno che non sia configurato per non farlo.

Se tutti e 5 gli scenari si verificano, può causare qualsiasi cosa, da un grande mal di testa al mattino a un possibile compromesso della sicurezza che espone i dati dell'utente. Anche se l'esempio sopra menzionato è una sorta di tempesta perfetta, non vogliamo mai che uno scenario del genere si realizzi.

Spetta all'amministratore accedere a possibili scenari di potenziale perdita di entrate dal tempo necessario per ripristinare i servizi a causa di possibili tempi di inattività dovuti ai riavvii degli aggiornamenti e alle riconfigurazioni. Questa pratica potrebbe non essere abbastanza conservativa per, ad esempio, un sito di e-commerce multimilionario al giorno con milioni di clienti.

Ora configuriamo yum-cron per installare automaticamente gli aggiornamenti di sistema.

[[email protected] rdc]# vim /etc/yum/yum-cron.conf
# Whether updates should be applied when they are available.  Note
# that download_updates must also be yes for the update to be applied.
apply_updates = yes

Vogliamo cambiare apply_updates = no in apply_updates = yes . Ora configuriamo l'intervallo di aggiornamento per yum-cron .

Anche in questo caso, se utilizzare gli aggiornamenti automatici e installare gli aggiornamenti su richiesta può essere un'arma a doppio taglio e deve essere considerato da un amministratore per ogni situazione unica.