Einen neuen Ubuntu-Server sichern [geschlossen]


Antworten:


25

Ich kann mir keine Ubuntu-spezifischen Verbesserungen vorstellen, aber hier sind einige, die für alle Distributionen gelten:

  1. Deinstallieren Sie alle nicht benötigten Pakete
  2. Verwenden Sie in SSH nur die Authentifizierung mit öffentlichem Schlüssel
  3. Root-Logins über SSH deaktivieren (gilt nicht für Ubuntu)
  4. Verwenden Sie die Produktionseinstellungen für PHP (von php.ini empfohlen)
  5. Konfigurieren Sie MySQL so, dass nur Sockets verwendet werden

Natürlich ist diese Liste nicht vollständig und Sie werden nie ganz sicher sein, aber sie deckt alle Exploits ab, die ich im wirklichen Leben gesehen habe.

Außerdem betrafen die Exploits, die ich gesehen habe, fast immer unsicheren Benutzercode und keine unsichere Konfiguration. Die Standardkonfigurationen in minimalen Serververteilungen sind in der Regel ziemlich sicher.


1
Ändern Sie den Port für Dienste wie MySQL (nutzlos, wenn Sie nur Sockets verwenden möchten), FTP (wenn Sie jedoch sicher sind, sollten Sie FTP überhaupt nicht verwenden), SSH und alle Arten von Diensten.
Josh Hunt

3
"Deinstalliere alle unnötigen Pakete". OKAY. Das ist ziemlich vage. Welche "unnötigen" Pakete?
Luke

2
@ Luke: Alles, was du nicht verwendest, ist unnötig. Spezifischere, ausgeführte Dienste, die Sie nicht benötigen, setzen Maschinen einem unnötigen Risiko aus.
Andrioid

@ Luke: cat / etc / services sollte Ihnen einige Ideen geben.
Jeschurun

17

Eine schnelle Sache, die ich zu Beginn mache, ist die Installation von DenyHosts . Es durchsucht regelmäßig / var / log / secure nach fehlgeschlagenen Anmeldungen und blockiert nach einigen Fehlern die IP. Ich habe es so eingestellt, dass es nach dem ersten Nichtbenutzer, beim zweiten Root-Versuch und nach einigen Versuchen für echte Benutzer blockiert wird (falls Sie es vermasseln, aber Sie sollten sich mit einem öffentlichen SSH-Schlüssel anmelden).


3
während Sie auf die SourceForge-Homepage verlinken, ist denyhosts auch im Repository (Universum) über "sudo aptitude install denyhosts" verfügbar
Olaf

guter Punkt @olaf. Die meisten Server, auf denen ich es installiert habe, waren RHEL, wo es auch in DAGs Repo ist.
Alister Bulman

+1 Für Denyhosts
wimvds

2
DenyHosts scheint nur ssh-Brute-Force-Angriffe zu erkennen und zu blockieren. Eine bessere Wahl wäre fail2ban (es ist auch in den Repos verfügbar), das eine Vielzahl von Dingen überwacht, darunter unter anderem die Apache-Protokolle. Besuchen
jeshurun,


5

Normalerweise installiere ich RKHunter, das nach Rootkits sucht und Integritätsprüfungen für verschiedene wichtige System-Binärdateien durchführt. Es ist in der Standard-Repo und wird täglich von Cron ausgeführt. Es ist sicherheitstechnisch nicht perfekt, aber es ist mit geringem Aufwand hinzuzufügen und bietet ein gewisses Maß an Schutz.


4

Installieren Sie logcheck, aber optimieren Sie es, damit Sie nie Nachrichten von regulären Ereignissen erhalten, da Sie sonst die Gewohnheit haben, die E-Mails zu ignorieren.

Überprüfen Sie mit netstat, welche Prozesse empfangsbereit sind, und stellen Sie sicher, dass nichts ausgeführt wird, das nicht ausgeführt werden muss. Viele Daemons können so konfiguriert werden, dass sie statt aller Schnittstellen nur die interne IP (oder den lokalen Host) überwachen.


3

Mach was Can vorschlägt ...

Ordnen Sie den Host zu, und deaktivieren Sie alle nicht unbedingt erforderlichen Dienste. Verwenden Sie bei Bedarf iptables.


2
Auf jedem Server, auf den über das Internet zugegriffen werden kann, ist iptables immer erforderlich. ;-)
Christopher Cashell

3

Wenn Sie mit dem Server im Internet unterwegs sind, installieren Sie ein Intrusion Detection-System wie snort.


3

Verwenden Sie getrennte Partitionen für verschiedene Verzeichnisse wie /tmpoder /varund montieren sie mit nosuid, nodevund , noexecwenn möglich.


3

Einige Firewall-Vorschläge.

Erfahren Sie, wie Sie eine Firewall verwenden und wie Sie eine Box ordnungsgemäß sperren. Das Ändern der Standardports ist weitgehend nutzlos. Eine ordnungsgemäße Anwendung und Firewall-Konfiguration sind viel wichtiger.

Beide sind in den Ubuntu-Repos:

FireHOL

Hat eine hervorragende Dokumentation und eine sehr einfach zu erlernende Syntax. In zwanzig Minuten konnte ich ein Gateway / eine Firewall einrichten. Der einzige Grund, warum ich mich davon entfernt habe, ist, dass es anscheinend nicht gewartet wird (letzte Veröffentlichung vor 2 Jahren). Das heißt nicht, dass es nicht funktioniert, aber ...

Ferm

ist ein anderer. Mehr Iptables-ähnliche Syntax, aber dasselbe Konzept. Es wird mehr Community gepflegt als bei FireHOL, aber die Aufnahme dauert länger.

Shorewall

ist das, was ich derzeit benutze. Die Dokumentation ist umfangreich und das Konfigurationsformat tabellarisch. Ich habe ungefähr anderthalb Stunden gebraucht, um alle Dateien zu verstehen (6), die für die Ausführung einer funktionierenden Firewall- / Gateway-Konfiguration erforderlich sind. Es ist ziemlich mächtig. TIPP: Die Manpages für die verschiedenen Konfigurationsdateien sind WIRKLICH hilfreich!

Alle diese laden Firewall-Konfigurationen aus einer Konfigurationsdatei. Sehr effektiv, einfacher zu bedienen als iptables und (meiner Meinung nach) einfacher zu bedienen und zu verwalten als ufw.

Andere:

  • Ich stimme den Empfehlungen für die Verwendung von SSH-Schlüsseln zu.

  • Richten Sie ein IDS ein.

  • Erfahren Sie mehr über AppArmor. Der Dateizugriff von ausführbaren Dateien wird auf die angegebenen Verzeichnisse und Dateien beschränkt, die benötigt werden. Ähnlich wie SELinux in der RHEL-Welt. Es ist mit vorkonfigurierten "Profilen" für viele häufig verwendete Programme installiert und aktiviert.


2

Neben anderen Vorschlägen erwähne ich hier drei, die offensichtlich sind, aber der Vollständigkeit halber vielleicht erwähnenswert sind:

  1. Wenn Sie nicht glauben, dass Sie eine Firewall benötigen, überlegen Sie es sich noch einmal. ufw ist einfach, aber für Ubuntu konzipiert und basiert auf iptables
  2. Aktualisieren Sie die Pakete: Wenden Sie mindestens alle Sicherheitspatches an
  3. Dokumentieren Sie, was Sie getan haben, um den Server zu sichern, und warum. Konfigurieren Sie (automatisierte) Prozesse, um Protokolle zu überwachen, die Konfiguration zu testen und erforderliche Sicherheitsupdates zu melden.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.