Angenommen, ich habe eine Neuinstallation von Ubuntu. Welche Schritte muss ich unternehmen, um es für die Verwendung als Rails-Anwendungsserver zu sichern?
linux
ubuntu
security
application-server
Codebeef
quelle
quelle
Antworten:
Ich kann mir keine Ubuntu-spezifischen Verbesserungen vorstellen, aber hier sind einige, die für alle Distributionen gelten:
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.
quelle
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).
quelle
Ubuntu basiert auf Debian, und ich habe festgestellt, dass das Securing Debian Manual für Debian-basierte Distributionen sehr nützlich ist, da es Sie vollständig durch Ihr System führt und alle Teile überprüft. Es ist im Grunde eine wirklich sehr umfassende Antwort auf Ihre Frage.
quelle
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.
quelle
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.
quelle
Mach was Can vorschlägt ...
Ordnen Sie den Host zu, und deaktivieren Sie alle nicht unbedingt erforderlichen Dienste. Verwenden Sie bei Bedarf iptables.
quelle
Wenn Sie mit dem Server im Internet unterwegs sind, installieren Sie ein Intrusion Detection-System wie snort.
quelle
Verwenden Sie getrennte Partitionen für verschiedene Verzeichnisse wie
/tmp
oder/var
und montieren sie mitnosuid
,nodev
und ,noexec
wenn möglich.quelle
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.
quelle
Neben anderen Vorschlägen erwähne ich hier drei, die offensichtlich sind, aber der Vollständigkeit halber vielleicht erwähnenswert sind:
quelle