Overkill der Webserver-Sicherheit?

9

Ich habe "umfangreiche" Nachforschungen über die Sicherung eines Linux-Webservers angestellt. Ist es ratsam, zusätzlich zu den "Grundlagen" (Entfernen nicht verwendeter Dienste, Härten von SSH, Iptables usw.) Anti-Rootkits (Tripwire) und ein Antivirus (ClamAV) einzuschließen? Sind diese nur übertrieben für einen Webserver? Ich weiß, dass dies eine sehr vage Frage ist, aber ich bin neugierig auf andere Meinungen.

Meine zukünftige Umgebung: - Ubuntu 10.04 - Fail2Ban - Nginx 0.8.x - PHP 5.3.x (Suhosin, APC, Memcached) - Mongodb 1.6.x.

Mögliche Anwendungen: - Webdienste - Web-Apps mit Benutzer-Uploads (Bilder, PDFs usw.) - typische Websites (Formulare usw.)

Wenn Sie weitere Tipps haben, können Sie diese gerne hinzufügen!

Vielen Dank

Aaron
quelle

Antworten:

8

Für einen öffentlich zugänglichen Server würde ich sagen, dass die Installation von Tripwire kein Overkill ist.

ClamAV ist eine andere Sache. Ich würde , dass bis einstellen , dass , wenn Ihre Besucher werden der Austausch von Dateien durch das Hochladen und Herunterladen von aus, Ihre Website. PDFs können Exploits enthalten.

Auf öffentlich zugänglichen Servern kann SSH keine Kennwortauthentifizierung zulassen, sondern nur die Authentifizierung mit öffentlichem Schlüssel. Wenn SSH nur über ein internes LAN möglich ist, können Sie dies lockern.

Wenn möglich, würde ich den Server in einer DMZ platzieren, damit keine Verbindungen zu anderen Computern in Ihren internen LANs hergestellt werden können.

RedGrittyBrick
quelle
2
Vergessen Sie nicht LMD (Linux Malware Detection), rfxn.com/projects/linux-malware-detect - dies sucht nach der Art von Malware, die Webanwendungen (HTML-, PHP-, JavaScript-Dateiänderungen) infiziert, um Ihre Site für zu verwenden SEO Spam, Phishing, Infektion der PCs der Besucher usw.
RichVel
3

Nein, du bist nicht weit genug gegangen.

1) Sie benötigen eine Webanwendungs-Firewall wie mod_security und stellen sicher, dass sie so konfiguriert ist, dass sie Angriffe blockiert und nicht nur protokolliert.

2) Sperren Sie PHP mit Phpsecinfo .

3) Sperren Sie das MySQL-Konto Ihrer Webanwendung und stellen Sie sicher, dass Ihre Anwendung keine FILEBerechtigungen hat. Dies ist bei weitem die gefährlichste in MySQL.

4) Firewall aus allen UDP und allen TCP, die Sie nicht benötigen. Erwägen Sie die Verwendung von Port Knocking für SSH. Nicht zu verbieten ist bei weitem nicht so gut wie null Versuche zu bekommen.

Turm
quelle
1) Ich hatte den Eindruck, dass ModSecurity nur mit Apache gepackt werden kann (ich verwende Nginx). Aber anscheinend kann es eigenständig laufen? Ich muss mich darum kümmern, danke! Ich bin calomel.org/nginx.html für einige Funktionen gefolgt .
Aaron
4) Ich verwende iptables, um den gesamten eingehenden und ausgehenden Datenverkehr zu blockieren, es sei denn, es handelt sich um meinen SSH-Port https oder https (eingehend, ausgehend). Ich werde mich im Laufe der Zeit weiter öffnen. Port Knocking ist jedoch eine interessante Ergänzung für SSH! Danke noch einmal!.
Aaron
@ Aaron Ich bin mir nicht sicher, warum Sie Nginx verwenden würden. Sie können apache + mod_security als Proxy für jedes seltsame und merkwürdige httpd verwenden, das Sie verwenden möchten.
Turm
2

