Frage

Ich bin befassen sich mit der Verwaltung und läuft mein erstes Internet Apache Webserver verbunden und ich habe mich gefragt, ob es irgendwelche Systemadministratoren und Entwickler gibt, die einige von ihrem Wissen teilen in Bezug auf Sicherheit und Tipps zur Optimierung möchten Apache zum Laufen Webserver.

Vielleicht Ihre fünf (oder zehn) eine Liste der Dinge, die Sie sofort tun, nachdem die Installation von Apache Webserver (auf einer Linux-Box).

teilen Sie

Jede Hilfe sehr geschätzt.

War es hilfreich?

Lösung

Grund

  1. Seien Sie sicher, dass die neueste stabile Version installiert haben . Laufen alt oder instabile Version von Apache könnte Ihr System auf Sicherheitslücken oder ungetestete Lösungen aussetzen
  2. Achten Sie darauf, nur die beabsichtigten Anträge tatsächlich verarbeitet werden, . Sie sollten sich überlegen , die , um die Web-Ressourcen, die von Apache ausgesetzt zuzugreifen und wie .
  3. Vermeiden Sie Apache als root läuft . Dies ist ein Muss.
  4. Behandeln Sie Ihre Protokolle . Protokolle sind in der Regel größer und größer werden; betrachten die Einrichtung logrotate oder Ihre Log-in regelmäßigen Abständen zu reinigen.
  5. Monitor Apache Gesundheit mit einem Überwachungssystem . Ich mag zu koppeln munin und monit, die beide leicht setuo und aufrecht zu erhalten. Nagios und andere sind einen Blick wert.
  6. Wenn Apache dient Web-Anwendungen (das heißt PHP, Perl, Rails) Sicherstellen, dass die Anfragen der richtige Modul in der richtigen Reihenfolge behandelt werden .
  7. Schreiben Sie eine schöne 404 und 500 Nachricht . Früher oder später Ihre Besucher einen Fehler fangen.
  8. Beenden und starten Sie Apache , so können Sie Verfahren prüfen, ob die shoutdown und starten sein wird flawlessy arbeiten.
  9. Mit mod_security

Sicherheit

  1. Schützen Apache gegen DOS.
  2. Legen Sie nur die Module wirklich benötigt wird.
  3. Überwachen Sie Ihr Protokoll, um herauszufinden, ob etwas Seltsames geschieht.

Performance

  1. Wenn Sie Apache aus dem Quellcode kompilieren, müssen Sie MPM verwenden (Multi-Processing-Module).
  2. Legen Sie nur die Module wirklich benötigt wird.
  3. Überprüfen Sie die MaxClients Einstellung, so dass der Server nicht so viele Kinder nicht laichen es Swapping gestartet.
  4. Verwenden Sie das mod_deflate Modul bietet es die DEFLATE Ausgangsfilter, die über das Netzwerk an den Client vor dem Senden komprimiert werden Ausgabe von Ihrem Server ermöglicht.

Andere Tipps

  • Stellen Sie sicher, der Apache-Prozess nicht als root ausgeführt wird.
  • Achten Sie darauf, auf der aktuelle stabile Version sein
  • Wenn die Box direkt mit dem Internet verbunden sicherzustellen, dass Sie über alle dachten, andere Dienste wie ssh.
  • Überprüfen Sie sorgfältig Ihre lokalen Firewall-Regeln, ziehen Sie es nach unten. (Siehe iptables)
  • schalten Sie nicht auf Optionen, die Sie nicht verstehen oder nicht planen, verwenden,
  • Betrachten auf eine Apache-Sicherheits-Mailingliste abonnieren, so dass Sie sofort zu kritischem Patches lernen werden
  1. Chroot den Webserver
  2. Deaktivieren Sie beliebiges Modul Sie nicht gehen zu müssen,
  3. One Sie stattdessen brauchen, ist mod_security
  4. Datei-Integritätsprüfung für Ihre Webroot rel="nofollow
  5. Sichere alles andere auf dem gleichen Server und ausschalten etwas nicht verwendet
  6. Führen Sie Tests gegen Ihren Server mit Tools wie nmap oder Metasploit

Ich werde interpretieren „nachdem auf einem Feld Installation von Apache“ als „für den produktiven Einsatz eine neue Server-Installation vorbereiten“, weil natürlich das alles auf einem Entwicklungs-Server und engagiert sich für SCM oder eingebaut in einem automatisierten erfolgen würde installieren.

Alles, was Sie tun, um zu optimieren müssen basierend auf realen Messungen durchgeführt werden. Stellen Sie eine Testumgebung mit Ihrer tatsächlichen Anwendung auf Sie beabsichtigen, so realistisch wie möglich zu laufen. Einige Punkte zu beachten sind:

  • Sie nicht MaxClients zu hoch eingestellt. Sie können eine Menge von RAM, insbesondere mit prefork-Server mit einer großen Anwendung aufbrauchen eingebettet in ihnen (z mod_perl, PHP usw.). zu viel Speicher verwendet, ist kontraproduktiv. Es ist besser für die Kunden für einen erfolgreichen Service zu warten, als ein Fehler serviert werden.
  • Prüfen Sie sorgfältig, ob Sie Keep Alive auf. Diese können sowohl beschleunigen und verlangsamen, je nach Ihrer Umgebung. Wenn Sie wählen, um sie auf haben, sollten Sie darüber nachdenken, Ihre Keep-Alive-Timeout auf der Grundlage der tatsächlichen Anwendungsfall.
  • Sie Performance-Tests mit HTTPS aktiviert, wenn Sie HTTPS in der Produktion verwenden
  • Stellen Sie „Zuletzt geändert“ und „Ablaufdatum“ Header in geeigneter Weise auf Objekte, die sich selten ändern (auf Client-seitiges Caching zu maximieren). Test-Client-seitiges Caching in einer Vielzahl von Browsern.
  • Stellen Sie sicher, dass Ihre Anwendung verwendet HTTPS richtig, nicht in einer Weise, die Browser Sicherheitswarnungen zu erzeugen, verursacht (dies ist ein weiterer guter Grund, warum Sie müssen während des Tests die Verwendung von HTTPS)

Wenn Sie einen Standard-LAMP (Linux, Apache, MySQL, PHP / PEARL / python) laufen Umgebung: Setzen Sie MySQL auf einem anderen Rechner als Apache. Wird mit nur wenigen gleichzeitigen Prozessen ein wenig langsamer sein (aufgrund von Netzwerk-Latenz), aber viel schneller mit vielen gleichzeitigen Prozessen sein.

Stellen Sie sicher, dass Sie es so konfiguriert haben, DOS (Denial of Service) Angriffe zu erkennen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top