Linux namespaces isolate certain functionality for a group of processes. See more here: http://man7.org/linux/man-pages/man7/namespaces.7.html
And yes, a blank new network namespace won't even have the loopback interface available. There is a program named unshare, which executes a program in another namespace.
Really wish there was a basic set of commands for manipulating namespaces. It seems we are reliant on support being baked into larger tools like systemd at present, and said tools may not allow the user/admin to manipulate namespaces directly.
The unshare tool [1] can be used along with ip-tools to create a namespace with networking support. Add a chroot or pivot root to it and you have a Linux container. It's quite easy to do. We have a guide on using namespaces directly and the various projects using it including Firejail here [2]
Linux namespaces were created to support containers. This is how userland container projects like LXC, Docker and Nspawn work, only they don't use the unshare tool but the underlying system calls clonens, setns and unshare [3].
[1] http://man7.org/linux/man-pages/man2/unshare.2.html
[2] https://www.flockport.com/alternatives-to-docker-and-lxc/
Re:Sandboxing with Firejail
by krakensden on Friday January 22, 2016 @11:06AM
(#10953483)
"ip" will let you futz around with network namespaces in an ad hoc way. There's a good LWN intro to it somewhere.
> The --net=none option will create a new network namespace without any devices, so processes cannot communicate outside of the namespace.
No idea what a namespace is, does this mean the process will be unable to use any network? I want that as default for everything on my machine...