PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firewall, Alles verbieten außer für bestimmte Programme?



CenNoob
21.03.18, 13:58
Bin Linux noob / Windows Umsteiger und nutze Centos 7.x. Dies nutzt FirewallD / Iptables.
Ich möchte das bei einem User alle Verbindungen verboten sind. Außer zwei Programme (Firefox und Jaxx). Kann mir bitte jemand erklären wie ich das umsetzen kann?

Danke!

fork
21.03.18, 14:26
Du möchtest also auf einem Rechner einem bestimmten Benutzer mit bestimmten Programmen die Netzwerkkommunikation verbieten?

Unter Linux gibt es dazu Paketfilter. Diese Arbeiten nicht auf der Basis von Benutzern oder Programmen, sondern grundsätzlich für alle Benutzer und alle Programme auf dem gleichen Rechner.

Ein Programm, dass das tut, was Du Dir vorstellst ist mir nicht bekannt.

CenNoob
21.03.18, 14:50
Es soll wohl schon Programme geben wie z.B. ShoreWall und opensnitch. Aber das scheint auch nicht ganz das richtige zu sein.
Die Iptables Firewall läuft ja bei mir. Es soll da Möglichkeiten über den Owner-Match geben. Aber ich als noob verstehe das nicht ganz und weiß auch nicht ob das mein System genügend sichert.
Es soll auch Möglichkeiten geben das Interface für bestimmte user zu sperren.
Mein Ziel ist es, alle Verbindungen zu verbieten nur bestimmte Anwendungen wie z.B. Firefox dürfen verbinden.


Bei Windows ist es übrigens ganz normal das eine Firewall den Programmen den Zugriff auf das Internet gewährt bzw. verbietet. Komisch das dies bei Linux so fremd ist.

Dukel
21.03.18, 15:21
Es sind halt unterschiedliche Ansätze / philosophien.

Wieso sollten andere Tools nicht auf das Internet zugreifen dürfen? Unter Windows ist der default für ausgehende Verbindungen so, dass alles erlaubt ist, was nicht verboten ist. Nur für eingehende Verbindungen ist es anderst herum.

corresponder
21.03.18, 15:35
unter Linux ist es doch ganz einfach, solange du keinen port lauschen lässt,
gibt es keinen erfolgreichen zugriff ;-)

ist imho eher die aufgabe des router bzw. der externen firewall, u.a.

fork
21.03.18, 15:37
Es sind halt unterschiedliche Ansätze / Philosophien.

Es ist IMO einfach so, dass es gewisse Dinge unter Linux so nicht gibt, weil sich z. B. da kaum jemand dafür interessiert. Desktopfirewalls würde ich mal klar in den Bereich einsortieren.

Und Owner-Match und Konsorten: Ja. Da gibt's irgendwie dies oder jenes. Aber Spass macht das nicht und wirklich angenehm benutzbar ist das nicht. Und ob man das als unerfahrener Nutzer überhaupt hinbekommt, wage ich zu bezweifeln.

Ich würde das auch nicht in der Kategorie "Sicherheit" sehen, sondern eher "Einschränkung von Benutzerrechten", wofür es ja mitunter auch legitime Gründe geben mag.

Ein anderer Grund für Desktopfirewalls unter Windows sind ja Programme, die nicht im Sinne des Benutzers nach aussen Kommunikationsverbindungen aufbauen, welche man dann unterbinden möchte.

Wenn man sich bei Linux an getestete Pakete aus sicheren Quellen hält - z. B. nur Pakete aus dem von der Distribution mitgelieferten Internetarchiven, was in fast allen Fällen ein gigantisches Softwarearchiv ist und mehr als ausreichend, dann ist das eine andere Situation. Diese Pakete sind üblicherweise getestet und würden gar nicht aufgenommen werden, wenn die Hersteller nicht verstrauenswürdig wären. "Getestet" bzw. "vertrauenswürdig" natürlich auch in unterschiedlichem Mass. D. h. grundsätzlich ist die Problematik, dass man sich mit Malware-verseuchten Programmen rumschlagen muss eher stark reduziert. Ein Grund weniger für Desktopfirewalls.

