Top -PHP -Härten -Sicherheits -Tipps für Linux -Server

Top -PHP -Härten -Sicherheits -Tipps für Linux -Server

Es ist kein beiler Php ist eine der am häufigsten verwendeten Server -Scripting -Programmiersprachen. Es ist sinnvoll, dass ein Angreifer verschiedene Möglichkeiten findet, mit denen er PHP manipulieren kann, wie es oft gepaart wird Mysql und aktivieren Sie den Zugriff auf die privaten Daten Ihrer Benutzer.

Auf jeden Fall behaupten wir nicht Php ist verletzlich oder hat standardmäßig einige ernsthafte Probleme, aber wir müssen sicherstellen, dass wir optimieren Php so, dass es robuster sein kann als je zuvor.

1. Entfernen Sie unnötige PHP -Module

Standardmäßig erhalten Sie einen Satz von Php Module, die bei verschiedenen Aufgaben hilfreich sein können, aber einige unnötige Module sind für jedes Projekt möglicherweise nicht nützlich. So verfügbar auflisten Php Module verwenden Sie den angegebenen Befehl:

$ php -m 
Listen Sie PHP -Module auf

Die Module befinden sich bei /etc/php.D/ Verzeichnis und kann unser aktuelles Verzeichnis problemlos an verändern /etc/php.D/ mithilfe des folgenden CD -Befehls.

CD /etc /php.D/ 

Der Grund, warum wir das Verzeichnis ändern, um Module zu entfernen. Listen Sie nun die verfügbaren Module nach dem angegebenen Befehl auf:

$ ls 
PHP -Module überprüfen

Lassen Sie uns zum Beispiel die entfernen Locken Modul durch Verwendung des angegebenen Befehls:

$ sudo rm -r 20 curl.Ini 

2. Deaktivieren Sie Remote -PHP -Codeausführung

In den meisten Fällen können Fernverbindungen nicht vertrauen. Durch Deaktivieren des Zugriffs auf fopen Wrapper können nur auf lokale Dateien zugreifen. Um fopen zu deaktivieren, müssen wir die PHP -Konfigurationsdatei mithilfe des angegebenen Befehls öffnen:

$ sudo nano /etc /php.Ini 

Jetzt benutzen Crtl + w und Typ degly_url_fopen die uns auf bestimmten Linien landen, aus denen wir diese Optionen deaktivieren werden.

degly_url_fopen = off degly_url_include = off 
Deaktivieren Sie Remote -PHP -Codeausführung

Sobald Sie mit Änderungen fertig sind, speichern Sie die Konfigurationsdatei nach Strg + o und schlagen Eingeben.

3. Deaktivieren Sie PHP -Informationsleckage

Wenn nicht deaktiviert, kann die Welt leicht ermitteln, welche Version von Php wird derzeit von unserem Webserver verwendet. Dies klingt vielleicht nicht nach einer großen Sache.

$ sudo nano /etc /php.Ini 

Ändern Sie nun die Standardeinstellungen auf "Aus".

expose_php = off 
Deaktivieren Sie PHP -Informationsleckage

4. Deaktivieren Sie PHP -Fehlerprotokolle

Standardmäßig ist jeder Fehler unseres Webservers für unsere Besucher, einschließlich Angreifer, sichtbar. Um sicherzustellen, dass keiner der Fehler für jeden sichtbar ist, müssen wir Änderungen in unserer PHP -Konfigurationsdatei vornehmen.

$ sudo nano /etc /php.Ini 

Und ändern Sie die Standardeinstellung der Anzeigefehlerprotokolle auf "Aus".

display_errors = von 
Deaktivieren Sie PHP -Fehlerprotokolle

Aber was ist, wenn Sie ein Entwickler sind und Fehlerprotokolle haben müssen, um Entwicklungsprobleme zu überwinden? Machen Sie sich keine Sorgen, es gibt eine Möglichkeit, Ihre Protokolldateien zu erhalten, indem Sie sich in derselben Konfigurationsdatei nur geringfügig ändern.

