ubuntuusers.de

Firewall, jedes Program überwachen?

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

ubinde

Anmeldungsdatum:
10. September 2010

Beiträge: 173

Auf windows hatte ich ein firewall Program

Das Program endeckte jedes Program, das Daten emfing oder gesendet hat.

Wahlwiese konnte man mit dem firewall bestimmen, ob ein Program Daten emfangen und auch senden dürfte. Und ob die Einstellung bleiben sollte.

Dabei habe ich herausgefunden, das mehrere Programme üder das internet kommunizierte ohne das ich es eigentlich bemerkte, oder das ich ein Grund dafür sehen konnte.

Wieso hat ubuntu nicht so einen firewall?

Die meisten Programme habe ich keine Ahnung, ob sie mit das internet kommunizieren.

Das heisst ich weiss auch nicht, wie ich ein Program internet Zugang verweigere.

Ich habe mit sudo ufw enable, firewall an. Danke.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

ubinde schrieb:

Dabei habe ich herausgefunden, das mehrere Programme üder das internet kommunizierte ohne das ich es eigentlich bemerkte, oder das ich ein Grund dafür sehen konnte.

Hast Du das in Windows oder in Ubuntu herausgefunden?

jug Team-Icon

Ehemalige
Avatar von jug

Anmeldungsdatum:
19. März 2007

Beiträge: 12335

Wohnort: Berlin

ubinde schrieb:

Das Program endeckte jedes Program, das Daten emfing oder gesendet hat.

Wahlwiese konnte man mit dem firewall bestimmen, ob ein Program Daten emfangen und auch senden dürfte. Und ob die Einstellung bleiben sollte.

Dabei habe ich herausgefunden, das mehrere Programme üder das internet kommunizierte ohne das ich es eigentlich bemerkte, oder das ich ein Grund dafür sehen konnte.

Wieso hat ubuntu nicht so einen firewall?

Weil das ziemlicher Blödsinn ist. Nehmen wir mal Ubuntu. Viele Programme sind in bestimmten Sprachen geschrieben, Python zum Beispiel. Wenn so ein Programm jetzt Daten mit dem Internet austauschen will, dann taucht bei dir nicht der Programmname auf, sondern … python. Damit das Programm also funktioniert, musst du python erlauben mit Daten ins internet zu senden und zu empfangen … und damit erlaubst du es allen Programmen, die in Python geschrieben sind.

Und falls dir das als Argument noch nicht reicht, dann lies dir mal Personal Firewalls durch, da stehen noch weitere Argumente, warum solche Software komplett unbrauchbarer Mist ist.

Die meisten Programme habe ich keine Ahnung, ob sie mit das internet kommunizieren.

Unter Linux – solange du dich in den offiziellen Paketquellen bewegst – kannst du normalerweise davon ausgehen, dass die Software nicht hinter deinem Rücken kommuniziert oder es dir durch eine konkrete Einstellung kenntlich macht, ob das passiert. Dort kannst du das meistens auch ausstellen.

~jug

ubinde

(Themenstarter)

Anmeldungsdatum:
10. September 2010

Beiträge: 173

Danke für Antworten.

lubux schrieb:

Hast Du das in Windows oder in Ubuntu herausgefunden?

In windows, in ubuntu kann man es offenbar nicht herausfinden?

jug schrieb:

Damit das Programm also funktioniert, musst du python erlauben mit Daten ins internet zu senden und zu empfangen … und damit erlaubst du es allen Programmen, die in Python geschrieben sind.

Das heisst man kann garnicht ein firewall coden, die Verbindungen von einzelen Programme kontrolieren?

jug schrieb:

Unter Linux – solange du dich in den offiziellen Paketquellen bewegst – kannst du normalerweise davon ausgehen, dass die Software nicht hinter deinem Rücken kommuniziert oder es dir durch eine konkrete Einstellung kenntlich macht, ob das passiert. Dort kannst du das meistens auch ausstellen.

Wenn Kontrolle mit firewall, wie beschrieben, nicht möglich ist, dann ist Kontrolle von Programme, die in software centre rein wollen, sehr wichtig? Und der user kan die Kontrolle bez internet Verbindungen nicht durchführen?

jug Team-Icon

Ehemalige
Avatar von jug

