Sicherheit ist im Allgemeinen, wie bereits erwähnt, eine Zwiebelsache. Es gibt Gründe, warum es Firewalls gibt, und nicht nur die anderen Lemminge sind dumme Idioten.
Diese Antwort kommt, da die Suche nach 'fail2ban' auf dieser Seite keine Ergebnisse lieferte. Wenn ich also andere Inhalte verdopple, nimm sie mit. Und entschuldigen Sie, wenn ich ein bisschen herumschimpfe, gebe ich Ihnen eine einfache Erfahrung, da dies für andere nützlich sein könnte. :)
Netzwerküberlegungen, lokal oder extern
Dies ist eher Linux-spezifisch und konzentriert sich auf hostbasiertes Firewalling, was normalerweise der Anwendungsfall ist. Externes Firewalling geht Hand in Hand mit einer ordnungsgemäßen Netzwerkstruktur, und andere Sicherheitsaspekte werden normalerweise berücksichtigt. Entweder Sie wissen, was hier impliziert ist, dann werden Sie diesen Beitrag wahrscheinlich nicht benötigen. Oder du tust es nicht, dann lies einfach weiter.
Das externe und lokale Ausführen von Firewalls kann kontraintuitiv und doppelte Arbeit sein. Dies gibt aber auch die Möglichkeit, die Regeln auf die externe umzudrehen, ohne die Sicherheit aller anderen dahinter stehenden Hosts zu gefährden. Die Notwendigkeit könnte entweder aus Debugging-Gründen oder weil jemand einfach Mist gebaut hat. Ein weiterer Anwendungsfall wird dort im Abschnitt "Adaptive Global Firewalling" beschrieben, für den Sie auch sowohl globale als auch lokale Firewalls benötigen.
Kosten und Verfügbarkeit und immer die gleiche Geschichte:
Firewalling ist nur ein Aspekt eines ordnungsgemäßen gesicherten Systems. Keine Firewall zu installieren, da dies Geld kostet, einen SPOF einführt oder was auch immer nur Blödsinn ist, verzeihen Sie mein Französisch hier. Richten Sie einfach einen Cluster ein. Oh, aber was ist, wenn die Feuerzelle einen Ausfall hat? Richten Sie dann Ihren Cluster so ein, dass er sich über zwei oder mehr Brandabschnitte erstreckt.
Aber was ist, wenn das gesamte Rechenzentrum nicht erreichbar ist, da beide externen Netzbetreiber nicht in Betrieb sind (Bagger hat Ihre Glasfaser zerstört)? Machen Sie Ihren Cluster dann einfach so, dass er sich über mehrere Rechenzentren erstreckt.
Das ist teuer? Cluster sind zu komplex? Nun, Paranoia muss bezahlt werden.
Nur über SPOFs zu jammern, aber nicht mehr Geld bezahlen zu wollen oder etwas komplexere Setups zu erstellen, ist ein klarer Fall von Doppelmoral oder nur einer kleinen Geldbörse auf Firmen- oder Kundenseite.
Dieses Muster gilt für ALLE diese Diskussionen, unabhängig davon, welcher Dienst der aktuelle Tagesordnungspunkt ist. Egal, ob es sich um ein VPN-Gateway handelt, einen Cisco-ASA, der nur für das Firewalling verwendet wird, eine MySQL- oder PostgreSQL-Datenbank, ein virtuelles System oder Serverhardware, ein Speicher-Backend, Switches / Router usw.
Inzwischen sollten Sie auf die Idee kommen.
Warum sich mit Firewalling beschäftigen?
In der Theorie ist Ihre Argumentation vernünftig. (Nur laufende Dienste können ausgenutzt werden.)
Das ist aber nur die halbe Wahrheit. Firewalling, insbesondere Stateful Firewalling, kann viel mehr für Sie tun. Zustandslose Firewalls sind nur wichtig, wenn Leistungsprobleme auftreten, wie sie bereits erwähnt wurden.
Einfache, zentrale und diskrete Zugangskontrolle
Sie haben TCP - Wrapper erwähnt, die im Grunde die gleiche Funktionalität für die Sicherung Ihres Netzwerks implementieren. Nehmen wir an, jemand kennt tcpd
und mag die Verwendung einer Maus nicht. fwbuilder
könnte in den Sinn kommen.
Der vollständige Zugriff über Ihr Verwaltungsnetzwerk sollte aktiviert sein. Dies ist einer der ersten Anwendungsfälle Ihrer hostbasierten Firewall.
Wie wäre es mit einem Multi-Server-Setup, bei dem die Datenbank an einem anderen Ort ausgeführt wird und Sie aus irgendeinem Grund nicht beide / alle Computer in einem gemeinsam genutzten (privaten) Subnetz platzieren können? Verwenden Sie die Firewall, um MySQL-Zugriff auf Port 3306 nur für die einzelne angegebene IP-Adresse des anderen Servers zuzulassen.
Und das funktioniert auch bei UDP einwandfrei. Oder welches Protokoll auch immer. Firewalls können so verdammt flexibel sein. ;)
Portscan-Minderung
Durch Firewalling können außerdem allgemeine Portscans erkannt und reduziert werden, da die Anzahl der Verbindungen pro Zeitspanne über den Kernel und dessen Netzwerkstapel überwacht werden kann und die Firewall darauf reagieren kann.
Auch ungültige oder undurchsichtige Pakete können behandelt werden, bevor sie jemals Ihre Anwendung erreichen.
Beschränkung des ausgehenden Datenverkehrs
Das Filtern von ausgehendem Datenverkehr ist normalerweise ein Problem. Aber es kann ein Muss sein, je nach Vertrag.
Statistiken
Eine andere Sache, die eine Firewall Ihnen geben kann, ist die Statistik. (Denken Sie daran, watch -n1 -d iptables -vnxL INPUT
dass Sie oben einige Regeln für spezielle IP-Adressen hinzugefügt haben, um zu sehen, ob Pakete durchkommen.)
Sie können bei Tageslicht sehen, ob Dinge funktionieren oder nicht. Dies ist SEHR nützlich, wenn Sie Probleme mit Verbindungen beheben und der anderen Person am Telefon mitteilen möchten, dass Sie keine Pakete erhalten, ohne auf Chattys zurückgreifen zu müssen tcpdump
. Networking macht Spaß, die meisten Leute wissen erst jetzt, was sie tun, und oft sind es nur einfache Routing-Fehler. Zur Hölle, auch ich weiß nicht immer, was ich tue. Obwohl ich buchstäblich mit Dutzenden komplexer Systeme und Geräte gearbeitet habe, habe ich inzwischen oft auch mit Tunnelbau gearbeitet.
IDS / IPS
Layer7-Firewalling ist in der Regel Snake-Oil (IPS / IDS), wenn es nicht ordnungsgemäß gewartet und regelmäßig aktualisiert wird. Außerdem sind die Lizenzen verdammt teuer, also würde ich es mir sparen, eine zu kaufen, wenn Sie nicht wirklich alles brauchen, was Sie für Geld kaufen können.
Masqerading
Ganz einfach, probieren Sie dies einfach mit Ihren Wrappern aus. : D
Lokale Portweiterleitung
Siehe Maskerade.
Sichern von Passwortzugriffskanälen mit dynamischen IP-Adressen
Was ist, wenn Kunden dynamische IP-Adressen haben und kein VPN-Setup implementiert ist? Oder andere dynamische Ansätze für das Firewalling? Dies ist bereits in der Frage angedeutet, und hier wird ein Anwendungsfall für die Leider kann ich keine Firewalls finden, die das tun. Teil.
Das Deaktivieren des Root-Kontos über ein Passwort ist ein Muss. Auch wenn der Zugriff auf bestimmte IP-Adressen beschränkt ist.
Außerdem ist es sehr praktisch, immer noch ein Blanko-Konto mit einem Passwort-Login zu haben, wenn SSH-Schlüssel verloren gehen oder die Bereitstellung fehlschlägt, wenn etwas wirklich schief geht (ein Benutzer hat Administratorzugriff auf den Computer und "Dinge sind passiert"?). Es ist die gleiche Idee für den Netzwerkzugriff, wie für den Einzelbenutzermodus unter Linux oder die Verwendung von init=/bin/bash
via grub
für den lokalen Zugriff, und es kann aus irgendeinem Grund keine Live-Festplatte verwendet werden. Nicht lachen, es gibt Virtualisierungsprodukte, die das verbieten. Was passiert, wenn eine veraltete Softwareversion ausgeführt wird, der die Funktionalität fehlt, auch wenn die Funktionalität vorhanden ist?
Selbst wenn Sie Ihren ssh-Daemon auf einem esoterischen Port ausführen und nicht auf 22, und wenn Sie Dinge wie Port-Knocking nicht implementiert haben (um sogar einen anderen Port zu öffnen und so Port-Scans zu mildern, die langsam an die Grenze zu unpraktisch gehen), werden Ihre Port-Scans dies erkennen Service schließlich.
In der Regel richten Sie aus Effizienzgründen auch alle Server mit derselben Konfiguration und denselben Ports und Diensten ein. Sie können ssh nicht auf jedem Rechner auf einen anderen Port einstellen. Sie können es auch nicht jedes Mal auf allen Computern ändern, wenn Sie es als "öffentliche" Information ansehen, da es sich bereits um eine Überprüfung handelt. Die Frage, nmap
ob Sie legal sind oder nicht, ist kein Problem, wenn Sie über eine gehackte WLAN-Verbindung verfügen.
Wenn dieses Konto nicht den Namen "root" trägt, können andere Benutzer möglicherweise den Namen Ihres Benutzerkontos für Ihre "Hintertür" nicht erraten. Aber sie werden wissen, ob sie einen anderen Server von Ihrem Unternehmen erhalten oder einfach nur einen Webspace kaufen und einen ungestörten / ungestörten / nicht gestörten Blick auf sich werfen /etc/passwd
.
Zur rein theoretischen Veranschaulichung könnten sie dort eine hackbare Website verwenden, um Zugriff auf Ihren Server zu erhalten und nachzuschlagen, wie die Dinge normalerweise bei Ihnen laufen. Ihre Hack-Such-Tools werden möglicherweise nicht rund um die Uhr ausgeführt (normalerweise nachts aus Gründen der Datenträgerleistung für die Dateisystem-Scans?) Und Ihre Virenscanner werden nicht aktualisiert, sobald ein neuer Zero-Day das Licht der Welt erblickt Sie können diese Ereignisse nicht sofort erkennen, und ohne andere Schutzmaßnahmen wissen Sie möglicherweise gar nicht, was passiert ist. Um zur Realität zurückzukehren: Wenn jemand Zugriff auf Zero-Day-Exploits hat, ist es sehr wahrscheinlich, dass er Ihre Server sowieso nicht als Ziel auswählt, da diese nur teuer sind. Dies dient nur der Veranschaulichung, dass es immer einen Weg in ein System gibt, wenn der Bedarf entsteht.
Aber zum Thema nochmal, benutze einfach kein extra passwortgeschütztes Konto und kümmere dich nicht darum? Bitte lesen Sie weiter.
Selbst wenn Angreifer den Namen und den Port dieses zusätzlichen Kontos abrufen, werden sie durch eine fail2ban
+ iptables
-Kombination gestoppt, selbst wenn Sie nur ein aus acht Buchstaben bestehendes Kennwort verwendet haben. Darüber hinaus kann fail2ban auch für andere Dienste implementiert werden, was den Überwachungshorizont erweitert!
Für Ihre eigenen Dienste, falls jemals ein Bedarf aufgetreten ist: Grundsätzlich kann jeder Fehler bei der Dienstprotokollierung in einer Datei durch die Bereitstellung einer Datei, der passenden Regex und der zulässigen Anzahl von Fehlern durch fail2ban unterstützt werden, und die Firewall sperrt einfach jede IP-Adresse wird gesagt.
Ich rate nicht zur Verwendung von 8-stelligen Passwörtern! Wenn sie jedoch 24 Stunden lang für fünf Versuche mit falschen Passwörtern gesperrt werden, können Sie sich vorstellen, wie lange sie versuchen müssen, wenn ihnen trotz dieser miesen Sicherheit kein Botnetz zur Verfügung steht. Und Sie werden erstaunt sein, für welche Passwörter Kunden normalerweise nicht nur verwenden ssh
. Wenn Sie sich die E-Mail-Passwörter der Leute über Plesk ansehen , erfahren Sie alles, was Sie lieber nicht wissen möchten, wenn Sie es jemals tun würden, aber was ich hier natürlich nicht implizieren möchte. :)
Adaptives globales Firewalling
fail2ban
ist nur eine Anwendung, die etwas in der Art von verwendet iptables -I <chain_name> 1 -s <IP> -j DROP
, aber Sie können solche Dinge mit etwas Bash-Magie ziemlich schnell selbst erstellen.
Um so etwas weiter zu erweitern, aggregieren Sie alle fail2ban-IP-Adressen von Servern in Ihrem Netzwerk auf einem zusätzlichen Server, der alle Listen zusammenstellt und diese wiederum an Ihre Kernfirewalls weiterleitet, die den gesamten Datenverkehr blockieren, der sich bereits am Rand Ihres Netzwerks befindet.
Solche Funktionen können nicht verkauft werden (natürlich, aber es wird nur ein sprödes System sein und saugen), sondern müssen in Ihre Infrastruktur verwoben werden.
Währenddessen können Sie auch Blacklist-IP-Adressen oder Listen aus anderen Quellen verwenden, sei es von Ihnen selbst oder von externen Quellen.