Sie können AIDE wahrscheinlich sicher auf einem Webserver installieren - das Hinzufügen und Entfernen von Kunden ändert nicht zu viele Konfigurationsdateien, und Sie könnten das normale Chatter wahrscheinlich ziemlich einfach herausfiltern.

In vielen Sicherheitshandbüchern für Webserver wird jedoch nicht erwähnt, dass Sie noexec auf Ihrer / tmp-Partition in / etc / fstab aktivieren sollten. Wenn Sie der Öffentlichkeit Hosting anbieten, installieren viele Leute unsichere Webanwendungen ohne Ihr Wissen (und haben nicht das Wissen, um ihre Anwendungen auf dem neuesten Stand zu halten), und Sie verfolgen diese Fehler im Grunde für immer. Wenn Sie sicherstellen, dass der einzige Ort, an dem ein Angreifer Software speichern kann, das Home-Verzeichnis des Kunden und das Verzeichnis / tmp ist, besteht für den Angreifer das Risiko, Ihnen anzuzeigen, wo er einbricht, wenn er das Verzeichnis / tmp nicht verwenden kann. Das machen sie nicht gern.

Dies hat die überwiegende Mehrheit der Sicherheitsprobleme auf unserem Webhosting-Server gelöst.

Ernie
quelle
2

"Willkommen an Bord! An Bord unseres neuen Verkehrsflugzeugs können Sie Restaurant, Kino, Fitnessraum, Sauna und Schwimmbad genießen. Jetzt schnallen Sie sich an, unser Kapitän wird versuchen, all diese Scheiße in die Luft zu bringen."

  1. mod_security ist sowohl für Sie als auch für den Server ein Problem. Es ist ressourcenhungrig und seine Regeln müssen ernsthaft eingehalten werden und es wird eine unendliche Aufgabe sein. Und nein, es funktioniert nicht alleine oder mit Nginx. Wenn Sie das Gefühl haben, dass Sie es wirklich brauchen, richten Sie einen separaten Proxyserver ein (Apache, mod_proxy, mod_security). Es funktioniert auch als DMZ, Ihre realen Server können vollständig für die Außenwelt geschlossen werden, und wenn der Proxy verletzt wird, gibt es sowieso nichts.

  2. ClamAV ist auch sehr schwer, wenn es als Daemon ausgeführt wird. Es ist besser, Clamscan regelmäßig während nicht aktiver Stunden von Cron aus auszuführen.

  3. Tripwire ist übertrieben, IMHO. Aber etwas, das in der Lage ist, Rootkits zu finden, wäre nützlich, es gibt viele Skripte (rkhunter, chkrootkit).

  4. Ich glaube, dass mindestens 90% der Rootkits usw. über Uploads von Windows-Entwicklern auf Server gelangen. Es gibt keinen wirklich guten Weg, dies zu verhindern, außer vielleicht Entwickler zu zwingen, niemals Windows zu verwenden. Die meisten Trojaner suchen nach FTP-Anmeldeinformationen. Verwenden Sie daher niemals FTP.

moskit
quelle
Gut zu wissen ... Da ich nicht beabsichtige, den Apache-Weg einzuschlagen, werde ich mich an alle Sicherheitsaspekte halten, die ich für Nginx finden kann. Ich werde wahrscheinlich auch die Clamscan / Rkhunter-Route nehmen. Danke für die Tipps!
Aaron
0

Wird die Verwendung des Captcha-Formularschutzes in der gängigen CMS-Engine (Wordpress, Jomlaa, Drupal) als Sicherheitspraxis betrachtet? Wenn ja, können Sie diese verwenden:

affanzbasalamah
quelle
Anti Spam Schutz ? Ja. Aber hier will der Autor seinen Server gegen nicht autorisierte Benutzer sperren, womit captcha nichts zu tun hat.