Warum brauche ich eine Firewall, wenn mein Server gut konfiguriert ist?


59

Ich verwalte eine Handvoll Cloud-basierter (VPS) Server für das Unternehmen, für das ich arbeite.

Bei den Servern handelt es sich um minimale Ubuntu-Installationen, bei denen Bits der LAMP-Stapel / eingehenden Datenerfassung (rsync) ausgeführt werden. Die Daten sind groß, aber nicht persönlich, finanziell oder ähnliches (dh nicht so interessant)

Offensichtlich fragen die Leute hier immer wieder nach der Konfiguration von Firewalls und dergleichen.

Ich verwende eine Reihe von Ansätzen, um beispielsweise die Server zu sichern (aber nicht darauf beschränkt)

  • ssh auf nicht standard Ports; Keine Passworteingabe, nur bekannte SSH - Schlüssel von bekannten IPS für die Anmeldung usw
  • https und eingeschränkte Shells (rssh) im Allgemeinen nur von bekannten Schlüsseln / ips
  • Die Server sind minimal, auf dem neuesten Stand und werden regelmäßig gepatcht
  • Verwenden Sie Dinge wie Rkhunter, Cfengine, Lynis Denyhosts usw. für die Überwachung

Ich habe umfangreiche Erfahrung mit Unix Sys Admin. Ich bin zuversichtlich, dass ich weiß, was ich in meinen Setups mache. Ich konfiguriere / etc Dateien. Ich hatte noch nie das dringende Bedürfnis, Dinge wie Firewalls zu installieren: Iptables usw.

Stellen Sie für einen Moment die Fragen der physischen Sicherheit des VPS beiseite.

Q? Ich kann mich nicht entscheiden, ob ich naiv bin oder ob der inkrementelle Schutz, den eine fw bietet, den Lern- / Installationsaufwand und die zusätzliche Komplexität (Pakete, Konfigurationsdateien, mögliche Unterstützung usw.) auf den Servern wert ist.

Bisher (touch wood) hatte ich noch nie Probleme mit der Sicherheit, aber ich bin auch nicht selbstgefällig.



Sie sollten es unter security.stackexchange.com
AviD

6
Geben Sie mir Ihre IP-Adresse und ich werde Ihnen zeigen , warum Sie eine Firewall benötigen.
GregD

Antworten:


87

Ich stelle fest, dass Sie eine großartige Arbeit geleistet haben, indem Sie mehrere verschiedene Dämonen zusammengebunden haben, und nach Ihren Angaben halte ich es für unwahrscheinlich, dass Sie sich durch die Dienste, die Sie bereits gesichert haben, Problemen aussetzen. Dies lässt Sie immer noch in einem "alles ist erlaubt, außer dem, was ich verboten habe" -Zustand, und Sie können diesen Zustand nicht verlassen, indem Sie Dämon für Dämon jagen und sie nacheinander sichern.

Eine Firewall, die standardmäßig auf DENY ANY ANY konfiguriert ist, versetzt Sie in den Betriebsmodus "Alles ist verboten, außer dem, was erlaubt ist", und ich habe über viele Jahre festgestellt, dass sie besser sind.

Derzeit kann eine legitime Benutzerin mit einer legitimen Shell auf Ihrem System entscheiden, einen lokalen nichtprivilegierten Dämon für die Weiterleitung von Webanforderungen für das Internet auszuführen oder die Dateifreigabe auf Port 4662 zu starten oder versehentlich einen Listener mit -g zu öffnen mit SSH-Port-Tunneling, nicht zu verstehen, was es tut; oder eine sendmail-Installation kann dazu führen, dass Sie eine MUA auf Port 587 ausführen, die trotz aller Arbeit, die Sie beim Sichern der MTA-sendail auf Port 25 geleistet haben, nicht ordnungsgemäß konfiguriert wurde. oder es könnten einhundertdrei Dinge passieren, die Ihre sorgfältige und nachdenkliche Sicherheit umgehen, einfach weil sie nicht da waren, als Sie sorgfältig darüber nachdachten, was Sie verbieten sollten.