CenNoob
21.03.18, 15:44
unter Linux ist es doch ganz einfach, solange du keinen port lauschen lässt,
gibt es keinen erfolgreichen zugriff ;-)
Um mit dem Firefox im Internet zu surfen muss ich ja ports öffnen. Dann kommt Email, ssh usw dazu. Und über diese Ports könnten dann auch angriffe statt finden. Und das möchte ich verhindern.


Was Linux betrifft habt ihr sicherlich alle recht. Ist für mich als Windows Umsteiger halt erst mal ungewohnt und schwierig zu verstehen.

Vielleicht habe ich einfach die falsche Denkweise.

Was möchte ich eigentlich:
Ich möchte mir ein sicheres Linux einrichten um darauf meine Wallet für Kryptowährungen einzurichten.
Es sollen absolut keine Verbindungen nach außen oder auch von außen nach innen stattfinden damit die Wallet nicht geklaut/gehackt werden kann.
Nur wenn ich eine Internetverbindung herstelle, soll die Wallet und ggf. der Internetbrowser Firefox kommunizieren dürfen. Es soll aber wie gesagt trotzdem sicher sein, dass die Wallet nicht geklaut/gehackt wird.

Dazu habe ich mich für eine minimal Installation von CentOs entschieden. Und habe bereits ein paar Unnötige Dienste deaktiviert.

Vielleicht habt ihr ein paar Tipps wie ich weiter vorgehen kann um mein Ziel zu erreichen.
Danke.

fork
21.03.18, 16:23
Mit dem Browser ist schon mal die grösste Sicherheitsrisiko überhaupt auf dem System installiert, was sich per Firewall nicht absichern lässt. Und das gilt jetzt für jedes Betriebssystem.

Aber Du kannst die Sicherheit beim Browserbetrieb verbessern:


Den Browser nicht für Alltagssurfern verwenden und alles an potentiell gefährlichen Webseiten auf diesem System nicht ansurfen
Funktionalität einschränken(Als absoluter Anfang: Kein Java, Kein Flash)
Weitere Einschränkungen von JavaScript durch z. B. Firefox-Erweiterungen NoScript, Adblock


Um wie viele Millionen von EUR an Kryptogeld-Transaktionen geht es denn auf dem System? (Ich mach mein Internetbanking auf einer normalen Linuxworkstation). Oder bereitest Du Dich bereits für den zukünftigen Kryptogeldregen vor, den Du erwartest, wenn Du Deinen PC jetzt 24/7 anlässt um Kryptogeld zu errechnen? :D

marce
21.03.18, 17:11
Um mit dem Firefox im Internet zu surfen muss ich ja ports öffnen. Dann kommt Email, ssh usw dazu. Und über diese Ports könnten dann auch angriffe statt finden. Und das möchte ich verhindern.
Ja, aber ausgehende Ports - über die kann per se erst mal kein Angriff auf das System selbst statt finden.

Solange Du auf dem System selbst keine Dienste anbietest (und die aus dem Internet erreichbar machst) brauchst Du Dir wegen ext. Angriffe keine Sorgen zu machen - zudem ja da noch meist die Firewall des Routers dazwischen steht.

Wenn Du natürlich auf p0Rn oder w4r3$ herumsurfst kannst Du dir natürlich evtl. was einfangen - das hat mit der Firewall aber erst mal nichts zu tun sondern mit Deinem persönlichen Sicherheitsverhalten bei der Internetbedienung.

