24 Commits

Author SHA1 Message Date
tomFlowee c0f579ff6d add VPN feature
This allows a jail to have a VPN config associated and as a result we start
a new net namespace, completely isolating the jails networking.
We then start an openVPN client to route between the main network and the
jails' network.

The main limitation here is that we don't setup DNS, which basically means
that the VPN will route DNS calls to the other side, but since we don't
remount resolv.conf this depends on the vpn provider actually mapping the
nameserver we use. For people that use a nameserver like 192.168.100.1,
this most of the time works just fine.

Improvement is possible.
2026-04-11 15:06:44 +02:00
tomFlowee 065c0682cd Minor fixes 2026-04-11 14:44:27 +02:00
tomFlowee 27ed04fcb3 Allow running apps IN without full path
If it turns out it lives in /usr/bin/
2024-04-24 18:50:40 +02:00
tomFlowee 7564862be6 Add --in, running in other apps jail 2024-04-24 18:50:40 +02:00
tomFlowee a36d69cbe7 Add 'run in' feature.
Allow running a random executable inside of an existing jail.
2024-04-21 23:55:14 +02:00
tomFlowee ba4ba341ad Show path to exe in listing
Calling `iso -lv` shows a listing of all profiles, this will now include
the path to the executable in profiles where it isn't instantly obvious.
2024-03-06 12:24:14 +01:00
tomFlowee 0030116453 Move path-resolve out of config phase
We resolve a symlink to an exe now only at the time we start the
application, avoiding the target being the one ending up in the config
file instead of the symlink.
The same now happens with the insertion of '/shared/' in the path
should the (resolved) exe path be in the users' homedir.
2024-03-06 12:22:46 +01:00
tomFlowee 771bf8d4f7 Fix exe-paths in my homedir. 2024-03-06 11:48:16 +01:00
tomFlowee cfebf56ea2 Give auto-deleted jobs a unique name
Avoid actually starting an existing profile by adding a random number to
our profile name.
2024-02-26 11:11:25 +01:00
tomFlowee 82a0f22d58 Add audio permission and copy kde session server
The audio permission allows hiding of pulse audio and pipewire sockets.

The kde session (ksmserver) socket and state files allowing some more
apps to run properly.
2024-02-26 10:49:40 +01:00
tomFlowee 151b874a8e Add 'autodelete' and 'secure' arguments
When starting a new application for the first time you can
start them with these two feature.

Autodelete:
  this waits until the iso-pipe file is removed by the jailer,
  which it does when all processes stopped,
  and then proceeds to remove all files for the jail.

Secure:
  Puts all known rights in the 'denied' list, making the jail
  quite secure. Not a VM or a docker, but close.
2024-02-25 23:29:33 +01:00
tomFlowee 53e434769d Improve details reporting
Include proper start time and 'is running' information in the iso cli
app.
2024-02-25 20:52:04 +01:00
tomFlowee b6192288f4 Have more expressive profile listing 2024-02-25 16:21:41 +01:00
tomFlowee 7260988bcf Rename listApps to listProfiles
Also more docs
2024-02-20 21:57:05 +01:00
tomFlowee 49747829ea More remote introspection
just calling with -l will now list all known profiles.
Additionally we list the executable that is used for a profile.
2024-02-19 20:21:36 +01:00
tomFlowee 5e689f34de Introduce app-aliases
This moves the primary key for a 'jail' to no longer be the executable
path, but instead a name.
In many cases that string will be based on the executable path, for
instance it will take the filename if the exe lives in /bin or /usr/bin
so in that respect nothing will change.

What this does allow is that you can have two different profiles that
both map to the same executabe. Allowing for instance having two
completely isolated instances running of telegram or of firefox.
2024-02-19 19:52:24 +01:00
tomFlowee ce7046efa2 Rename from 'securityManager' to 'IsolationRunner'.
The defaults are not 'secure', as they would be annoying to the max.
This is an isolation runner, removing a lot of attack vectors, for sure
but the name would give the wrong impression with defaults like we have
now.
2024-02-19 12:54:52 +01:00
tomFlowee f805e8f2ce Have app-specific rules
This introduces the command execute-apprules which behaves like
an 'include' as it recurses into the app specific file.

If there is no app specific one, it will load the default.rules

Notable too is that in an app specific rules file the usage of
execute-apprules will always go to default.rules, to avoid
copy / paste of rules.
2024-02-19 10:47:36 +01:00
tomFlowee 02a723827c Make sure that only one is running at a time 2024-02-19 09:23:40 +01:00
tomFlowee f4032e8abe Update client to properly use the dbus 2024-02-18 22:13:16 +01:00
tomFlowee 495c4b5adb Add more DBus methods. 2024-02-18 20:58:27 +01:00
tomFlowee e0a359534f Support starting apps with arguments. 2021-05-21 15:28:57 +02:00
tomFlowee f04aac9fa4 Cleanup and start a new class. 2021-05-20 12:43:04 +02:00
tomFlowee e5dd3bffe3 Add the DBus interface to listen for run requests. 2021-05-19 15:08:22 +02:00