programme nur mit permission auf internet

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
funkto
Beiträge: 47
Registriert: 16.01.2017 21:47:01

programme nur mit permission auf internet

Beitrag von funkto » 23.10.2022 22:09:46

kann man erreichen, das jedes einzelnes program nur mit eine permission
auf das internet geht? Mit apparmor, firejail? Gibt
es ein program mit einem graphical user interface mit denen man jedes
einzelnes program verbieten oder permission
geben kann, auf das internet
zu gehen? Danke.

Benutzeravatar
debilian
Beiträge: 1371
Registriert: 21.05.2004 14:03:04
Wohnort: 192.168.43.7
Kontaktdaten:

Re: programme nur mit permission auf internet

Beitrag von debilian » 23.10.2022 22:16:35

ich hab als erstes an einen proxy gedacht
aber dafür wäre es schlau zu wissen, welche Programme du begrenzen möchtest...

gruss
-- nichts bewegt Sie wie ein GNU --

Benutzeravatar
Tintom
Moderator
Beiträge: 3064
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: programme nur mit permission auf internet

Beitrag von Tintom » 24.10.2022 07:17:25

funkto hat geschrieben: ↑ zum Beitrag ↑
23.10.2022 22:09:46
[...] mit denen man jedes einzelnes program verbieten oder permission geben kann, auf das internet zu gehen? Danke.
Was bedeutet „das Internet“ in diesem Kontext? Möchtest du nur bestimmte Programme erlauben oder die Kommunikation zu bestimmten Seiten/IP-Adressen gestatten? Oder beides?

Benutzeravatar
TRex
Moderator
Beiträge: 8316
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: programme nur mit permission auf internet

Beitrag von TRex » 24.10.2022 08:05:58

Also ich hab (trotz Trümmerdeutsch) verstanden, dass das Ziel ist, dass erstmal kein Programm "ins Internet" darf (was ich mal so auslegen würde, dass kein Programm das default-gateway/ausgehendes Routing verwenden darf). Und dass das selektiv auf Programmbasis aktiviert werden soll.

Die pid-Filter in iptables taugen dafür vermutlich nur eingeschränkt, weil alle modernen Browser zig pids spawnen, die dann nicht matchen. Vielleicht gibts aber noch ne andere Lösung, wenn du mehr von deinem Use-Case erzählst.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

uname
Beiträge: 12396
Registriert: 03.06.2008 09:33:02

Re: programme nur mit permission auf internet

Beitrag von uname » 24.10.2022 08:26:12

@funkto
Schreib doch mal, was du damit bezweckst. Beschreibe hierbei sehr ausführlich ein Beispielszenario.

Benutzeravatar
MSfree
Beiträge: 11604
Registriert: 25.09.2007 19:59:30

Re: programme nur mit permission auf internet

Beitrag von MSfree » 24.10.2022 08:45:10

funkto hat geschrieben: ↑ zum Beitrag ↑
23.10.2022 22:09:46
kann man erreichen, das jedes einzelnes program nur mit eine permission
auf das internet geht?
Du willst allen ernstes für hunderte von Executables, die auf einem Debiansystem rumliegen, einzelne Regeln definieren?
Abgesehen davon, daß das mehr als mühselig wäre, geht das sowieso nur mit Workarounds, die nicht einmal wasserdicht wären.
Gibt es ein program mit einem graphical user interface mit denen man jedes
einzelnes program verbieten oder permission geben kann, auf das internet zu gehen?
Nein. Zonealarm gibt es nur für Windows.

wanne
Moderator
Beiträge: 7544
Registriert: 24.05.2010 12:39:42

Re: programme nur mit permission auf internet

Beitrag von wanne » 24.10.2022 09:16:12

funkto hat geschrieben: ↑ zum Beitrag ↑
23.10.2022 22:09:46
Gibt es ein program mit einem graphical user interface mit denen man jedes einzelnes program verbieten oder permission geben kann, auf das internet zu gehen? Danke.
Wahrscheinlich gibt es irgend welche ZooneAlarm Clone. Sie werden aber genau so wenig in der Lage sein, das sinnvoll umzusetzen wie dieses.
funkto hat geschrieben: ↑ zum Beitrag ↑
23.10.2022 22:09:46
kann man erreichen, das jedes einzelnes program nur mit eine permission auf das internet geht? Mit apparmor, firejail?
Nicht wirklich. Der Grund ist die fehlende scharfe Definition von Programm. Auf einem Linux-System ein paar hundert ausführbare Dateien und viele tausend libraries rum liegen, die sich wild untereinander aufrufen und Nachrichten austauschen. Auch wenn wir es uns oft einfach machen das irgend wie zusammen zu fassen ist die Definition extrem wage: ist die lib-c jetzt ein Teil von VLC-Player Firefox oder xcalc, die die alle nutzten?
Als derartige Firewalls unter Windows aufkamen (und mittlerweile ja sogar in Windows integriert wurden) haben viele Programme angefangen einfach im Hintergrund den Internetexplorer mit passende URLs aufzurufen. Auch unter Linux gibt es noch immer einige Fälle von Programmen, die einfach den Firefox für die Internetkommunikation nutzen. Genau so lassen sich in vielen Installationen alle Programme die Namensauflösung durch die Library lib-c erledigen, die dann den Prozess resolvd, der die ganze Zeit im Hintergrund läuft nutzt.

