Die Bash-Shell in meiner Produktionsbox ist anfällig für die Sicherheitslücke „Bashbug“.https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
Die installierte Version ist
`$ bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)`
Ich kann YUM
das neueste Paket nicht installieren, da unser Server nicht mit dem Internet verbunden ist. Daher versuche ich, es bash
mithilfe des Quellcodes zu installieren. Ich habe bash 4.3
es vom Quellcode heruntergeladen und installiert. Da diese Version immer noch anfällig für Bash-Bugs ist, muss ich den neuesten Patch für diese Version anwenden.
Hierzu habe ich mir den neusten Patch bash
von folgender Seite heruntergeladen.
http://ftp.gnu.org/gnu/bash/bash-4.3-patches/
Ich wende bash43-030
den Patch vom obigen Link an.
http://ftp.gnu.org/gnu/bash/bash-4.3-patches/bash43-030
Das Problem, mit dem ich konfrontiert bin, ist, dass die Anwendung des Patches mit dem folgenden Fehler fehlschlägt
[bash-4.3]$ patch -p0 < bash-patch patching file builtins/evalstring.c Hunk #1 FAILED at 309. Hunk #2 FAILED at 379. 2 out of 2 hunks FAILED -- saving rejects to file builtins/evalstring.c.rej patching file parse.y Hunk #1 succeeded at 2574 (offset 35 lines). Hunk #2 FAILED at 4038. 1 out of 2 hunks FAILED -- saving rejects to file parse.y.rej patching file shell.h Hunk #1 succeeded at 181 with fuzz 2. patching file y.tab.c Hunk #1 FAILED at 169. Hunk #2 FAILED at 498. Hunk #3 FAILED at 2099. Hunk #4 FAILED at 2113. ... ... Hunk #98 FAILED at 6350. 97 out of 98 hunks FAILED -- saving rejects to file y.tab.c.rej patching file patchlevel.h Hunk #1 FAILED at 26. 1 out of 1 hunk FAILED -- saving rejects to file patchlevel.h.rej
Bitte machen Sie Vorschläge zur Lösung des Problems. Möglicherweise ist der Ansatz zum Anwenden des Patches falsch.
Antwort1
Bash-Patches sindkumulativ, die Quelle für 4.3 ist tatsächlich 4.3.0, die Patches sind separat und alle sollten der Reihe nach angewendet werden, jeder bringt Sie einen Patch-Level nach oben. Selten wird eine vollständige Quellversion auf der offiziellen Site zur Verfügung gestellt, die letzte war 3.2.48.
Was Sie beobachten, ist, dass der erforderliche Patch (das Suffix „-030“ zeigt einen Patchlevel von .30 an) die früheren Patches erwartet. (Dies wird bei Bash-Patches immer erkannt, da jeder Patch patchlevel.h
jedes Auslassen zu einem Patch-Fehler führt.) Meine Anweisungen zum Erstellen aus dem Quellcode finden Sie hier:https://unix.stackexchange.com/a/157714/31352
Das Erstellen aus dem Quellcode ist unkompliziert, sollte aber nicht auf die leichte Schulter genommen werden. Sobald Sie Ihre Bash gepatcht haben, sind Sie in Bezug auf den Anbietersupport auf sich allein gestellt, was weitere Verwaltungsaufgaben (wie Patches und Upgrades) erschweren kann.
Du bist wahrscheinlich besser dranLaden Sie das Red Hat RPM herunter und übertragen Sie es auf den Server (oder, wenn Sie es wirklich aus dem Quellcode erstellen möchten, stattdessen das SRPM). Bash weist nur minimale Abhängigkeiten auf (insbesondere Termcap). Sie sollten nur ein einziges Paket benötigen, vorausgesetzt, keines davon wurde geändert.
In jedem Fall sollten Sie wahrscheinlich bei Bash-4.1 bleiben, da es eine Reihe von Änderungen gibt, die sich auf Skripte auswirken können, sieheCOMPAT
Datei in der Quellverteilung für Details. Alle veröffentlichten Versionen von 2.05b bis 4.3 haben Patches für „Shellshock“ (CVE-2014-6271) und verwandte Probleme.