Anmeldungsdatum:
19. März 2007

Beiträge: 12335

Wohnort: Berlin

ubinde schrieb:

Das heisst man kann garnicht ein firewall coden, die Verbindungen von einzelen Programme kontrolieren?

Ähm, nein. Auch unter Windows kann man das nicht, auch wenn verschiedene Snake-Oil-Software das gerne vorgibt zu können.

Sagen wir es mal so: Wenn Software brav ist, dann tut sie nur das, wofür sie bestimmt ist, dann sind die Verbindungen die diese Software aufbaut dokumentiert (das heißt der Anwender wird informiert/kann sich informieren) und darüber hinaus erwünscht, weil für den Betrieb der Software notwendig. Vielleicht hat die Software auch optionale Funktionen, die eine Verbindung aufbauen – auch hier gilt wieder, dass brave Software das nur macht, wenn die Funktion tatsächlich genutzt wird, meistens lässt sich das auch in den Einstellungen deaktivieren.

Sicher kann man auch unter Linux Programme schreiben, die das irgendwie auflisten – die Frage ist halt, was man mit der Liste dann anfängt.

Dann gibt es natürlich noch Software die nicht brav ist und Dinge tut, die der Anwender nicht will … wenn die Software aber schon nicht brav ist und solche Dinge hinter dem Rücken des Anwenders tut, was stoppt solche Software dann davon, die „Firewall“ zu umgehen? Niemand kann eine Firewall programmieren, die auf dem selben Betriebssystem läuft wie die Software und die gleichzeitig 100% sicher die Verbindungen von Programmen blockieren kann. Da gibt es immer wege drum herum.

Deshalb sind echte „Firewalls“ immer eigenständige Systeme, die genau eine Aufgabe erfüllen: Netzwerkverkehr regeln. Sowas hast du üblicherweise in deinem Router.

Nun sind wir unter Linux in einer Open Source Umgebung. Wenn du hier ein Problem mit einem Programm hast, das Verbindungen aufbaut, dann gibt es Möglichkeiten. Man kann sich an den Entwickler melden. Vielleicht benimmt sich das Programm wirklich nicht wie erwünscht. Kann ein Bug sein, mindestens aber eine fehlende Einstellmöglichkeit, dann beseitigt man das Problem an der Wurzel. Oder man bekommt erklärt, warum das Programm die Verbindung genau benötigt. Es ist eher selten, dass in Open Source Software Code eingebaut wird, der keinen Zweck hat.

Am Ende bleiben drei Sorten von Programmen übrig:

  1. Programme, die sich benehmen wie sie sollen und sich nicht verbinden, weil sie keine Verbindung brauchen.

  2. Programme, die sich benehmen wie erwünscht und deshalb Verbindungen aufbauen.

  3. Programme, die schlicht einen Bug enthalten, den man beheben kann.

So, das wäre die Sofware aus den offiziellen Paketquellen, in der Regel kannst und solltest du davon ausgehen, dass diese vertrauenswürdig ist und in eine von diesen drei Kategorien fällt.

Und dann gibt es noch Software aus Fremdquellen … naja, davor warnen wir ja oft genug. Denen kann man vertrauen oder nicht – und genau das „Vertrauen“ ist der entscheidende Punkt. Denn wirklich verhindern kann man nicht, dass solche Software Dinge tut, die du nicht willst.

jug schrieb: Wenn Kontrolle mit firewall, wie beschrieben, nicht möglich ist, dann ist Kontrolle von Programme, die in software centre rein wollen, sehr wichtig?

Ja. Deshalb keine Fremdquellen verwenden, oder nur Fremdquellen, denen du vertrauen kannst (wenn es das gibt).

Und der user kan die Kontrolle bez internet Verbindungen nicht durchführen?

Nein. Du kannst mittels iptables2 den Netzwerkverkehr regulieren, aber nicht für einzelne Anwendungen, nur für Protokolle bzw. Ports … und HTTP wirst du dann ja wohl grundsätzlich erlauben.

Ich könnte meine Argumentation jetzt wiederholen, aber diese Personal Firewalls, die unter Windows immer so lustig „Ports sperren“ und Anwendungen blockieren oder „Angriffe abwehren“, die können in der Realität nicht das leisten, was sie versprechen. Wenn eine Software wirklich raus kommunizieren will, dann tut sie das auch. Und die Software die keine bösen Absichten hat, die hat meistens einen guten Grund für die Verbindungen.