CenNoob
21.03.18, 17:49
Es geht hier nicht um viel Geld.... Bis jetzt xD
Derzeit habe ich Centos als extra Partition auf meinem Windows Rechner. Es braucht halt seine Zeit zum kompletten Umstieg auf Linux. Die Partition ist verschlüsselt.
Der Rechner läuft zwar viel, derzeit in Windows. Der Zugriff auf Linux ist aber ausgeschlossen wegen der Verschlüsselung.
In Centos boote ich nur wenn ich mit der wallet arbeite. Ein Browser ist nötig da ich manchmal etwas recherchieren muss oder auf Börsen zugreifen muss.
Für den Browser hatte ich vielleicht an den Tor Browser gedacht. Der soll schon recht gut gesichert sein. Kein Java, kein por** Kram usw ist selbstverständlich :)

Wenn ich mich an linux gewöhnt habe, dann soll centos mein Hauptsystem werden. Aber die wallet wird immer auf der separaten Partition bleiben. Das Hauptsystem wird separat davon installiert.

Wie gesagt habe ich Centos bereits minimal installiert und gewisse Dienste deaktiviert um die Angriffsfläche zu verringern. Kde desktop habe ich ebenfalls installiert.

Habt ihr Tipps was ich noch tun kann um das System mit der wallet abzusichern?

Aber auch mein späteres centos Hauptsystem soll auf Sicherheit bedacht sein. Auch hier wäre ich für Tipps dankbar.

Man kann sagen dieses wallet linux ist mein Einstieg in Linux :) ich hoffe dadurch genug linux wissen zu erlangen um komplett auf Linux umzusteigen.

corresponder
21.03.18, 18:14
netstat -an |grep LISTEN
zeigt dir z.b. die ports, die hören (LISTEN)

dann machst du erstmal alle dienste aus, die lauschen, z.b.

Windows verhält sich wie ein Scheunentor im Internet und Linux eher wie eine Katzenklappe ;-)

marce
21.03.18, 18:20
Wenn's Dir hauptsächlich um Sicherheit geht - schau Dir mal Qubes-OS an - da ist alles containert. Das nutzt sogar der Herr S.

tor bringt Dir lokal alles - nur nicht mehr Sicherheit. Eher im Gegenteil.

... und wie gesagt - lokal laufenden Dienste sind kein Angriffsvektor auf einem Desktopsystem.

CenNoob
21.03.18, 18:31
Das mit der Katzenklappe ist ein guter Vergleich. Ich liebe Katzen :)

Ich denke ich habe das prinzip nun einigermaßen verstanden und werde das morgen umsetzen mit einer neuen installation. Gibt es für linux einen speziellen browser der schon abgesichert ist oder macht man das alles selbst?

QuebOS kenne ich bereits. Das ist aber mega kompliziert und für mich als Anfänger nicht geeignet. Mit Whonix habe ich mich auch schon beschäftigt. Das Prinzip nutze ich derzeit unter Windows in einer Virtualbox. Wäre aber auch für mein künftiges Linux System interessant. Aber damit muss ich mich nochmal beschäftigen.

marce
21.03.18, 19:19
Für was willst Du den Browser absichern? Gegen was denn?

Nimmer einfach "egal welchen" und pack keine nicht-vertrauenswürdigen Plugins, Addons, Themes und was auch immer rein. Leg' Dir einen ded. Surf-Nutzer an. Pack dein Krypto-Gedöhns in einen verschlüsselten, ded. Container, den Du nur öffnest, wenn Du ihn brauchst. Mit einem Nutzer, der nicht der Surf-Nutzer ist.
Dann kann weder der Surf-User noch das Windows noch der Herr Internet drauf zu greifen.

... und bei aller Paranoia gegen das Internet - vergiss das Updaten nicht, lass das Gehirn eingeschaltet und verhalte dich vernünftig.

nopes
21.03.18, 20:07
Zurück zum Ursprung, Anwendung kenn ich jetzt auch nicht direkt was für. Ist aber auch eine weile her, dass ich mich damit intensiv auseinandergesetzt habe. Jedenfalls gibt es für iptables Erweiterungen: http://ipset.netfilter.org/iptables-extensions.man.html

