Firejail is an easy to use SUID sandbox program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces, seccomp-bpf and Linux capabilities. Used alone or combined with Grsecurity or other kernel hardening systems can further increase the security provided. Firejail is ideal for use with browsers, desktop applications, and daemons/servers alike.
Install the AUR or AUR package which provide all of the requirements out of the box.
Firejail uses profiles for the applications executed inside of it - you can find the default profiles in /etc/firejail/application.profile. Should you require custom profiles for applications not included, or wish to modify the defaults, you may place new rules or copies of the defaults in ~/.config/firejail.
If you need to reference, whitelist, or blacklist a directory within a custom profile, such as withAUR, you must do so using the absolute path, without encapsulation or escapes:
To execute an application using firejail with seccomp protection, such as firefox, execute the following:
$ firejail --seccomp firefox
Firejail also includes a one time private mode, in which no mounts are made in the chroots to your home directory. In doing this, you can execute applications without performing any changes to disk. For example, to execute firefox in private mode, do the following:
$ firejail --seccomp --private firefox
Using Firejail by Default
For most applications launched from the console, or from
.desktop files, you can place your own launcher proxies for each in
/usr/local/bin. For example, create the following file for firefox make it executable:
firejail --seccomp /usr/bin/firefox $@
Some applications use non standard paths. For these you will want to copy the
.desktop launchers from
~/.local/share/applications/ and then proceed to include firejail (and possibly seccomp) on the EXEC line.
For daemons, you will have to edit the initscripts directly to call them with firejail.
Some applications do not work properly with Firejail, and others simply require special configuration. In the instance any directories are disallowed or blacklisted for any given application, you may have to further edit the profile to enable nonstandard directories that said application needs to access. One example is wine; wine will not work with seccomp in most cases.
Other configurations exist; it is suggested you check out the man page for firejail to see them all, as firejail is in rapid development.
A GUI application for use with Firejail is also available,AUR.