Verstehst du meinen Standpunkt? Im Moment haben Sie große Anstrengungen unternommen, um all die Dinge zu sichern, über die Sie Bescheid wissen, und es hört sich so an, als würden sie Sie nicht beißen. Was dich beißen mag, sind die Dinge, die du nicht kennst oder die noch nicht einmal da sind.

Eine Firewall, deren Standardeinstellung DENY ANY ANY ist, ist die sysadmin-Methode, die besagt, dass, wenn etwas Neues auftaucht und einen Netzwerk-Listener auf diesem Server öffnet, niemand mit ihm sprechen kann, bis ich die ausdrückliche Erlaubnis erteilt habe .


Das ist eine sehr aufschlussreiche Antwort, insbesondere der Text über das Umblättern von "Alles ist erlaubt ..." zu "Alles ist verboten ...". Wie so oft - da sind Sie sich sicher einig - ist die Gefahr oft "drinnen"
Aitch

12
(Aitch, wenn ich ein bisschen davon ausgehen darf, weist Ihr Profil darauf hin, dass Sie neu bei Serverfault sind. Die lokale Etikette lautet, dass Sie, wenn Sie mit einer Antwort zufrieden sind, diese akzeptieren, indem Sie auf den Umriss des Häkchens klicken, wenn der Speicher belegt wird. Wenn Sie dies bereits wissen oder abwarten, ob andere, bessere Antworten auftauchen, dann ist das auch sehr richtig und richtig, und ignorieren Sie mich bitte. Die Community fragt das nur einmal Sie sind mit einer Antwort auf Ihre Frage voll und ganz zufrieden, Sie akzeptieren sie.)
MadHatter

+1 @MatHatter - eine gute Beschreibung, wie Firewalls standardmäßig Sicherheit bieten können, anstatt eine Auswahl zu treffen.
Coops

Es ist ein kalkuliertes Risiko. Zumindest unter OpenBSD, wenn pf aktiviert ist, werden im Kernel 35K Codezeilen hinzugefügt, die möglicherweise Fehler enthalten. Auf der anderen Seite ist eine Standardverweigerung - und eine ordnungsgemäße Protokollierungsfirewall - die beste IDS, die man für Geld kaufen kann. Hören Sie auf, Snort zu verwenden, um nach schlechten Dingen zu suchen: Jedes Mal, wenn einer Ihrer Computer etwas tut, das Sie nicht ausdrücklich zugelassen haben, sollten Sie benachrichtigt werden.
Alex Holst

14

Grundsatz des geringsten Privilegs. Eine Firewall hilft Ihnen, dorthin zu gelangen. Prinzip der Verteidigung im Detail. Eine Firewall hilft Ihnen auch, dorthin zu gelangen. Jede gut gestaltete Konfiguration stützt sich explizit auf die eine oder andere Weise auf diese beiden.

Zum anderen handelt es sich bei Ihren Servern höchstwahrscheinlich um Standardhardware oder um Hardware, die speziell für die Verarbeitung von Serversoftware auf einem Standardserverbetriebssystem (Unix, NT, Linux) entwickelt wurde. Das heißt, sie verfügen nicht über spezielle Hardware, um eingehenden Datenverkehr effizient zu verarbeiten und zu filtern. Möchten Sie, dass Ihr Server jeden einzelnen möglichen Multicast-, ICMP-Paket- oder Port-Scan verarbeitet?

Höchstwahrscheinlich möchten Sie, dass Ihre Server Anfragen nur an einige Ports (80, 443, Ihren SSL-Port, Ihren typischen Oracle 1521-Port, Ihren RSYNC-Port usw.) physisch bearbeiten. Ja, natürlich richten Sie auf Ihrem Server Software-Firewalls ein Server, um nur diese Ports abzuhören. Ihre NICs werden jedoch weiterhin die Hauptlast des unerwünschten Datenverkehrs tragen (ob bösartig oder normal in Ihrem Unternehmen). Wenn Ihre NICs überlastet werden, werden auch die Netzwerkpfade über Ihre Server (und möglicherweise zwischen Ihren Servern und internen Clients und Verbindungen zu Servern) übertragen andere interne Server und Dienste.)

Ihre Netzwerkkarten werden nicht nur beschädigt, sondern Ihre Software-Firewall wird auch aktiviert, da sie jedes einzelne Paket oder Datagramm überprüfen muss, das sie erhält.

