Skip to content

Frequently Asked Questions

rusty-snake edited this page Feb 10, 2020 · 24 revisions
 

Technology

Applications

Known Problems

 

Technology

 

Why on earth should I use Firejail?

Some existing Linux security solutions are easily defeated from internal and/or external threats. Other solutions are just too difficult to put in place. Firejail’s approach is radically different.

For us, the user always comes first. We manage to keep the learning curve down. Actually, most of the time you don’t need to learn anything, just prefix your application with “firejail” and run it. This makes Firejail ideal for the regular, not-so-skilled home user.

We use the latest Linux kernel security features, such as namespaces and seccomp-bpf. In our view these features are mature, and have been extensively tested in the market place by products such as Google Chrome or Docker.

How does it compare with AppArmor?

Firejail uses private mount namespaces to achieve similar access controls compared to AppArmor and capability restrictions are also similar. In addition to those, Firejail can set up system call filtering with seccomp and restrict networking. Unlike firejail, AppArmor can restrict mapping of files to memory. AppArmor's available features can vary widely across kernel versions and distros. Firejail also is executing SUID, elevating user's privileges temporarily, to for example setup mounts, which can be an attack vector.

It is recommended to only use AppArmor OR firejail but not both at the same time for the same app. If you set tight AppArmor profile already then you may want stick with it.

In general to use both for a particular app, you will need to modify the pre-packaged app profiles for both AppArmor and firejail to get them to work together. You need to add more privileges in AppArmor than is needed without firejail, and you need to use less firejail features otherwise it would be broken with AppArmor. Many times they will cancel each out rather than complement. We have multiple reports about broken apps when AppArmor and firejail are used at the same time.

Keep in mind that AppArmor is mandatory when enabled while firejail can be easily circumvented (intentionally or not). It should be possible to use Firejail just for seccomp and network control, those can not conflict with prepackaged AppArmor. See #2248 for a discussion on this.

How does it compare with Docker, LXC, nspawn?

Docker, LXC and nspawn are container managers. A container is a separate root filesystem. The software runs in this new filesystem. Firejail is a security sandbox. It works on your existing filesystem. It is modeled after the security sandbox distributed with Google Chrome.

Containers and sandboxes use the same Linux kernel technology, Linux namespaces. The developer focus is different. Containers target the virtualization market, while sandboxes focus on application security.

(2018-05-28) Docker and firejail use similar features like namespaces, seccomp, capabilities. This means firejail is unable to create its own sandbox when run inside docker. See #1956.

What is the overhead of the sandbox?

The sandbox itself is a very small process. The setup is fast, typically several milliseconds. After the application is started, the sandbox process goes to sleep and doesn’t consume any resources. All the security features are implemented inside the kernel, and run at kernel speed.

 

Applications

 

Firefox doesn’t open in a new sandbox. Instead, it opens a new tab in an existing Firefox instance

By default, Firefox browser uses a single process to handle multiple windows. When you start the browser, if another Firefox process is already running, the existing process opens a new tab or a new window. Make sure Firefox is not already running when you start it in Firejail sandbox.

How do I run two instances of Firefox?

Open about:profiles and create the new profile NAME.

Start the first Firefox instance as usual:

    $ firejail firefox

Then, start the second sandbox:

    $ firejail firefox -P "NAME" --no-remote

How do I run tor browser?

See Tor Browser home install.

How do I run VLC in a sandbox without network access?

--net=none command line switch installs a new TCP/IP stack in your sandbox. The stack is not connected to any external interface. For the programs running inside, the sandbox looks like a computer without any Ethernet interface.

    $ firejail --net=none vlc

The best way to handle the command line switch is to place it in a .local file in ~/.config/firejail. Create a vlc.local text file in this directory, with the following content:

    $ cat ~/.config/firejail/vlc.local
    net none

Can you sandbox Steam games and Skype?

Support for Steam, Wine and Skype has been around since version 0.9.34. Quite a number of other closed-source programs are supported.

