Frage Sicherung eines neuen Ubuntu-Servers [geschlossen]


Angenommen, ich habe eine neue Ubuntu-Installation installiert. Welche Schritte sollte ich unternehmen, um es als Rails-Anwendungsserver zu sichern?


36
2018-04-30 08:10


Ursprung


Es gibt eine ähnliche Frage hier, es kann helfen; serverfault.com/questions/11659 - hayalci


Antworten:


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

  1. Deinstallieren Sie alle nicht benötigten Pakete
  2. Verwenden Sie nur die Authentifizierung mit öffentlichen Schlüsseln in SSH
  3. Deaktiviere Root Logins via SSH (gilt nicht für Ubuntu)
  4. Verwenden Sie die Produktionseinstellungen für PHP (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 völlig sicher sein, aber sie deckt alle Exploits ab ich habe im wirklichen Leben gesehen.

Außerdem waren die Exploits, die ich gesehen habe, fast immer mit unsicherem Benutzercode verbunden, nicht mit einer unsicheren Konfiguration. Die Standardkonfigurationen in minimalen Server-Distributionen sind in der Regel ziemlich sicher.


25
2018-04-30 08:30



Ändern Sie den Port für Dienste wie MySQL (nutzlos, wenn es nur für Sockets zu verwenden ist), FTP (obwohl, wenn Sie sicher sind, sollten Sie überhaupt FTP nicht verwenden), SSH und alle Arten. - Josh Hunt
"Deinstallieren Sie alle nicht benötigten Pakete". OK. Das ist ziemlich vage. Welche "unnötigen" Pakete? - Luke
@Luke: Alles, was du nicht benutzt, ist unnötig. Spezifischere, laufende Dienste, die Sie nicht benötigen, stellen Maschinen in ein unnötiges Risiko. - Andrioid
@Luke: cat / etc / services sollte dir ein paar Ideen geben. - jeshurun


Eine schnelle Sache, die ich früh mache, ist installieren DenyHosts. Es sucht regelmäßig nach / var / log / secure, sucht nach fehlgeschlagenen Anmeldungen und blockiert nach ein paar Fehlern die IP. Ich habe es so eingestellt, dass es nach dem ersten "no-so-user", beim zweiten root-Versuch und nach ein paar Versuchen für echte Nutzer blockiert (falls du versaust, aber du solltest einen öffentlichen SSH-Schlüssel verwenden, um dich einzuloggen).


17
2018-04-30 08:52



wenn du dich mit der sourceforge-homepage verbindest - denyhosts gibt es auch im repository (universe) via "sudo aptitude install denyhosts" - Olaf
guter Punkt @olaf. Die meisten Server, auf denen ich es installiert habe, waren RHEL, wo es auch im DAG Repo ist. - Alister Bulman
+1 Für denyhosts - wimvds
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), die eine Vielzahl von Dingen überwacht, einschließlich der Apache-Protokolle unter anderem. Schau dir das Community-Wiki an help.ubuntu.com/community/Fail2ban - jeshurun


Ubuntu basiert auf Debian und ich habe das gefunden Das Debian-Handbuch sichern  um in Debian-basierten Distributionen sehr nützlich zu sein, wenn Sie vollständig durch Ihr System gehen und jeden Teil prüfen. Es ist im Grunde eine wirklich, wirklich umfassende Antwort auf Ihre Frage.


10
2018-04-30 13:01



Hast du einen Link dafür? - Flame
Entschuldigung, dachte der Link war in der Post. Es ist bei: debian.org/doc/manuals/securing-debian-howto - Mike McQuaid


Ich installiere normalerweise RKHunter, der nach Rootkits sucht und Integritätsprüfungen verschiedener wichtiger Systembinärdateien durchführt. Es ist in der Standard-Repo und wird täglich von Cron laufen. Es ist zwar in sicherheitstechnischer Hinsicht nicht perfekt, aber es ist ein mühsames Element, das hinzugefügt werden kann, und es bietet ein gewisses Maß an Schutz.


5
2018-04-30 12:35





Installieren Sie logcheck, aber optimieren Sie, so dass Sie nie Nachrichten von normalen Ereignissen erhalten, sonst werden Sie die E-Mail ignorieren.

Überprüfen Sie, welche Prozesse mit netstat abgehört werden, und stellen Sie sicher, dass nichts läuft, das nicht ausgeführt werden muss. Viele Daemons können so konfiguriert werden, dass sie nur die interne IP (oder localhost) statt aller Schnittstellen abhören.


4
2018-04-30 11:21





Tu, was Can suggeriert ...

Nmap den Host und deaktivieren Sie alle nicht wesentlichen Dienste. Verwenden Sie bei Bedarf iptables.


3
2018-04-30 08:33



Auf jedem Server, auf den über das Internet zugegriffen werden kann, befindet sich iptables immer notwendig. ;-) - Christopher Cashell


Wenn Sie mit dem Server in die Nähe des Internets gehen, installieren Sie ein Intrusion Detection System wie Snort.


3
2018-04-30 08:38





Verwenden Sie separate Partitionen für verschiedene Verzeichnisse wie /tmp oder /var und mount sie mit nosuid, nodev und noexec wenn möglich.


3





Einige Firewall-Vorschläge.

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

Beide sind in den Ubuntu Repos:

FeuerHOL

hat großartige Dokumentation und sehr leicht zu lernen Syntax. Ich konnte in zwanzig Minuten ein Gateway / eine Firewall einrichten. Der einzige Grund, warum ich davon weggegangen bin, ist, dass es nicht gepflegt zu werden scheint (letzte Veröffentlichung vor 2 Jahren). Es bedeutet nicht, dass es nicht funktioniert, aber ...

Ferm

ist ein anderer. Mehr Iptables-ähnliche Syntax, aber dasselbe Konzept. Mehr Community als FireHOL gepflegt, aber dauert länger zu holen.

Ufermauer

ist was ich derzeit benutze. Die Dokumentation ist umfangreich und das Konfigurationsformat ist tabellarisch. Ich brauchte etwa anderthalb Stunden, um alle benötigten Dateien zu verstehen (6), um eine funktionierende Firewall / Gateway-Konfiguration zu erhalten. Es ist ziemlich mächtig. TIPP: Die man-Seiten für die verschiedenen Konfigurationsdateien sind WIRKLICH hilfreich!

Alle diese laden Firewall-Konfigurationen aus einer Konfigurationsdatei. Sehr effektiv, einfacher zu bedienen als iptables direkt und (meiner Meinung nach) einfacher zu benutzen 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. Es beschränkt den Dateizugriff ausführbarer Dateien auf nur angegebene Verzeichnisse und Dateien. Ähnlich wie SELinux in der RHEL-Welt. Es ist installiert und aktiviert mit vorkonfigurierten "Profilen" für viele gut verwendete Programme.


3





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

  1. Wenn Sie nicht glauben, dass Sie eine Firewall benötigen, denken Sie noch einmal darüber nach. ufw ist einfach, aber für Ubuntu konzipiert und basiert auf iptables
  2. Aktualisieren Sie die Pakete: Verwenden Sie mindestens alle Sicherheitspatches
  3. Dokumentieren Sie, was Sie getan haben, um den Server zu sichern und warum. Fügen Sie konfigurierende (automatisierte) Prozesse hinzu, um Protokolle zu überwachen, die Konfiguration zu testen und erforderliche Sicherheitsupdates zu melden.

2