Wenn Sie kürzlich einen Compliance-Sicherheitsscan durchgeführt haben, könnten die Ergebnisse wie im folgenden Beispiel aussehen:
Apache HTTP Server Zero-Length Directory Name in LD_LIBRARY_PATH Vulnerability, CVE-2012-0883
Apache HTTP Server mod_rewrite Terminal Escape Sequence Vulnerability, CVE-2013-1862
Apache HTTP Server XSS Vulnerabilities via Hostnames, CVE-2012-3499 CVE-2012-4558
Abhängig von der Codebasis hat der Apache® HTTP-Server diese Sicherheitsprobleme möglicherweise bereits gemildert. Der Scan überprüft die Apache-Version des Servers, um festzustellen, ob die installierte Version das Sicherheitsproblem behebt. Einige Compliance-Sicherheitsscans verwenden jedoch nur die Version von Apache, um festzustellen, ob der Server für Common Vulnerabilities and Exposures (CVE) anfällig ist, anstatt Schwachstellen direkt zu erkennen.
Solche Scans erzeugen fast immer ein falsches Positiv. Wenn Sie automatische Updates aktivieren, bleibt die Version möglicherweise gleich, selbst wenn eine andere Version die Schwachstelle patcht. Daher kann der Scan die Schwachstelle als positiv markieren. Dieses Ergebnis kann auch eintreten, wenn die Scans Ihres Anbieters zeigen, dass Ihr Server nicht mehr anfällig ist, selbst wenn frühere Scans Schwachstellen identifiziert haben.
Verwenden Sie die folgenden Schritte, wenn Ihr Sicherheitsaudit zeigt, dass Ihre Compliance-Sicherheitsscans nur die Apache-Version verwenden, um Schwachstellen auf Ihrem Apache2-Server zu identifizieren. Bearbeiten Sie die Konfigurationsdatei für den Hypertext Transfer Protocol-Daemon (HTTPd).
-
Öffnen Sie /etc/apache2/conf.d/httpd.conf in einem Editor.
-
Fügen Sie die folgenden Zeilen hinzu und entfernen Sie die Versionsinformationen:
ServerSignature Off ServerTokens Prod
Hinweis :Ihr Server sollte keine Versionssignatur bereitstellen, und Ihr Unternehmen für Penetrationstests sollte Ihnen empfehlen, Versionen zu deaktivieren.
Update von Apache 2.2 auf Apache 2.4
Verwenden Sie die folgenden Schritte, um Apache 2.2 auf Apache 2.4 zu aktualisieren.
-
Führen Sie den folgenden Befehl aus, um
HTTPd
zu stoppen und alle Überwachungsprozesse wieNimbus
Warnungen vermeiden:service httpd stop
-
Führen Sie die folgenden Befehle aus, um Ihre virtuellen Hostkonfigurationen zu sichern, und stellen Sie sicher, dass Sie alle zusätzlichen Verzeichnisse, die Sie hinzugefügt haben, wie
vhost
, einbeziehen :cd /etc/httpd tar -cvf /tmp/apache_vhostconfig.tar conf conf.d vhosts
-
Führen Sie den folgenden Befehl aus, um
yum-plugin-replace
zu installieren Paket, das Paketkonflikte während der Paketersetzung löst:yum install yum-plugin-replace
-
Bevor Sie fortfahren, führen Sie die folgenden Befehle aus, um die installierte Version und die Version, die Sie installieren möchten, zu überprüfen:
apachectl -V yum search httpd yum info httpd
Ihre Ausgabe sollte ähnlich wie im folgenden Beispiel aussehen, das den Befehl
yum info httpd24u.x86_64
verwendet :Loaded plugins: replace, rhnplugin, security This system is receiving updates from RHN Classic or RHN Satellite. Available Packages Name : httpd24u Arch : x86_64 Version : 2.4.23 Release : 4.ius.el6 Size : 1.2 M Repo : rackspace-rhel-x86_64-server-6-ius Summary : Apache HTTP Server License : ASL 2.0 Description : The Apache HTTP Server is a powerful, efficient, and extensible : web server.
-
Installieren Sie HTTPd 2.4, indem Sie den folgenden Befehl ausführen:
yum replace httpd --replace-with=httpd24u
-
Sie müssen außerdem Lightweight Directory Access Protocol (LDAP) installieren, indem Sie den folgenden Befehl ausführen:
yum install mod_ldap
-
In Apache 2.4 müssen Sie
Require
verwenden Anweisungen für die Zugriffsbeschränkung des Internetprotokolls (IP) anstelle vonOrder
,Deny
, undAllow
. Als Ergebnis müssen Sie dieOrder
ändern ,Deny
, undAllow
Anweisungen in Ihrer /etc/httpd/conf.d/server-status.conf Datei, umRequire
zu verwenden Aussagen. Weil Sie diese möglicherweise in der .htaccess haben Dateien für andere Websites, stellen Sie sicher, dass Sie Ihre DocumentRoots sorgfältig überprüfen, um zu vermeiden, dass Ihre Websites aufgrund fehlenderRequire
beschädigt werden Richtlinien.Ihre vorhandene /etc/httpd/conf.d/server-status.conf Die Datei sollte ähnlich wie im folgenden Beispiel aussehen.
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location>
Ersetzen Sie die
Order
,Deny
, undAllow
Anweisungen mit der Konfiguration im folgenden Beispiel.<Location /server-status> SetHandler server-status Require all granted Require host 127.0.0.1 </Location>
Hinweis :Diese Syntaxänderung gilt auch für die virtuellen Hosts in der conf.d und httpd.conf vhost-Konfigurationen.
-
Ändern Sie die
Order
,Deny
, undAllow
Anweisungen in conf.dRequire
Aussagen.# Order deny,allow # Deny from all Require all denied # Order deny,allow # Allow from all Require all granted
-
Ändern Sie in derselben Datei
Options -Indexes FollowSymLinks
zuOptions -Indexes +FollowSymLinks
. -
In /etc/httpd/conf/httpd.conf , ändern Sie die
Order
,Deny
, undAllow
Anweisungen zuRequire
Anweisungen, wie in Schritt 8 gezeigt. -
In /etc/httpd/conf/httpd.conf , setzen Sie als Kommentar das
LoadModule
Anweisungen für Module, die nicht mehr verwendet werden.#2.4 upgrade LoadModule authn_alias_module modules/mod_authn_alias.so #2.4 upgrade LoadModule authn_default_module modules/mod_authn_default.so #2.4 upgrade LoadModule authz_default_module modules/mod_authz_default.so #2.4 upgrade LoadModule disk_cache_module modules/mod_disk_cache.so
-
Bearbeiten Sie /etc/httpd/conf/httpd.conf um die folgende Zeile mit dem anderen
authz
hinzuzufügen Module.LoadModule authz_core_module modules/mod_authz_core.so
-
Fügen Sie die folgenden Zeilen am Ende des Blocks von
LoadModule
hinzu Aussagen.LoadModule mpm_prefork_module modules/mod_mpm_prefork.so LoadModule unixd_module modules/mod_unixd.so LoadModule slotmem_shm_module modules/mod_slotmem_shm.so LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
(Optional) Laden Sie eine kompatible Version des Dispatcher-Moduls von Adobe Experience Manager (AEM) herunter
Wenn die HTTPd-Installation das Dispatcher-Modul von Adobe® Experience Manager (AEM) verwendet, müssen Sie die folgenden Schritte ausführen, um die kompatible Datei für Apache HTTP Server 2.4 herunterzuladen.
-
Führen Sie die folgenden Befehle aus, um dispatcher-apache2.4-4.1.11.so zu extrahieren aus der Tape ARchive (TAR)-Datei in /etc/httpd/modules/ . Verwenden Sie zu diesem Zweck nur diese Datei.
cd /etc/httpd/modules rm mod_dispatcher.so ln -s /etc/httpd/modules/dispatcher-apache2.4-4.1.11.so mod_dispatcher.so
-
Da SSL Mutex veraltet ist, müssen Sie /etc/httpd/conf.d/ssl.conf bearbeiten um den
SSLMutex default
zu ändern toMutex default
.
Weitere Einzelheiten finden Sie in der Apache-Dokumentation zu MutexDirective.
Kritisch: Starten Sie HTTPd neu
Nachdem Sie die Schritte in diesem Artikel ausgeführt haben, müssen Sie HTTPd neu starten und überprüfen, ob es aktiviert ist und ausgeführt wird, indem Sie die folgenden Schritte ausführen:
-
Führen Sie den folgenden Befehl aus, um HTTPd neu zu starten:
service httpd start
-
Stellen Sie sicher, dass der Dienst aktiviert ist und ausgeführt wird, und aktivieren Sie alle zuvor aktivierten Überwachungen erneut:
-
Führen Sie unter CentOS® 7 oder Red Hat® Enterprise Linux® (RHEL) 7 die folgenden Befehle aus:
systemctl enable httpd systemctl status httpd
-
Verwenden Sie die Registerkarte „Feedback“, um Kommentare abzugeben oder Fragen zu stellen. Sie können auch ein Gespräch mit uns beginnen.