Wir müssen nur aktivieren log_errors und einen Weg geben zu Fehlerprotokoll wo unsere Protokolldateien gespeichert werden.

log_errors = on error_log =/var/log/httpd/php_scripts_error.Protokoll 
Aktivieren Sie Fehlerprotokolle in PHP

5. PHP -Ressourcenkontrolle

Nach uns ist das Verwalten von Ressourcen der wichtigste Teil bei der Sicherung Php. Hier werden wir eine feste Menge an Ausführungszeit, Eingabemaßzeit und Speichergrenze bereitstellen. Wenn unser Skript jedoch irgendwie beeinträchtigt wird, wird die Ausführung nach einer bestimmten Zeit gestoppt.

Wir haben ausgesucht 25 Sekunden für die Ausführung und Eingabemaßzeit und 30 MB von Speichergrenze. Sicher können Sie es gemäß Ihren Anforderungen anpassen.

max_execution_time = 25 max_input_time = 25 memory_limit = 30m 
PHP -Ressourcenkontrolle

6. Beschränken Sie den Zugriff von PHP -Dateien

Um den Zugriff auf Datei einzuschränken, werden wir aktivieren open_basedir Dies wird sicherstellen, dass PHP nur Dateien aus unseren aufgelisteten Verzeichnissen enthalten kann.

Wichtig: Dadurch wird alle anderen Verzeichnisse blockiert und erfordert, dass wir wichtige Verzeichnisse manuell hinzufügen, darunter auch das Hinzufügen von temporären Dateien und Sitzungsverzeichnisse.

open_basedir = "/home/sagar/public_html:/var/lib/php/tmp_upload:/var/lib/php/session" 
Steuerung der PHP -Dateizugriff

7. Konfigurieren Sie PHP -Datei -Uploads

Wenn Ihre Anwendung keine Dateien zum Ende des Benutzers hochladen muss, wird immer empfohlen, Datei -Uploads zu deaktivieren. Dies verhindert, dass Angreifer gefährliche Skripte hochladen, die am Ende die gesamte Anwendung beschädigen könnten.

Datei_Uploads = off 

Aber was ist, wenn Ihre Anwendung so konzipiert ist, dass Dateien vom Benutzer des Benutzers abgerufen werden?? In diesem Fall müssen Sie Datei -Uploads aktivieren, aber versuchen Sie, den maximalen Speicherplatz zu reduzieren und die Anzahl der maximalen Dateien zu reduzieren, die aus einer einzelnen Anforderung hochgeladen werden können.

Datei_Uploads = on upload_max_filesize = 1m max_file_uploads = 1 
Steuern Sie PHP -Datei -Uploads

In PHP werden die temporären Dateien standardmäßig in einem Verzeichnis platziert, das alle Systembenutzer schreiben können. Der Standardstandort muss an einen sichereren Ort umgestellt werden und stellen Sie sicher, dass er sich nicht innerhalb des Webrouchs befindet.

Wie wir verwendet haben open_basedir, Wir werden den gleichen Ort wie wir es bereits anwenden.

upload_tmp_dir =/var/lib/php/tmp_upload 

8. Deaktivieren Sie gefährliche PHP -Funktionen

PHP verfügt standardmäßig für verschiedene Funktionen und kann für Entwicklungszwecke hilfreich sein. Viele Funktionen können jedoch von Hackern verwendet werden, um unseren Web -Server auszunutzen und diese zu deaktivieren, wird eine Sicherheitsebene hinzufügen.

Wir haben einen deaktivierten Funktionssatz von Funktionen und stellen Sie sicher, dass Sie sie überprüft haben, bevor Sie Änderungen an der Konfigurationsdatei vornehmen.

Disable_functions = exec, passthru, Shell_exec, System, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source 
Deaktivieren Sie unerwünschte PHP -Funktionen

9. Ändern Sie das Seifen -Cache -Verzeichnis

