add license
[0tDNS.git] / README.md
blobc00cbb3ea091801bba52da0afea15c05edd20f10
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
13     # ./install.sh
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
24     # ./setup.sh
26 For now, the `setup.sh` script creates a `0tdns` user in the system
27 and adds an entry in root's crontab. Some other setup-related stuff
28 might be added to it later.
30 One might wonder why there isn't a single script to install files and
31 setup the system? The reason is, again, to make things easier for distros.
32 Packager would install software to a directory and make a package from it
33 (using appropriate tools, of course). They would use commands from
34 `setup.sh` to create a script, that is attached to the package and run
35 at installation.
37 Now, execute:
39     # ./vpn_wrapper.sh conf.ovpn ping fsf.org
41 the wrapper shall create an openvpn connection and a network namespace with
42 all packets (except those to localhost) routed through the vpn. It then executes
43 given command inside the namespace.
45 For now - this is all that can be simply tried out. Other parts of the project
46 work with database.
48 For other half (database creation and front-end) check https://github.com/kamsza/io_django
50 You can remove te user nad crontab entry with
52     # ./uninstall.sh
54 To do this and also remove files, run
56     # ./uninstall.sh --delete-files