Du brauchst also irgend eine genauere Definition als "Programm".

Hier ein paar Ansätze:
  • Zuerst der vorgeschlagen dümmste: Prozesse. Wie schon angemerkt. Alleine der Firefox startet hunderte davon. Gerade für Netzwerk starten viele Programme für jede Übertragung einen Prozess, der genau dafür genutzt wird.
  • Android startet jede App als eigener User. Prozessen von Usern kannst du prinzipiell den Zugriff aufs Internet weg nehmen und die können auch keine starten, die nicht wieder dem selben User gehören. Du musst dann aber aufpassen dass kein anderer Prozess (wie resolvd) läuft, der anfragen im Auftrag von anderen Usern beantwortet. Unter Android scheitert das an den Google-Services (Insbesonere google push). Deswegen gibt es die Internetberechtigung nicht mehr. Auf deinem Debian kannst du solche Dienste aber relativ einfach eliminieren.
  • Auch systemd-units halten ihre Prozesse zusammen. Mit SELinux oder Apparmour kannst du dann genausten definieren, mit welchen anderen Prozessen der was sprechen darf. So kann man prinzipiell auch den Internetzugang einschränken selbst wenn andere Units involviert sind. Derartige Regelsätze sind aber viel zu lang um die mal eben zu schreiben.
  • Damit landen wir bei Conainern/VMs. Die sind dazu gedacht die Interprozesskommunikation vollständig abzudrehen und funktionieren auch wirklich gut. Du wirst aber merken, dass du relativ schnell an die Limits deines System kommst, wenn du alles in eigenen Containern starten willst und keine Synergien mehr nutzen kannst.
rot: Moderator wanne spricht, default: User wanne spricht.

funkto
Beiträge: 47
Registriert: 16.01.2017 21:47:01

Re: programme nur mit permission auf internet

Beitrag von funkto » 24.10.2022 17:24:11

Schreib doch mal, was du damit bezweckst.
Wenn der computer sich mit einem public router verbindet, soll
der public router oder isp keine daten bekommen. Als proxy wird tor
benutzt. Darum ist es wichtig, das kein program sich drum
herum tor sich an das internet verbindet. Mit browser und
thunderbird geht das mit socksv5 port 9050. Aber wie verhindert man das
irgend eines program sich ohne permission und unerkannt und
drum herum tor sich an das internet verbindet?
Zonealarm
Das wäre es wohl gewesen.
Gut wäre eine Einstellung die macht das kein program sich selbständig und
unerkannt mit das internet verbindet.
Ein Zustand wäre auch zu sichern, das alle programme
sich nur durch tor sich mit das
internet verbinden können.

Benutzeravatar
TRex
Moderator
Beiträge: 8316
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: programme nur mit permission auf internet

Beitrag von TRex » 24.10.2022 22:14:59

https://gitlab.torproject.org/legacy/tr ... TorTraffic

Ist hier beschrieben. Darum war der Kontext wichtig: hättest du einfach nur zb Firefox überall hin verbinden lassen wollen, wäre das sehr viel komplizierter geworden.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

katzenfan
Beiträge: 645
Registriert: 19.04.2008 22:59:51

Re: programme nur mit permission auf internet

Beitrag von katzenfan » 25.10.2022 07:36:42

wanne hat geschrieben: ↑ zum Beitrag ↑
24.10.2022 09:16:12
Auch unter Linux gibt es noch immer einige Fälle von Programmen, die einfach den Firefox für die Internetkommunikation nutzen.
Setzt das nicht voraus, daß nicht nur der Firefox gestartet ist, sondern auch das betreffenden Programm?

uname
Beiträge: 12396
Registriert: 03.06.2008 09:33:02

Re: programme nur mit permission auf internet

Beitrag von uname » 25.10.2022 07:46:36