Edit: Obligatorische Links: Sicherheitskonzepte, Sicherheits 1x1

~jug

chilidude

Avatar von chilidude

Anmeldungsdatum:
18. Februar 2010

Beiträge: 867

Und der user kan die Kontrolle bez internet Verbindungen nicht durchführen?

Nein. Du kannst mittels iptables2 den Netzwerkverkehr regulieren, aber nicht für einzelne Anwendungen, nur für Protokolle bzw. Ports … und HTTP wirst du dann ja wohl grundsätzlich erlauben.

Iptables kann auch die PID und GID regulieren. Insofern kannst du auch selektiv Programme von Interpretersprachen sperren. Ich habe es nicht ausprobiert aber technisch gesehen muss das gehen, denn jedes Programm einer solchen Sprache bekommt seine eigene "Kopie" des Interpreters ohne physisch doppelten Platz zu konsumieren. (Insbesondere bei Start unter einem anderen Account muss das funktionieren.)

Wenn eine Software wirklich raus kommunizieren will, dann tut sie das auch.

Das eigentlich Problem ist guten von schlechtem Datenverkehr zu unterscheiden.

Das Program endeckte jedes Program, das Daten emfing oder gesendet hat.

Was du suchst ist "nethogs", welches aber nur nach Namen und nicht nach pid auflösen kann.

Neubie

Anmeldungsdatum:
16. Oktober 2012

Beiträge: 136

jug schrieb:

Ich könnte meine Argumentation jetzt wiederholen, aber diese Personal Firewalls, die unter Windows immer so lustig „Ports sperren“ und Anwendungen blockieren oder „Angriffe abwehren“, die können in der Realität nicht das leisten, was sie versprechen. Wenn eine Software wirklich raus kommunizieren will, dann tut sie das auch.

Das kann ich nicht bestätigen. Virenschutzprogramme sind überwiegend "Snake Oil", aber nicht Firewalls. Im Gegenteil war unter Windows eine Firewall, die den ausgehenden Traffic kontrolliert, absolut unerlässlich. Wenn man dann noch den IE stillegte, hatte man sogar eine relative Sicherheit vor Trojanern etc., die sich so schließlich als neues oder verändertes Programm bemerkbar machen, das irgendwohin "telefoniert".

Wahr ist allerdings, dass viele der FWs für Windows diesen Job von Hause aus nicht tun.

Vertrauen ist gut, und da ist Ubuntu sicherlich weit vorne - aber Kontrolle ist besser. Mir fehlt sowas hier auch. Dabei scheint die Ausgangslage gar nicht so verschieden: Die W7-Firewall ist nämlich eigentlich völlig ausreichend - nur ohne 'Informatikstudium' für den Normalanwender kaum zu kontrollieren. Also in etwa wie IPtables.

Für Windows gab es da allerdings ein Frontend...

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14314

Neubie schrieb:

Mir fehlt sowas hier auch.

Das geht z. B. ganz einfach mit dnsspoof (eine Texdatei mit Umleitung der Hostnamen auf eine nicht benutzte IP-Adresse) und mit einer OUTPUT-Regel für iptables, zum blocken dieser nicht benutzten IP-Adresse:

