Warum benötigen wir eine Firewall, wenn auf Ihren Ports keine Programme ausgeführt werden?

14

Wenn ich versuche, einen Port auf einem Server mit Telnet zu verbinden, und kein Programm auf diesem Port empfangsbereit ist, wird Telnet mit dem Fehler "Verbindung nicht möglich ..." beendet. Ich verstehe das. Aber warum brauchen wir eine Firewall, wenn kein Programm auf einem Port lauscht?

Khaja Minhajuddin
quelle
Verteidigung in der Tiefe. en.wikipedia.org/wiki/Defense_in_Depth_(computing)
Zoredache

Antworten:

31

Möglicherweise läuft gerade kein Dienst, aber wie sieht es morgen aus? Sie haben alle deaktiviert, aber was ist mit Ihren Benutzern? Jeder Benutzer eines Unix / Windows / Mac-Systems kann auf jedem Computer, auf den er Zugriff hat, einen Port> 1024 öffnen. Was ist mit Malware? Was ist mit einem Virus? Sie können auch Ports öffnen und Informationen für die Welt bereitstellen oder auf Verbindungen aus dem Netzwerk warten.

Der Hauptzweck einer Firewall besteht nicht darin, die Ports für Dienste zu blockieren, von denen Sie wissen, dass sie deaktiviert sind, sondern darin, die Ports für Dienste zu blockieren, die Sie möglicherweise nicht kennen. Stellen Sie es sich als Standardverweigerung vor , bei der nur bestimmte Lücken für von Ihnen autorisierte Dienste durchgestrichen sind. Jeder Benutzer oder jedes Programm, das von einem Benutzer gestartet wird, kann einen Server auf einem System starten, auf das er Zugriff hat. Eine Firewall verhindert, dass eine andere Person eine Verbindung zu diesem Dienst herstellt.

Ein guter Administrator weiß, welche Dienste verfügbar gemacht werden müssen, und kann sie aktivieren. Eine Firewall dient in erster Linie dazu, das Risiko unbekannter Server auf Ihrem System oder in Ihrem Netzwerk zu minimieren und die zulässigen Zugriffe auf das Netzwerk von einem zentralen Ort aus zu verwalten.

Es ist wichtig zu wissen, was auf Ihrem Computer / Server läuft, und nur das zu aktivieren, was Sie benötigen. Eine Firewall bietet jedoch zusätzlichen Schutz vor Dingen, die Sie nicht kennen.

gabe.
quelle
1
> "Jeder Benutzer oder jedes Programm, das von einem Benutzer gestartet wird, kann einen Server auf einem System starten, auf das er Zugriff hat. Eine Firewall verhindert, dass sich jemand anderes mit diesem Dienst verbindet." Aber würde dies den Service nicht unbrauchbar machen?
Khaja Minhajuddin
5
@KhajaMinhajuddin ja! Genau darum geht es. (-:
gabe.
2
@KhajaMinhajuddin Sie möchten nur Dienste, die Sie einrichten, für die ganze Welt verfügbar machen. Sie möchten nicht, dass der SMTP-Server "super_spam_virus.exe" gestartet wird, während Sie nicht nach Verbindungen von anderen infizierten Systemen suchen. Eine Firewall verhindert dies, obwohl es kein Allheilmittel ist.
gabe.
super_spam_virus.exe klingt nicht wie Unix & Linux :)
Benutzer unbekannt
@userunknown true ... wie wäre es mit a.out oder einer kompromittierten Version von / bin / ls, die auf Ihr System kopiert wurde. Oder wenn Sie ein Entwickler sind, hg serveder einen Webserver auf Ihrem Computer startet. Der Punkt ist, es ist trivial, einen Server auf einem beliebigen Computer zu starten, unabhängig davon, ob er als "Desktop" oder "Server" verwendet wird. Und wenn dieser Server einmal gestartet ist und Sie nichts davon wissen ... dann beginnt der Spaß.
gabe.
3

WENN an keinem Port ein Programm empfangsbereit ist, benötigen Sie keine Firewall. Sie können jedoch auch keine Verbindung zu Ihrem Server herstellen, da dieser vom Rest der Welt 'versiegelt' ist.

Auf der anderen Seite ... Nehmen wir an, Ihr Server hat kein lokal ausgeführtes Programm, das auf einem Port lauscht, sondern dient als Gateway für andere Computer dahinter. In diesem Fall verwenden Sie eine Firewall, um das Masquerading (NAT) zu verwalten, und optional können Sie einige Elemente bei der Paketweiterleitung filtern.