Firewalls hingegen, insbesondere solche an den Rändern von Subnetzen (oder die Trennung Ihrer Subnetze von der Außenwelt), sind in der Regel Spezialhardware, die speziell für die Verarbeitung dieses Volumentyps entwickelt wurde.

Sie können N Server mit M Firewalls (mit N >> M) umgeben. Und Sie stellen Ihre Firewall-Hardware so ein, dass alle Daten gesichert werden, die nicht auf bestimmte Ports gerichtet sind. Port-Scans, ICMPs und sonstiger Mist sind raus. Anschließend passen Sie die Software-Firewall in Ihren Servern an die jeweilige Funktion an.

Jetzt haben Sie die Wahrscheinlichkeit eines vollständigen Stromausfalls reduziert (aber nicht beseitigt) und ihn schlimmstenfalls auf eine Aufteilung des Netzwerks oder einen teilweisen Ausfall reduziert. Auf diese Weise haben Sie die Fähigkeit Ihrer Systeme erhöht, einen Angriff oder eine Fehlkonfiguration zu überstehen.

Wenn Sie keine Firewall haben, weil Ihre Server eine haben, fühlen Sie sich sicher, wenn Sie den Sicherheitsgurt angelegt haben, während Sie mit 120 Meilen pro Stunde bei Nullsicht wegen Nebel fahren. So funktioniert das nicht.


4

Es gibt viele Angriffe, die Sie möglicherweise ausführen könnten, wenn Sie keine Firewall haben, die eine Art Paketebenenprüfung durchführt:

Beispiel ist das Weihnachtsbaumpaket

http://en.wikipedia.org/wiki/Christmas_tree_packet

DDOS-Angriffe könnten auf Ihrem System ausgeführt werden. Eine Firewall (möglicherweise vor einem Ihrer Server extern) würde den Datenverkehr stoppen / verlangsamen / beenden, bevor er Ihre Server lahmlegt.

Nur weil Sie keine finanziellen oder persönlichen Daten auf den Servern haben, bedeutet dies nicht, dass Sie nicht "verletzt" werden. Ich bin mir sicher, dass Sie für Bandbreite oder CPU-Auslastung zahlen oder eine gemessene Rate haben. Stellen Sie sich vor, im Laufe einer Nacht (während Sie schlafen) läuft jemand auf Ihrem Zähler hoch (ich habe gesehen, dass dies bei VOIP-Switch-Anbietern passiert, die in der Nacht für MILLIONEN MINUTEN Verkehr getroffen wurden, für die sie die Rechnung bezahlen müssen).

Seien Sie also schlau und nutzen Sie den Schutz, wenn er vorhanden ist. Sie sind NICHT PERFEKT, und Software ist es auch nicht. Es ist nur so lange sicher, bis der nächste Exploit gefunden wurde. ;)


2

Wenn Sie ein Prinzip mit den geringsten Rechten erzwingen können, ohne eine Firewall zu verwenden, benötigen Sie es wahrscheinlich nicht. Aus meiner Sicht erfordert der Aufbau eines sicheren Systems ohne Verwendung einer Firewall mehr Aufwand, und ich bin ziemlich faul. Warum sollte ich mir die Mühe machen, TCP-Verbindungen mithilfe anderer Tools und wahrscheinlich vieler Konfigurationsdateien einzuschränken, wenn ich Berechtigungen auf einer Transportebene mithilfe einer einzigen Konfiguration trennen kann?


1
Guter Punkt über die einzelne Konfiguration, weniger Raum für Fehler. Ich bin damit einverstanden, wo immer möglich faul zu sein! cfengine nimmt mir einen Teil dieser Komplexität ab und verringert teilweise das Problem vieler Konfigurationsdateien .... aber ... es ist natürlich nur so gut wie die Regeln, die geschrieben wurden. Daher lassen Sie die meisten Konfigurationsdateien als sekundäre Barriere auf "Standard" (oder in der Nähe von "as") und haben die Firewall (zumindest in Bezug auf die Ebene) als primäres Anliegen.
Aitch

