Wie deaktiviere ich die Internetverbindung für einen einzelnen Prozess?


3

Ich kenne die PID eines bestimmten Prozesses und möchte den Internetzugang für diesen Prozess und nur für diesen Prozess deaktivieren, damit andere Prozesse auf das Internet zugreifen können.

Gibt es eine Möglichkeit, dies zu tun?


Ich habe einige Dinge gegoogelt und einen Weg gefunden, das Internet für ausführbare Programme zu deaktivieren.Aber ich brauche zum Beispiel zwei laufende chrome, von denen einer Zugang zum Internet hat und der andere nicht.

2

I would recommend using firewall rules to lock that program out. If you can isolate the port numbers that the program is using you can block traffic on those ports. You can also set up "per process" firewall rules with SELinux or other security software.

https://help.ubuntu.com/community/Gufw

If you're looking for something a little more direct or challenging you can configure IPTables as documented here.


4

I've just had the same question and found a really nice solution on ubuntuforums.org

Summary

  • add a group "no-internet" and add your user to it

    sudo addgroup no-internet
    sudo adduser $USER no-internet
    
  • add a iptables rule to prevent that group from accessing the network:

    iptables -I OUTPUT 1 -m owner --gid-owner no-internet -j DROP
    
  • run the process you don't want to have internet access like with sg (execute command as different group ID):

    sg no-internet "process command line"
    

0

You can try the following:

  • unshare. Seems to work fine for terminal programs. I'm unable to get it to work with X11.

    unshare -r -n ping google.com
    
  • Firejail. You might have to fiddle with the config to get it to work.

    firejail --noprofile --net=none firefox