:~$ sudo iptables -nvx -L OUTPUT 
Chain OUTPUT (policy ACCEPT 9102 packets, 443341 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
    3262   169624 REJECT     all  --  *      *       0.0.0.0/0            193.169.12.12        reject-with icmp-port-unreachable

Mit dem Zähler sieht man, dass Einiges was raus will, in ca. 5 Stunden geblockt wird. Siehe auch: http://forum.ubuntuusers.de/topic/google-analytics-per-etc-hosts-blockieren/

ubinde

(Themenstarter)

Anmeldungsdatum:
10. September 2010

Beiträge: 173

Danke für die Antworten.

jug, gute links.

Wenn man als Laie eine Frage stellt, weiss man nicht wie kompliziert die Antwort wird.

Das windows firewall nichts wert ist war mir neu. Und einig seit ihr euch nicht.

Wenn man windows benutzt hat, ist is auch schwer zu azeptieren dan kein anti virus software notwendig ist.

Ich sage wie neubie, Kontrolle wäre besser. Auch allgemein um zu sehen, welche Programme wann Verbingdung aufnimht.

Und wohl nicht jeder Virus wäre im stande ein eingebautes Firewall zu abstellen oder umgehen?

Aber ob man dem Firewall programmieren konnte, da seit Ihr euch nicht einig.

Was ein pid und gid ist, weiss ich nicht.

Und mitbekommen das iptables eine schwierige Sache ist, habe ich.

jug Team-Icon

Ehemalige
Avatar von jug

Anmeldungsdatum:
19. März 2007

Beiträge: 12335

Wohnort: Berlin

ubinde schrieb:

Ich sage wie neubie, Kontrolle wäre besser. Auch allgemein um zu sehen, welche Programme wann Verbingdung aufnimht.

Man kann sehen, welche Programme eventuell irgendwelche Ports öffnen.

sudo netstat -tulpen 

Wobei wie gesagt berücksichtigt werden muss, dass dann viele Programme halt auf 127.0.0.1 (::1 für IPv6) irgendwelche Ports öffnen und diese auch zum funktionieren benötigen. Interessant oder „bedenklich“ sind dabei nur die Verbindungen, die auf 0.0.0.0:* (:::* für IPv6) lauschen – und selbst die sind von außen nicht erreichbar, weil in den meisten Netzwerken ja ein Router zwischen LAN und Internet hängt.

Und wohl nicht jeder Virus wäre im stande ein eingebautes Firewall zu abstellen oder umgehen?

Wohl nicht jeder, aber wie gesagt, da wird dann halt ein anderes Programm genutzt, um Verbindungen aufzubauen. Die wahrscheinlichste Schadsoftware, die ich mir vorstellen könnte, wäre irgend eine Browsererweiterung. Super, dann kommuniziert die halt über den Browser mit dem Internet. Unterscheide das mal in der Firewall ob die Verbindung von einem Klick des Benutzers ausgelöst wurde, von einer Erweiterung die der Nutzer haben will oder von einer Schadsoftware …

Kann die Firewall nicht unterscheiden und kannst du wohl genauso wenig unterscheiden, wenn die Firewall meldet dein Browser will auf dem HTTP-Port raus kommunizieren. HTTP wirst du im Browser ja wohl nicht sperren. Es sei denn du schränkst dein Internet soweit ein, dass du bestimmte Server whitelistest und dann nur noch mit diesen IP-Adressen Verbindungen zulässt. Internet macht dann natürlich keinen Spaß mehr.

Aber ob man dem Firewall programmieren konnte, da seit Ihr euch nicht einig.

Oh, man kann. Sicher kann man. Ich kann dir ein Script schreiben, dass dir regelmäßig „Angriffe blockt“ und lustige Popup-Warnungen zeigt … </sarcasm> Ich kann dir auch eine Firewall schreiben, die tatsächlich das macht, was du dir vorstellst – nur ich hab weder von programmieren, noch von Computersicherheit ausreichend Ahnung um das halbwegs sauber zu machen. Das Programm wäre dann wohl anfälliger für Angriffe, als ein naktes System ohne die „Firewall“.

Und die Programmierer, die sich mit dem Thema gut genug auskennen, die sind sich darüber im Klaren, dass es wenig bringt ein unsicheres System mit Zusatzsoftware abzudichten. Jede Zusatzsoftware bedeutet mehr Code ▶ mehr Fehler/Bugs ▶ mehr Angriffsmöglichkeiten. Deshalb arbeiten die Programmierer lieber gleich am Kernel oder anderen Programmen und machen diese sicher(er).

~jug

Dominik_Schuster

Anmeldungsdatum:
19. September 2013

Beiträge: 122

Hi,

ich glaub eine Frage von dir wurde noch nicht beantwortet nämlich:

Was ein pid und gid ist, weiss ich nicht.

Eine PID auch Process ID ist eine Nummer, die auf einen laufenden Prozess verweißt

GID fasst mehrere PID's zu einer Gruppe zusammen.

Mfg,

Dominik

ubinde

(Themenstarter)

Anmeldungsdatum:
10. September 2010

Beiträge: 173

Danke.

Antworten |