katzenfan hat geschrieben:Setzt das nicht voraus, daß nicht nur der Firefox gestartet ist, sondern auch das betreffenden Programm?
Das denke ich aber auch. Bei Windows mag es ja mit dem Internet Explorer oder Edge der Fall sein. Aber bei Linux wird der Firefox wohl nicht im Hintergrund gestartet.

Noch kurz was zur Einschränkung der Kommunikation.
Den Auszügen von @TRex stimme ich zu.

Ich denke wenn ich jemanden auf dem Router ausspionieren wollte hätte ich das Problem, dass die Datenpakete durch TLS/SSL sowieso verschlüsselt sind. Wirklich interessant ist somit für das Ausspionieren (sofern man nicht auch den Client manipulieren kann wegen Zertifikate usw.) nur das jeweilige Ziel und nciht der Inhalt. Um die Ziele zu erfassen braucht man nur im Nameserver ein wenig rumschauen. Ich glaube im Beispiel wurde auch DNS nicht über den Router aufgelöst. Aber man sollte immer unbedingt darauf achten, dass man z. B. einen öffentlichen DNS verwendet oder einen direkt in Tor (damit kenne ich mich aber nicht aus) nutzt. Ich denke DNS ist beim Ausspionieren heute das einfachere Ziel und genauso effizient wie sich die ganzen Datenpakete anzuschauen, die sowieso am Router alle Ende-zu-Ende verschlüsselt sind.

wanne
Moderator
Beiträge: 7544
Registriert: 24.05.2010 12:39:42

Re: programme nur mit permission auf internet

Beitrag von wanne » 25.10.2022 17:04:45

funkto hat geschrieben: ↑ zum Beitrag ↑
24.10.2022 17:24:11
Darum ist es wichtig, das kein program sich drum herum tor sich an das internet verbindet. Mit browser und thunderbird geht das mit socksv5 port 9050. Aber wie verhindert man das irgend eines program sich ohne permission und unerkannt und drum herum tor sich an das internet verbindet?
Das ist wiederum deutlich einfacher: Wie du hier schreibst:
funkto hat geschrieben: ↑ zum Beitrag ↑
24.10.2022 17:24:11
Ein Zustand wäre auch zu sichern, das alle programme sich nur durch tor sich mit das internet verbinden können.
Die einfachste Variante ist einfach eine feste Tor Bridge zu nehmen und Traffic nur dahin zu erlauben.
Also in deine torrc

Code: Alles auswählen

UseBridges 1
ClientTransportPlugin obfs4 exec /usr/local/bin/obfs4proxy managed
Bridge 77.0.90.1...:54444 3FA1B8ED07.....
Bridge obfs4 78.194.206.5...:993 B80190D0C0771298F04AE56L..... cert=61xl3nF07Ssg... iat-mode=0
Bridge obfs4  [2a03:4000::1]:7499 59F4CBDE79D51FEC12AC1F4304D006C97D4.. cert=p9L6... iat-mode=2
Bridge 
und dann per firewall alle Verbindungen außer zur den Bridges blocken:

Code: Alles auswählen

table inet filter {
  chain OUTPUT {
    type filter hook output priority filter; policy accept;
      oifname "lo" counter accept
      ip daddr 77.0.90.1... tcp dport 54444 counter accept
      ip daddr 78.194.206.5... tcp dport 993 counter accept
      ip6 daddr 2a03:4000::1 tcp dport 7499 counter accept
      counter drop
  }
}
Bridges bekommst du da her
https://bridges.torproject.org/bridges?transport=obfs4
oder
https://bridges.torproject.org/bridges
Alternativ läuft tor unter Debian als eigner User tor mit der UID 121. Entsprechend kannst du auch einfach lediglich dem tor-User Zugang zum Internet erlauben und allen anderen verbieten.

Code: Alles auswählen

table inet filter {
  chain OUTPUT {
    type filter hook output priority filter; policy accept;
      oifname "lo" counter accept
      skuid 121 counter accept
      counter drop
  }
}
In allen fällen können alle Programm über tor aufs Internet zugreifen. Aber keines ohne. Das macht den "pro Programm"-Quatsch, der nicht gehen kann überflüssig.

funkto hat geschrieben: ↑ zum Beitrag ↑
24.10.2022 17:24:11
Zonealarm
Das wäre es wohl gewesen.
Nein. Egal was du in der wunderbaren GUI anklickst senden massenhaft Programme Daten über irgend welche Windows-APIs an irgend welche Dienste.
rot: Moderator wanne spricht, default: User wanne spricht.

funkto
Beiträge: 47
Registriert: 16.01.2017 21:47:01

Re: programme nur mit permission auf internet

Beitrag von funkto » 27.10.2022 21:45:01

