1 # 0TDNS - Zero Trust DNS
2 A way to control name resolution
4 First - get some openvpn config; http://vpngate.net seems like a good place to go
6 ACHTUNG! Openvpn configs can be malicious and can execute arbitrary commands on
7 your system! Always look into the config before using it :)
9 Now let's say you want to run `ping fsf.org` through openvpn connection.
10 Let's say `conf.ovpn` is your openvpn config file.
11 First, install relevant scripts on your system
15 You can also install to an arbitrary directory
16 (0tdns won't run from there, however; this is just to make things easier for
17 distro packagers or to install in a chroot)
19 # ./install.sh /path/to/installation/root
21 The `install.sh` script above only copies some files to the filesystem.
22 You also need some setup, which is done with
26 For now, the `setup.sh` script only creates a `0tdns` user in the system.
27 Some other setup-related stuff might be added to it later.
29 One might wonder why there isn't a single script to install files and
30 create the user? The reason is, again, to make things easier for distros.
31 Packager would install software to a directory and make a package from it
32 (using appropriate tools, of course). They would use `setup.sh` to create
33 a script, that is attached to the package and run at installation.
37 # ./vpn_wrapper.sh conf.ovpn ping fsf.org
39 the wrapper shall create an openvpn connection and a network namespace with
40 all packets (except those to localhost) routed through the vpn. It then executes
41 given command inside the namespace.
43 For now - this is all that can be simply tried out. Other parts of the project
46 For other half (database creation and front-end) check https://github.com/kamsza/io_django
48 You can remove te user with
52 Or remove the user together with files by running
54 # ./uninstall.sh --delete-files