descriptionTool to compare DNS responses from different servers, made as a homework project
ownerkwojtus@protonmail.com
last changeFri, 24 Jul 2020 09:51:47 +0000 (24 11:51 +0200)
content tags
add:
README.md

0TDNS - Zero Trust DNS

A way to control name resolution

First - get some openvpn config; http://vpngate.net seems like a good place to go

ACHTUNG! Openvpn configs can be malicious and can execute arbitrary commands on your system! Always look into the config before using it :)

Now let's say you want to run ping fsf.org through openvpn connection. Let's say conf.ovpn is your openvpn config file. First, install relevant scripts on your system

# ./install.sh

You can also install to an arbitrary directory (0tdns won't run from there, however; this is just to make things easier for distro packagers or to install in a chroot)

# ./install.sh /path/to/installation/root

The install.sh script above only copies some files to the filesystem. You also need some setup, which is done with

# ./setup.sh

For now, the setup.sh script creates a 0tdns user in the system and adds an entry in root's crontab. Some other setup-related stuff might be added to it later.

One might wonder why there isn't a single script to install files and setup the system? The reason is, again, to make things easier for distros. Packager would install software to a directory and make a package from it (using appropriate tools, of course). They would use commands from setup.sh to create a script, that is attached to the package and run at installation.

Now, execute:

# ./vpn_wrapper.sh conf.ovpn ping fsf.org

the wrapper shall create an openvpn connection and a network namespace with all packets (except those to localhost) routed through the vpn. It then executes given command inside the namespace.

For now - this is all that can be simply tried out. Other parts of the project work with database.

For other half (database creation and front-end) check https://github.com/kamsza/io_django

You can remove te user nad crontab entry with

# ./uninstall.sh

To do this and also remove files, run

# ./uninstall.sh --delete-files
shortlog
2020-07-24 Wojciech Kosioradd licensemaster
2020-06-19 Wojciech Kosiorużytkowanie na zaliczenie
2020-06-19 Wojciech Kosiorsend emails to users when ip doesn't match
2020-06-18 Wojciech Kosiortreat both yes and yes (with quotes) in the config...
2020-06-18 Wojciech Kosiorremove unneeded sudo (we're running as root anyway)
2020-06-18 Wojciech Kosiorremove add_config.py
2020-06-18 Wojciech Kosiorfix passing of a shell variable, that can contain spaces
2020-06-18 Wojciech Kosiorremove unneeded sys.argv import
2020-06-18 Wojciech Kosiorcheck if 0tdns is still running every 15, 30 and 45...
2020-06-18 Wojciech Kosiorprovide default config, that doesn't give less private...
2020-06-17 Wojciech Kosiorremove lockfile on reboot
2020-06-17 Wojciech Kosiorchange indentation
2020-06-17 Wojciech Kosiordon't enable routing on all interfaces
2020-06-17 Wojciech Kosiorchange column name (user_side_service.name -> user_side...
2020-06-17 Wojciech Kosiorspecify timeout when connecting to database
2020-06-17 Wojciech Kosiormake logfile writeble by 0tdns user
...
heads
3 years ago master