Running ls /etc/firejail/*.profile will list all the security profiles distributed with Firejail. Programs not listed there, are handled by a very restrictive /etc/firejail/default.profile.

How do I enable plasma browser integration in firefox?

Create a new file ~/.config/firejail/firefox.local and add ignore nodbus. If you have private-bin enabled, you must also add private-bin plasma-browser-integration-host.

 

Known Problems

 

OverlayFS features disabled for Linux kernel 4.19 and newer

Something changed in the kernel code, and we are not able to mount / filesystem in overlay. We are working on a fix.

A program isn't firejailed

firejail --list does not show the running program to be inside a firejail sandbox. First make sure you have run sudo firecfg. If this didn't work, create a symlink by your own (ln -s /usr/bin/firejail /usr/local/bin/PROGRAM) or edit the Exec line in the .desktop file of the program if it is a grafical program. If your program is installed under /opt you need to use firejail /opt/foo/bar in the terminal/.desktop file.

RTNETLINK error

firejail --net=eth1 firefox yields in RTNETLINK answers: Operation not supported. Missing modules, kernel update without reboot are cause. Look at issue #2046 or #2387.

PulseAudio 7.0/8.0 issue

The srbchannel IPC mechanism, introduced in PulseAudio 6.0, was enabled by default in release 7.0. Many Linux users are reporting sound problems when running applications in Firejail sandbox. It affects among others Ubuntu 16.04 and Mint users. This problem was fixed PulseAudio version 9.0. Run “firecfg --fix” in a terminal or apply the following configuration to mask the problem:

    $ mkdir -p ~/.config/pulse
    $ cd ~/.config/pulse
    $ cp /etc/pulse/client.conf .
    $ echo "enable-shm = no" >> client.conf

A logout/login is required for the changes to take effect.

If you have problems with PulseAudio 9.x use the previous fix, or configure “enable-memfd = yes” in /etc/pulse/daemon.conf.

Browser mailto and mail programs attachments do not work

Mailto usually uses dbus and is thus disabled by default. Create local profiles with content ignore ndbus for firefox or chromium as in #2795 and #1718.
Mail programs do not need interaction with all of the filesystem. For downloads by mail programs or attachments use alike commands to thunderbird (firejail --whitelist=~/Downloads/thunderbird thunderbird) in a shell script or the whitelist in local profiles.

Cannot open hyperlink with web browser using another application

It is recommended to copy-paste links from with application with the hyperlink into an already running web browser. This will always be the safest bet, allbeit not very user-friendly. See #2228 and #2047

Firefox 60 problems

Firefox 60 doesn’t work with Firejail version 0.9.52 or older. Patched security profiles for are available for Firejail versions 0.9.38.x (LST) and 0.9.52. You can find them in our profile fixes section. Another option is to install Firejail 0.9.54.

LibreOffice on Ubuntu 18.04

LibreOffice crashes when sandboxed with Firejail version 0.9.52 in Ubuntu 18.04. A patched security profile for Firejail 0.9.52 is available in our profile fixes section. Another option is to install Firejail 0.9.54.

Cannot install new software while Firejail is running

File blacklisted in a running jail cannot be removed from outside of jail. This causes serious inconvenience when using Firejail with long time running processes. For example, preventing user from updating system normally, as files like /bin/su, /bin/mount, /usr/bin/sudo are blacklisted by default. Also, admin commands for adding users and groups will fail.

Firejail implements blacklisting by mounting an empty, read-only file or directory on top of the original file. The kernel, at least the older kernels, will refuse to delete the file because it is a mount point in some other place in the system.

The problem is fixed in Linux kernels 3.18 or newer.

Cannot connect to ibus-daemon in a new network namespace

ibus-daemon is used to change the system language, for example to switch between English (US) input and Japanese inputs. In a sandbox using a new network namespace ibus-daemon socket is disabled and keyboard switching capability is lost.

Cannot kill firejailed program

Check namespace support like for killall (command option --ns) and adapt the command for firejail --tree output.

Firefox crashing on Netflix, AMDGPU PRO, Nvidia closed source drivers

You should first set browser-allow-drm to yes in /etc/firejail/firejail.config or add ignore noexec ${HOME} to your firefox.local. If you are using NVIDIA proprietary drivers, you must also set ignore noroot in your firefox.local.

If this didn't work, try the old solution.

old solution We are still working on these problems. From what we’ve seen so far, these programs make liberal use of system calls such as chroot and ptrace. These syscalls have no place in regular, well behaved programs, and seccomp kills the application immediately. Workarounds involve disabling seccomp and allowing ptrace utility. Example: ````` $ firejail --allow-debuggers --ignore=seccomp --ignore=protocol --ignore=noroot --ignore=nogroups --ignore=nonewprivs firefox --no-remote `````

I’ve noticed the title bar in Firefox shows “(as superuser)”, is this normal?

The sandbox process itself runs as root. The application inside the sandbox runs as a regular user. “ps aux | grep firefox” reports Firefox process running as a regular user.

The same problem was seen on other programs as well (VLC, Audacious, Transmission), and it is believed to be a bug in the window manager. You can find a very long discussion on the development site: https://github.com/netblue30/firejail/issues/258

Media issues with firejail 0.9.62 under Arch

FIX: Add ld.so.conf,ld.so.conf.d,ld.so.preload to the private-etc line of the profile, you can do this by createing a .local-file in ~/.config/firejail/PROFILE_NAME.local with the following content.

private-etc ld.so.conf,ld.so.conf.d,ld.so.preload

References: #3147 #3157 #3158 #3150 31772d81 bc337e23

3D acceleration with nVidia-Hardware

User with nVidia-Hardware may need to add ignore nogroups to globals.local, see #3144.

You can’t perform that action at this time.