2
Ich habe mich zuerst für PoLP entschieden, dann für Faulheit. Firewalls sind keine Tools, die es ihren Besitzern ermöglichen, schlampig zu sein. Sie sollten sich die Mühe machen, die Angriffsfläche zu straffen, denn wenn der Angreifer durch die Firewall geht (nachdem Sie etwas geöffnet haben müssen), kann er iptables einfach ausschalten. Wenden Sie Ihre Faulheit dort an, wo sie hingehört: Machen Sie das System so schlupffrei wie möglich, damit Sie es nicht lange reparieren müssen.
Marcin

@Marcin Ich meine, wenn jemand ein System ohne Firewall sichern möchte, muss er zuerst ein umfassendes Bedrohungsmodell erstellen. Firewalls implizieren eine Art bekanntes und beschriebenes Bedrohungsmodell, sodass ich es nicht für jeden Host von Grund auf neu erstellen muss. Wenn wir von einer militärischen Sicherheit sprechen, gibt es natürlich keine andere Wahl, als ein formelles Bedrohungsmodell zu entwickeln.
Alex

1

Eine Firewall kann auch unerwünschte Pakete abfangen, die Ihre Server nicht erreichen. Anstatt sie auf der Ebene der einzelnen Server zu bearbeiten, können Sie sie auch an der Firewall bearbeiten. Sie können die gesamte Konfigurationsaktivität auf der einzelnen Firewall anstatt auf mehreren Servern speichern.

Wenn ein Angreifer beispielsweise die Kontrolle über eine externe IP-Adresse erlangt hat und Ihre Server mit unerwünschten Paketen überhäuft und Sie die Auswirkungen auf Ihre Server abschwächen möchten, können Sie jeden der betroffenen Server so konfigurieren, dass die böswilligen Pakete verworfen werden oder nehmen Sie die Änderung einfach an Ihrer Firewall vor und alle Ihre Server sind geschützt. Die Firewall hat Ihre Reaktionszeit verkürzt.


Außerdem wird auf diese Weise ohnehin eine Firewall konfiguriert, die sich zufällig auf jedem Server befindet.
mfinni

1

Sie oder eine andere Person könnten eines Tages einen Fehler in Ihrem Server-Setup machen. Eine Firewall gibt Ihnen dann eine zweite Chance, jemanden daran zu hindern, einzusteigen. Wir sind nicht perfekt, machen Fehler, und daher kann sich ein bisschen "unnötige" Versicherung lohnen .

(Versuchen Sie, Ihre Firewall nicht auf demselben Betriebssystem wie Ihre Server zu betreiben , da sonst ein einzelner Fehler im Betriebssystem auftritt. Ich betrachte alle Versionen von Unix als dasselbe Betriebssystem, da sie so viele Gemeinsamkeiten haben.)


Ausgezeichnet, das Mischen von Plattformen (Betriebssystem und Hardware) ist der Schlüssel.
DutchUncle

1

Firewalls sind bei der Manipulation des Datenverkehrs besonders kritisch. Sie machen es schnell und haben Ressourcen. Und Sie verschwenden keine Serverressourcen, um den Datenverkehr zu filtern (Festplatten-Io / Proc-Zeit / usw.). Sie sollten einige Sicherheitsmaßnahmen in der Serverumgebung konfigurieren, aber alle Datenverkehrsüberprüfungen und Virenprüfungen usw. sollten auf spezialisierte Server angewendet werden.


-2

Ich würde mir Sorgen machen, wenn Sie jemals gehackt werden und keine Firewall installiert haben. Die Hacker könnten andere Ports auf Ihren Servern öffnen. Wenn ein Berater hinzugezogen wird, um eine Bereinigung und Prüfung durchzuführen, wird er als Erstes sagen: "WAS?!?! Sie haben keine Firewall!" Dann könntest du verbrannt werden.


-1 Eine etwas sensationelle Antwort + nicht wirklich konstruktiv.
Coops

2
Wenn der Server kompromittiert ist, hilft eine Firewall nicht unbedingt, wenn das eingebrochene Bozo es einfach deaktiviert! * Haftungsausschluss, die Frage erwähnte die Verwendung von Iptables, keine separate Hardware-Firewall.
Bryan
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.