owner
This module attempts to match various characteristics of the packet creator, for locally generated packets. This match is only valid in the OUTPUT and POSTROUTING chains. Forwarded packets do not have any socket associated with them. Packets from kernel threads do have a socket, but usually no owner.
[!] --uid-owner username
[!] --uid-owner userid[-userid]
Matches if the packet socket's file structure (if it has one) is owned by the given user. You may also specify a numerical UID, or an UID range.
[!] --gid-owner groupname
[!] --gid-owner groupid[-groupid]
Matches if the packet socket's file structure is owned by the given group. You may also specify a numerical GID, or a GID range.
[!] --socket-exists
Matches if the packet is associated with a socket.


Wenn du dich ein bisschen mit Linux, seiner Benutzer- und Gruppenverwaltung befasst, kann man das damit annähernd erreichen. Das heißt jetzt aber nicht, dass das andere hier falsch ist, eher im Gegenteil, dass das halt gar nicht geht, wollte ich so aber nicht stehen lassen, ist immer noch Linux, geht nicht, gibt es da eher nicht ;)

CenNoob
21.03.18, 21:03
Darüber habe ich auch schon gelesen. Werde ich mich mal mit beschäftigen wenn ich etwas mehr Erfahrung gesammelt habe.

Wie konfiguriere ich nun am besten meine Firewall ?
Ich verbiete alles eingehende und alles ausgehende. Dann lasse ich Port 80, tcp ausgehend zu. Damit ich im Internet surfen kann.
Ist das soweit richtig?

Wie konfiguriere ich das ich updates und neue pakete installieren kann? Was muss ich dafür freigeben?

Wie finde ich heraus was für Ports und Dienste ein Programm benutzt (in dem Fall die Wallet Jaxx), damit ich diese in der Firewall freigeben kann?

marce
22.03.18, 06:12
nochmals: Warum willst Du ausgehenden Traffic verbieten?

zudem - 80 reicht nicht. Du willst ja ggf. auch https-Seiten aufrufen, eine DNS-Auflösung, ggf. DHCP verwenden, eine Mail versenden (und evtl. lesen), ...

CenNoob
22.03.18, 09:14
Ja stimmt.
Aber eben deswegen frage ich nach.

Also verbiete ich nur allen eingehenden trsffic?
Welche Ports bzw Services sollte ich den nun zulassen und in welcher Richtung?
Wie konfiguriere ich das ich updates und neue pakete installieren kann? Was muss ich dafür freigeben?

Wie finde ich heraus was für Ports und Dienste ein Programm benutzt (in dem Fall die Wallet Jaxx), damit ich diese in der Firewall freigeben kann?

Den ausgehenden traffic könnte man doch trotzdem auf die Dienste beschränken die man auch nutzt. Finde das gar nicht sooo blöd. Aber ok.... Wichtig wären erstmal obige fragen.

muell200
22.03.18, 10:54
hallo

das erninnert mich an: http://www.linuxforen.de/forums/showthread.php?238302-die-einfachste-application-layer-firewall-!!!&highlight=firewall

schaue die mal die filme von ccc an

zu deiner frage:
- entweder stehen die ports im handbuch...
- ansonsten loge diese einfach mit

nopes
22.03.18, 12:23
Hmm bin mir gerade ziemlich sicher, dass da 10 Jahre alte Argumentationen nicht mehr angebracht sind, das Router eher schlecht als recht für die Sicherheit sind, ist lange belegt. Das man ausgehenden Verkehr kontrollieren will, auch.

Zum Thema einrichten, ganz grob wie bei "ZoneAlarm", nur nicht mit so viel Komfort. Jedenfalls in der Firewall alles dropen und ein Modus plannen, wo alles was gedropt wird auch geloggt wird. Dann machst du eine oder mehrere Aktionen die Internet brauchen, prüfst was von der Firewall geloggt worde ist und erstellst passende Ausnahmen. Stell dich aber auf viel Arbeit ein, die vermutlich nur ganz wenigen Menschen Spaß macht - war aber auch schon bei ZoneAlarm so ;)