BlockingNonTorTraffic
Wie macht man die commands rückgängig?
block outbound non-Tor IPv6 traffic
Soll ich auch die non tor ipv6 commands
betätigen?
einfachste Variante ist einfach eine feste Tor Bridge zu nehmen
https://tb-manual.torproject.org/bridges/
Using bridges in combination with pluggable transports helps to conceal the fact that you are using Tor, but may slow down the connection

Daher eher nicht eine Vorgehensweise die
eine bridge fordert.

wanne
Moderator
Beiträge: 7544
Registriert: 24.05.2010 12:39:42

Re: programme nur mit permission auf internet

Beitrag von wanne » 30.10.2022 18:33:01

funkto hat geschrieben: ↑ zum Beitrag ↑
27.10.2022 21:45:01
Wie macht man die commands rückgängig?
Die von mir vorgeschlagenen Firewalls sind Konfigurationen für /etc/nftables.conf Die du mit systemctl restart nftables.service aktivierst. Du kannst das natürlich auch wieder rückgängig machen
Soll ich auch die non tor ipv6 commands betätigen?
Habe die Firewall so angepasst, dass sie für IPv4 und IPv6 funktionieren.
Using bridges in combination with pluggable transports helps to conceal the fact that you are using Tor, but may slow down the connection
Tor ist wird eh kein Rennwagen. Aber dann kannst du die andere Variante die nicht über IPs sondern über User geht nutzen.
rot: Moderator wanne spricht, default: User wanne spricht.

funkto
Beiträge: 47
Registriert: 16.01.2017 21:47:01

Re: programme nur mit permission auf internet

Beitrag von funkto » 30.10.2022 21:47:01

https://gitlab.torproject.org/legacy/tr ... TorTraffic

Code: Alles auswählen

# iptables -F OUTPUT
# iptables -A OUTPUT -j ACCEPT -m owner --uid-owner debian-tor
# iptables -A OUTPUT -j ACCEPT -o lo
# iptables -A OUTPUT -j ACCEPT -p udp --dport 123
# iptables -P OUTPUT DROP
# iptables -L -v
Die commands wurden auf debian 10 getestet. Funktioniert
nicht. Zb. browser kann sich nicht mit das internet verbinden. Die commands
lassen nicht mal tor browser sich mit das internet verbinden.

wanne
Moderator
Beiträge: 7544
Registriert: 24.05.2010 12:39:42

Re: programme nur mit permission auf internet

Beitrag von wanne » 01.11.2022 16:12:15

Hättest du mein zeug statt dem explizit als veraltet gekennzeichneten hätte es vermutlich funktioniert.
rot: Moderator wanne spricht, default: User wanne spricht.

DaCoda
Beiträge: 172
Registriert: 09.07.2019 21:58:10

Re: programme nur mit permission auf internet

Beitrag von DaCoda » 13.11.2022 20:19:13

Die Funktion die du suchst, ist Aufgabe der Firewall.
Bei Windows kannst du ja auch in der Firewall einem Programm verbieten, ins Internet zu gehen.
Bei einer guten Firewall kannst du sogar festlegen, zu welchen Hostnamen und Ports ein Programm Verbindung aufbauen darf.
Ich hatte vor vielen Jahren mal eine Firewall, mit der ich ganz detailliert festgelegt habe, welches Programm welche Verbindungen aufbauen darf. Ich meine das war die Comodo Firewall. Aber weil es schon so lange her ist, weiß ich es nicht mehr sicher.
Generell wäre es topp, wenn Debian so wie auch bei Android erst fragt, ob das Programm gewisse Sachen machen darf. Ich weiß jetzt hagelt es bestimmt erst mal Kritik :D Dann wäre dein Problem gelöst.
Du kannst aber mit dem Befehl netstat schauen, welche Programme welche Verbindungen auf haben.

Benutzeravatar
cosinus
Beiträge: 4188
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: programme nur mit permission auf internet

Beitrag von cosinus » 13.11.2022 20:25:06

MSfree hat geschrieben: ↑ zum Beitrag ↑
24.10.2022 08:45:10
Nein. Zonealarm gibt es nur für Windows.
Stimmt nicht, stimmt nicht :mrgreen:

Code: Alles auswählen

#!/bin/bash
echo -n Starting firewall.
while true; do
  sleep 1
  echo -n .
  if [ $(($RANDOM%13)) -eq 2 ]; then
     break;
  fi
  done
  echo
  echo Your system is now secure\!
while true; do
  sleep $(($RANDOM%53))
  echo "Blocked attack from host $(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%256)).$(($RANDOM%255+1)) on port $(($RANDOM%65535+1))!!!"
done
exit 0

Antworten