Designed to figure out how to get a connection to the internet when using a restricted network such as a public wifi with a webform login required.
Inspired by iodine (ip over DNS) and hans (ip over icmp ping)
http://sites.inka.de/bigred/devel/tcp-tcp.html
-
Install crystal and shards (although they usually come together)
-
Install the sodium development libraries
- for arch linux
sudo pacman -S libsodium
- for debian/ubuntu
sudo apt install libsodium-dev
- for arch linux
-
Install crystal dependencies
crystal deps
-
Compile
shards build
Debugging version
shards build -d
Release version (full compiler optimizations)
shards build --release
TODO: Write usage instructions here
-
prereqs:
- crystal https://crystal-lang.org/
- libsodium-dev (a crypto lib)
- libxml2-dev
- libyaml-dev
- shards (it's like "make")
- fork the project on github
- "shards build" to build
-
chromium will stop tun0 about 2 seconds after startup
workaround <<: in crosh shell, sudo the following
- stop shill
- start shill BLACKLISTED_DEVICEDS=tun0
First, you must select a Pre-shared Key for use between the client and server.
Run bin/util
to generate a key, then copy the config.yml securely to the other end.
The server bin/server
currently takes no arguments, and listens on port 5431. The
client bin/client
takes one argument, the ip address of the server.
For simplicity and connect time reduction, this program uses symmetric cryptography with a single pre-shared key, of which the client and server both have a copy. This is used for both encrypting and authenticating.
Currently, there is no mechanism in place to prevent replay attacks. Therefor, this software should not yet be considered secure.
Furthermore, no formal review of this code's security has been done, and there likely are more security-related problems that are unknown.
- Fork it ( https://github.com/shelvacu/GetMeInternet/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create a new Pull Request
- Shelvacu - creator, maintainer