This repository was archived by the owner on Sep 3, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Upgrade code to iodine 0.7.0 and improve logging
- Loading branch information
Showing
61 changed files
with
1,767 additions
and
1,598 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,17 @@ server. This can be usable in different situations where internet access is | |
firewalled, but DNS queries are allowed. | ||
|
||
|
||
COMPILING: | ||
|
||
Iodine has no configure script. There are two optional features for Linux | ||
(SELinux and systemd support) that will be enabled automatically if the | ||
relevant header files are found in /usr/include. (See script at ./src/osflags) | ||
|
||
Run 'make' to compile the server and client binaries. | ||
Run 'make install' to copy binaries and manpage to the destination directory. | ||
Run 'make test' to compile and run the unit tests. (Requires the check library) | ||
|
||
|
||
QUICKSTART: | ||
|
||
Try it out within your own LAN! Follow these simple steps: | ||
|
@@ -103,6 +114,16 @@ end of the tunnel. In this case, ping 192.168.99.1 from the iodine client, and | |
|
||
MISC. INFO: | ||
|
||
IPv6: | ||
At the moment the iodined server only supports IPv4. The data inside the tunnel | ||
is IPv4 only. | ||
|
||
The client can use IPv4 or IPv6 nameservers to connect to iodined. The relay | ||
nameservers will translate between protocols automatically if needed. Use | ||
options -4 or -6 to force the client to use a specific IP version for its DNS | ||
queries. The client has to force IPv4 if it has dual-stack connectivity and | ||
the hostname handling the tunnel domain has both A and AAAA records. | ||
|
||
Routing: | ||
It is possible to route all traffic through the DNS tunnel. To do this, first | ||
add a host route to the nameserver used by iodine over the wired/wireless | ||
|
@@ -156,27 +177,28 @@ packet, and one query can be max 256 chars. Each domain name part can be max | |
63 chars. So your domain name and subdomain should be as short as possible to | ||
allow maximum upstream throughput. | ||
|
||
Several DNS request types are supported, with the NULL type expected to provide | ||
the largest downstream bandwidth. Other available types are TXT, SRV, MX, | ||
CNAME and A (returning CNAME), in decreasing bandwidth order. Normally the | ||
Several DNS request types are supported, with the NULL and PRIVATE types | ||
expected to provide the largest downstream bandwidth. The PRIVATE type uses | ||
value 65399 in the private-use range. Other available types are TXT, SRV, MX, | ||
CNAME and A (returning CNAME), in decreasing bandwidth order. Normally the | ||
"best" request type is autodetected and used. However, DNS relays may impose | ||
limits on for example NULL and TXT, making SRV or MX actually the best choice. | ||
This is not autodetected, but can be forced using the -T option. It is | ||
This is not autodetected, but can be forced using the -T option. It is | ||
advisable to try various alternatives especially when the autodetected request | ||
type provides a downstream fragment size of less than 200 bytes. | ||
|
||
Note that SRV, MX and A (returning CNAME) queries may/will cause additional | ||
lookups by "smart" caching nameservers to get an actual IP address, which may | ||
either slow down or fail completely. | ||
|
||
DNS responses for non-NULL queries can be encoded with the same set of codecs | ||
as upstream data. This is normally also autodetected, but no fully exhaustive | ||
tests are done, so some problems may not be noticed when selecting more | ||
advanced codecs. In that case, you'll see failures/corruption in the fragment | ||
size autoprobe. In particular, several DNS relays have been found that change | ||
replies returning hostnames (SRV, MX, CNAME, A) to lowercase only when that | ||
hostname exceeds ca. 180 characters. In these and similar cases, use the -O | ||
option to try other downstream codecs; Base32 should always work. | ||
DNS responses for non-NULL/PRIVATE queries can be encoded with the same set of | ||
codecs as upstream data. This is normally also autodetected, but no fully | ||
exhaustive tests are done, so some problems may not be noticed when selecting | ||
more advanced codecs. In that case, you'll see failures/corruption in the | ||
fragment size autoprobe. In particular, several DNS relays have been found that | ||
change replies returning hostnames (SRV, MX, CNAME, A) to lowercase only when | ||
that hostname exceeds ca. 180 characters. In these and similar cases, use the | ||
-O option to try other downstream codecs; Base32 should always work. | ||
|
||
Normal operation now is for the server to _not_ answer a DNS request until | ||
the next DNS request has come in, a.k.a. being "lazy". This way, the server | ||
|
@@ -337,8 +359,8 @@ THANKS: | |
|
||
AUTHORS & LICENSE: | ||
|
||
Copyright (c) 2006-2009 Bjorn Andersson <[email protected]>, Erik Ekman <[email protected]> | ||
Also major contributions by Anne Bezemer. | ||
Copyright (c) 2006-2014 Erik Ekman <[email protected]>, 2006-2009 Bjorn | ||
Andersson <[email protected]>. Also major contributions by Anne Bezemer. | ||
|
||
Permission to use, copy, modify, and distribute this software for any purpose | ||
with or without fee is hereby granted, provided that the above copyright notice | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
|
||
|
||
iodine - http://code.kryo.se/iodine | ||
|
||
*********************************** | ||
|
||
Extra README file for Android | ||
|
||
|
||
== Running iodine on Android: | ||
1. Get root access on your android device | ||
|
||
2. Find/build a compatible tun.ko for your specific Android kernel | ||
|
||
3. Copy tun.ko and the iodine binary to your device: | ||
(Almost all devices need the armeabi binary. Only Intel powered | ||
ones need the x86 build.) | ||
|
||
adb push tun.ko /data/local/tmp | ||
adb push iodine /data/local/tmp | ||
adb shell | ||
su | ||
cd /data/local/tmp | ||
chmod 777 iodine | ||
|
||
4. Run iodine (see the man page for parameters) | ||
|
||
./iodine ... | ||
|
||
For more information: http://blog.bokhorst.biz/5123 | ||
|
||
== Building iodine for Android: | ||
1. Download and install the Android SDK and NDK | ||
|
||
2. Download and unpack the iodine sources | ||
|
||
3. Build: | ||
cd src | ||
make base64u.h base64u.c | ||
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk | ||
|
||
or run "make cross-android" in the iodine root directory. | ||
To build for other archs, specify TARGET_ARCH_ABI: | ||
"make cross-android TARGET_ARCH_ABI=x86" | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
[Unit] | ||
Description=Iodine Server | ||
After=local-fs.target network.target | ||
|
||
[Service] | ||
EnvironmentFile=-/etc/sysconfig/iodine-server | ||
ExecStart=/usr/local/bin/iodined -i 30 -f $OPTIONS | ||
StandardOutput=syslog | ||
|
||
[Install] | ||
WantedBy=multi-user.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
[Unit] | ||
Description=Iodine socket | ||
|
||
[Socket] | ||
ListenDatagram=53 | ||
|
||
[Install] | ||
WantedBy=sockets.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.