fork
22.03.18, 14:29
Also wenn ich ein Schadprogramm programmieren würde, dann würde ich bzgl. Ports, die ich verwenden würde, ganz genau mit 80 bzw. 443 anfangen und am besten auch gleich noch SSL-Verschlüsseln, damit man meinen Traffic nicht mitlesen kann. Und das weiss mit Sicherheit auch jeder, der so etwas macht. Und damit hat sich das ausgehende blockieren ohne Bezug auf Benutzer und/oder Programm auch schon erledigt, weil total sinnlos, wenn man sich nicht wirklich viel Arbeit macht mit den verfügbaren Möglichkeiten.

Aber abgesehen davon lese ich gerade davon, dass die Verknüpfung zwischen Programm und Paketfilter mittels selinux möglich sein soll. Aber da habe ich jetzt selbst keine Ahnung von. Dokumentation dazu gibt es genug. Das Thema ist nicht trivial.

IMHO: Sinnvoll - aber von dem Gewinn eher gering.

Die wesentlichen Empfehlungen zum Thema stehen weiter oben bereits.

CenNoob
23.03.18, 15:18
Habe mein system neu installiert und erst mal alles eingehende geblockt. Bis jetzt läuft es gut. Später gebe ich das benötigte frei.

Wie kann ich allen ausgehenden Verkehr loggen? Und gibt es Tools die beim analysieren helfen?
Möchte das mal durchsehen und schauen was da so für Traffic stattfindet.



Also wenn ich ein Schadprogramm programmieren würde, dann würde ich bzgl. Ports, die ich verwenden würde, ganz genau mit 80 bzw. 443 anfangen und am besten auch gleich noch SSL-Verschlüsseln, damit man meinen Traffic nicht mitlesen kann. Und das weiss mit Sicherheit auch jeder, der so etwas macht. Und damit hat sich das ausgehende blockieren ohne Bezug auf Benutzer und/oder Programm auch schon erledigt, weil total sinnlos, wenn man sich nicht wirklich viel Arbeit macht mit den verfügbaren Möglichkeiten.

Genau das sagt mir meine Logik auch! Daher fällt es mir etwas schwer die Linux-Strategie (Blockiere alles eingehende und erlaube alles ausgehende. Nutze nur Software von vertrauenswürdigen Quellen dann bis du sicher) anzunehmen. Ich arbeite am Computer in vielen verschiedenen Bereichen (Programmierung, Grafik, Microcontroller, Education) und habe dementsprechend viele Interessengebiete und es wird sich dementsprechend Software ansammeln. Da fällt es mit der Zeit schwer immer open Source zu finden oder sich aus den Packages zu bedienen. Ich bin auch gespannt wenn ich meine zwei Smartphones in Linux installieren muss woher ich da vertrauenswürdige Treiber und Software bekomme. Ebenso für Drucker und alles mögliche andere an usb Geräten.

Mir erscheint trotz allem die Strategie: "Blockiere alle ausgehende Programme/Dienste und erlaube nur was ich kenne" sicherer. (Natürlich zusätzlich zu den bestehenden Regeln und Linux-Strategien) So könnte ich z.B. einen installierten Treiber (oder Programm) der über Port 80 nach draußen Kommuniziert unterbinden.

corresponder
23.03.18, 15:37
wireshark
netstat
etherape
nast
sniffit
tcpick
dsniff

alles netzwerk analyse tools....

rstuby
24.03.18, 05:53
Wenn aber ein Schadprogramm einmal auf dem System installiert ist (wozu man ja auch Rootrechte erlangt), kann es sich je nach den Fähigkeiten der Programmierer bestimmt auch selber was erlauben.