Run a process in separate Namespaces to provide isolation for the processes. Namespaces isolation implemented so far:
uts
user
network
pid
mount
$ git clone https://github.com/whokilleddb/1s0lat3
$ cd 1s0lat3
$ make
Syntax:
./isolate <command with flags>
Example:
$ sudo ./isolate /bin/sh
[+] 1s0lat3 by @whokilleddb
[>] Command to be run in 1s0lati0n: /bin/sh
[i] Successfully created UTS namespace
[i] Successfully created USER namespace
[i] Successfully created NETWORK namespace
[i] Successfully created PID namespace
[i] Successfully created MOUNT namespace
/ # cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.15.0
PRETTY_NAME="Alpine Linux v3.15"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
/ # exit
[+] Bye :D
$ make clean
- You will need
libnl
library, especially the routing family of functions
- Add routing inside Name-space
- Configure IP Tables to allow internet access