Patkos Csaba
quelle
Dies ist ein guter Punkt, aber wenn ich möchte, dass der Server Sachen macht (normalerweise würde ich openssh und einen Webserver setzen). Selbst mit einer Firewall muss ich Ports öffnen, um die laufenden Apps wie openssh und Webserver nützlich zu machen. Vermutlich frage ich also: Gibt es Programme, die der Außenwelt Ports öffnen, die von einer Firewall blockiert werden müssen und die trotzdem nützlich wären?
Khaja Minhajuddin
1
Ja, das gibt es. Ein Beispiel für einen Server ist nicht erforderlich. Nehmen wir jedoch an, dass Sie einen Linux-Computer mit X installiert haben und X auf einem Netzwerkport ausgeführt wird. Sie möchten, dass Ihr Computer, möglicherweise einige andere Computer aus dem LAN, eine Verbindung zu Ihrem X herstellen. Sie möchten jedoch nicht, dass Joe aus Frankreich eine Verbindung dazu herstellt. Ein weiteres Beispiel: Sie richten mehrere VPN-Dienste auf Ihrem Server ein und müssen steuern, welche Netzwerke andere Netzwerke sehen (oder nicht sehen) können. Angenommen, Sie haben OpenSSH, möchten aber die Verbindung nur von Ihrem Heimcomputer aus zulassen. Es gibt viele andere Beispiele.
Patkos Csaba
1
@KhajaMinhajuddin: Für ssh solltest du das verwenden /etc/ssh/sshd_config, um die Maschine zu sichern. PermitRootLoginsollte auf Nein gesetzt sein, sollten Sie ein sicheres Passwort verwenden und den Computer mit sudo verwalten (Sie können sudo verwenden, nachdem Sie sich mit einem Konto mit sudo-Berechtigungen angemeldet haben). Das Festlegen der Einschränkungen mit einer Firewall ist nur das falsche Tool für den Job. Gleiches gilt für eine postgresqlDatenbank: Verwenden Sie die Datenbankkonfiguration, um Berechtigungen festzulegen und zu widerrufen.
Benutzer unbekannt
3

Genau genommen ist es jedoch möglicherweise nicht erforderlich, zu berücksichtigen, dass eine Firewall mehr Funktionen bietet, als nur Verbindungen über Netzwerkports abzulehnen. Zum Beispiel DROP versus REJECT.

Tok
quelle
1
Was ist der Vorteil von DROP gegenüber REJECT?
Benutzer unbekannt
Ich bin mir nicht sicher, aber ich glaube, DROP antwortet einfach nicht, sodass der Anforderer nicht einmal weiß, ob die Anfrage eingegangen ist oder ob Ihr Computer existiert. REJECT sagt, du bist definitiv da und willst einfach nicht darüber reden. Und wenn sich etwas hinter einer verschlossenen Tür befindet, lohnt es sich möglicherweise, nach einem Weg zu suchen, um herauszufinden, was es wert ist, geschützt zu werden.
Joe
-5

Aber warum brauchen wir eine Firewall, wenn kein Programm auf einem Port lauscht?

Wenn Sie einen Einzelbenutzer-Desktop haben , keinen Server, benötigen Sie keine Firewall, wenn kein Dienst ausgeführt wird, wie bei einer Ubuntu-Standardinstallation.

Windows hatte einige Male, nachdem es in der Lage war, Netzwerke zu bilden, einige Dienste, die standardmäßig für Wartung, Updates, interne Nachrichtenübermittlung usw. ausgeführt wurden. Sie konnten sie nicht stoppen, ohne die Arbeit von Windows zu stoppen, aber sie waren anfällig für externe Angriffe. Die Windows-Benutzer brauchten also eine Firewall, und das Meme, dass jeder eine Firewall braucht, verbreitete sich schnell.

Als sie die Linux-Leute trafen, die oftmals Server-Administratoren waren, sagten sie nicht "Sie brauchen keine Firewall unter Linux", sondern "wir haben seit fast einem Jahrzehnt kostenlose Firewalls wie iptables".

EIN persönliche Firewall , die sich auf dem zu schützenden System befindet, ist ebenfalls nicht die beste Idee.

Auf einem Einzelbenutzer-Desktop-System benötigen Sie keine persönliche Firewall.

Benutzer unbekannt
quelle
3
Schau dir die Antwort von gabe an und überdenke. Insbesondere die Desktop-Clients sind anfällig für Angriffe.
Nils
1
@userunknown: Ein Virus kann ein Benutzer Ihres Desktops sein. Ein Daemon, den Sie installieren und der nicht konfiguriert werden kann, ist es auch.
André Paramés
1
Ich habe viele Jahre lang Sicherheitstests durchgeführt, und der Zugriff über Desktops ist ein sehr nützlicher Weg, um einen Angriff zu verbreiten. Egal ob Windows, Linux, Solaris oder was auch immer. Sperren Sie es oder verlieren Sie es an einen Angreifer. Der richtige Ausdruck sollte sein, dass Sie möglicherweise eine Firewall auf Ihrem Desktop benötigen - bewerten Sie die Risiken in Ihrer Umgebung vollständig
Rory Alsop
2
@userunknown, nur weil Sie einen Computer als verwenden, desktopbedeutet nicht, es ist nicht immer noch ein, serverdas sind nur Worte. Ihr desktophat viel serversdavon könnte möglicherweise darauf laufen, und möglicherweise sind das schon.
gabe.
1
Denken Sie an CUPS (Linux), SLPD (SuSE) und andere Dinge (KDE-remote, iSCSI-Server / -Client), die nach einem Update möglicherweise unter Linux ausgeführt werden. Auch wenn Sie vorher geprüft haben, können diese Dinge auftreten. Wenn sie es tun, ist es gut, sie zu blockieren. Übrigens - aktiviere deine Firewall über die GUI (don t allow anything) on RedHat, start CUPS and see if you can connect to it from outside. Then look at iptables-save`: Voila - der CUPS-Port ist offen, ohne in der GUI zu erscheinen ...
Nils