Da wir das Standard -TEMP -Verzeichnis und die Sitzung geändert haben, gilt dies auch für die SEIFE Cache, da es nicht im Standardverzeichnis gespeichert werden sollte. Stellen Sie sicher, dass es an einem sicheren Ort gespeichert ist.

Seife.wsdl_cache_dir =/var/lib/php/soap_cache 
Ändern Sie das Seifen -Cache -Verzeichnis

10. Kontrollieren Sie PHP -Postgröße

Durch Kontrolle POST Größe können wir unseren Server vor einem Hacker sichern, der versucht, Serverressourcen zu gerücken, indem wir riesige Dateien senden. Dies rettet uns vor unerwünschten Serverabstürzen und einer langsamen Reaktionszeit.

post_max_size = 4m 
Begrenzen Sie die PHP -Postgröße

11. Schützen Sie PHP -Konfigurationen

Während wir unnötige Dateien entfernen, entfernen wir häufig einige wichtige Dateien oder sogar Verzeichnisse. Wir müssen also die Einstellungen so optimieren, dass selbst Root -Benutzer sie nicht löschen können. Um Dateien und Verzeichnisse zu erstellen, werden wir verwenden Chattr mit verschiedenen Flaggen.

Sobald Sie den angegebenen Befehl verwenden, können Sie eine bestimmte Datei nicht mehr ändern oder entfernen.

$ sudo chattr +i /etc /php.Ini 

Beim Versuch, eine unveränderliche Datei zu entfernen, wird ein Fehler angezeigtOperation unzulässig”.

$ sudo rm -r /etc /php.Ini 
Operation nicht zulässiger Fehler

Aber was ist, wenn Sie diese Dateien weiter schreiben möchten, während Sie sie unveränderlich machen? Sie können dies leicht erreichen, indem Sie die verwenden +A Flagge statt von +ich.

$ sudo chattr +a /etc /php.Ini 

Es gibt möglicherweise einige Fälle, in denen Sie die alte Konfigurationsdatei nicht mehr benötigen, und in diesem Fall müssen wir uns nicht verschrieben.

$ sudo chattr -i /etc /php.Ini 

In ähnlicher Weise, wenn Sie mit gegangen sind +A Attribute Bei der Unerwahrstellung von Dateien können Sie diese umkehren, indem Sie den angegebenen Befehl verwenden:

$ sudo chattr -a /etc /php.Ini 

12. Verwenden Sie SSL -Zertifikate für HTTPS

Heutzutage empfehlen jeder moderne Browser wie Google Chrome, Firefox, Opera und andere die Verwendung Https Für Webserver. Als Https Bietet einen gesicherten und verschlüsselten Zugriffskanal für nicht vertrauenswürdige Websites. Wir können unseren Benutzern eine zuverlässige Erfahrung bieten.

Beim Hinzufügen Https, Wir können uns vor schützen lassen XSS Angriffe, einschließlich der Verhinderung der Hacker beim Lesen von Transportdaten mithilfe von Codes.

Um HTTPS zu aktivieren, werden wir das kostenlose installieren und verwenden Lassen Sie uns das SSL -Zertifikat verschlüsseln auf dem Server.

$ sudo dnf install epel-release $ sudo dnf install install Certbot python3-ceTbot-apache mod_ssl $ sudo certbot --apache -d Domain.com [für Apache] $ sudo certbot -nginx -d Domain.com [für Nginx] 

13. PHP regelmäßig aktualisieren

Da es sich um eine Open-Source-Sprache handelt, wird sie fast täglich gepatcht. Es scheint nicht groß. Halten Sie also Ihre PHP -Pakete auf dem neuesten.

# YUM Update & YUM Upgrade [auf rhelbasierten Systemen] # APT-Update && APT-Upgrade [auf Debian-basierten Systemen] 

Dies war unsere Einstellung, wie Sie die Sicherheit von leicht verbessern können Php In Linux -Systemen. In diesem Tutorial haben wir versucht, die Dinge so einfach wie möglich zu machen, und wenn Sie noch Zweifel haben, teilen Sie uns bitte in den Kommentaren mit.