Linux Admin - Systemaktualisierungen

Das CentOS 7-System kann auf drei Arten aktualisiert werden:

  • Manually
  • Automatically
  • Aktualisieren Sie manuell auf wichtige Sicherheitsprobleme und konfigurieren Sie automatische Updates

In einer Produktionsumgebung wird empfohlen, die Aktualisierung für Produktionsserver manuell durchzuführen. Oder erstellen Sie zumindest einen Aktualisierungsplan, damit der Administrator die für den Geschäftsbetrieb wichtigen Dienste sicherstellen kann.

Es ist plausibel, dass ein einfaches Sicherheitsupdate rekursive Probleme mit allgemeinen Anwendungen verursachen kann, die ein Upgrade und eine Neukonfiguration durch einen Administrator erfordern. Seien Sie also müde, automatische Updates in der Produktion zu planen, bevor Sie zuerst auf Entwicklungsservern und Desktops testen.

Manuelles Aktualisieren von CentOS 7

Um CentOS 7 zu aktualisieren, sollten wir uns mit dem Befehl yum vertraut machen .yumwird für den Umgang mit Paket-Repositorys in CentOS 7 verwendet. yum ist das häufig verwendete Tool für -

  • Aktualisieren Sie das CentOS 7 Linux-System
  • Suche nach Paketen
  • Installieren Sie Pakete
  • Erkennen und installieren Sie die erforderlichen Abhängigkeiten für Pakete

Um yum für Updates verwenden zu können, muss Ihr CentOS-Server mit dem Internet verbunden sein. Die meisten Konfigurationen installieren ein Basissystem und fragen dann mit yum das Haupt-CentOS-Repository nach zusätzlichen Funktionen in Paketen ab und wenden Systemaktualisierungen an.

Wir haben yum bereits verwendet , um einige Pakete zu installieren. Wenn Sie yum verwenden, müssen Sie dies immer als Root-Benutzer tun. Oder ein Benutzer mit Root-Zugriff. Suchen und installieren wir also einen benutzerfreundlichen Texteditor namens nano .

[root@centos 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.
 
[root@centos rdc]#

Lassen Sie uns nun den Nano- Texteditor installieren .

[root@centos 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!

[root@centos rdc]#

Wir haben den Nano-Texteditor installiert. Diese Methode, IMO, ist viel einfacher als die Suche nach Dienstprogrammen auf Websites und das manuelle Ausführen der Installationsprogramme. Außerdem verwenden Repositorys digitale Signaturen, um Pakete zu validieren und sicherzustellen, dass sie von einer vertrauenswürdigen Quelle mit yum stammen. Es ist Sache des Administrators, die Authentizität zu überprüfen, wenn er neuen Repositorys vertraut. Aus diesem Grund wird es als bewährte Methode angesehen, Repositorys von Drittanbietern überdrüssig zu sein.

Yum kann auch zum Entfernen eines Pakets verwendet werden.

[root@centos 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

Lassen Sie uns nun nach Updates suchen.

[root@centos 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

Wie abgebildet müssen noch einige Dutzend Updates installiert werden. Tatsächlich gibt es insgesamt etwa 100 Updates, da wir automatische Updates noch nicht konfiguriert haben. Installieren wir daher alle ausstehenden Updates.

[root@centos 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]:

Nach dem Drücken der Taste "y" beginnt die Aktualisierung von CentOS 7. Der allgemeine Prozess, den yum beim Aktualisieren durchläuft, ist -

  • Überprüft die aktuellen Pakete
  • Sucht im Repository nach aktualisierten Paketen
  • Berechnet die für aktualisierte Pakete erforderlichen Abhängigkeiten
  • Lädt Updates herunter
  • Installiert Updates

Stellen wir jetzt sicher, dass unser System auf dem neuesten Stand ist -

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

[root@centos rdc]#

Wie Sie sehen können, sind keine Updates aufgeführt.

Konfigurieren Sie automatische Updates für YUM

In einer Unternehmensumgebung können, wie bereits erwähnt, automatische Updates die bevorzugte Installationsmethode sein oder auch nicht. Lassen Sie uns die Schritte zum Konfigurieren automatischer Updates mit yum durchgehen.

Zuerst installieren wir ein Paket namens yum-cron .

[root@centos 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!

[root@centos rdc]#

Standardmäßig lädt yum-cron nur Updates herunter und installiert sie nicht. Ob Updates automatisch installiert werden sollen, hängt vom Administrator ab. Die größte Einschränkung ist: Einige Updates erfordern einen Neustart des Systems. Außerdem erfordern einige Updates möglicherweise eine Konfigurationsänderung, bevor die Dienste wieder betriebsbereit sind.

Das Aktualisieren von Abhängigkeiten kann in der folgenden Situation möglicherweise zu einem rekursiven Problem führen:

  • Ein Update wird von yum für eine bestimmte Bibliothek empfohlen

  • Die Bibliothek unterstützt nur Apache Server 2.4, aber wir haben Server 2.3

  • Unsere Commerce-Website basiert auf einer bestimmten Version von PHP

  • Die neue Version von Apache, die für die Bibliothek installiert wurde, erfordert ein Upgrade von PHP

  • Unsere Produktionswebanwendungen wurden noch nicht mit der neueren PHP-Version getestet

Yum kann Apache und PHP ohne Vorankündigung automatisch aktualisieren, sofern dies nicht konfiguriert ist.

Wenn alle fünf Szenarien ablaufen, kann dies zu starken Kopfschmerzen am Morgen und zu einem möglichen Sicherheitskompromiss führen, bei dem die Benutzerdaten offengelegt werden. Während das oben erwähnte Beispiel eine Art perfekter Sturm ist, wollen wir nie, dass sich ein solches Szenario abspielt.

Es ist Sache des Administrators, auf mögliche Szenarien mit potenziellen Einnahmeverlusten zuzugreifen, die für die Wiederherstellung von Diensten aufgrund möglicher Ausfallzeiten aufgrund von Neustarts und Neukonfigurationen erforderlich sind. Diese Vorgehensweise ist möglicherweise nicht konservativ genug für beispielsweise eine E-Commerce-Website mit mehreren Millionen Dollar pro Tag und Millionen von Kunden.

Jetzt konfigurieren wir yum-cron so , dass Systemupdates automatisch installiert werden.

[root@centos 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

Wir möchten apply_updates = no in apply_updates = yes ändern . Konfigurieren wir nun das Aktualisierungsintervall für yum-cron .

Auch hier kann die Frage, ob automatische Updates verwendet und Updates bei Bedarf installiert werden sollen, ein zweischneidiges Schwert sein und muss von einem Administrator für jede einzelne Situation geprüft werden.