-
Notifications
You must be signed in to change notification settings - Fork 11
/
README
60 lines (46 loc) · 2.01 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
kproxy is a simple C written proxy application.
kproxy is ©2014-2015 Francisco Blas Izquierdo Riera (klondike)
INTRODUCTION
============
The current status of this project is: working POC
Currently it can only map transaparent sockets (like those provided using a
REDIRECT rule in iptables) into a static compile time decided SOCKS5 server.
It also contains a DNS server which will map domains into automagically
generated IPv4 and IPv6 addresses (depending on the request) and can even solve
PTR requests from the address back into the domain name.
These two components are integrated so if you look up for example for
myaddress.i2p or myaddress.onion you will get an ip address that will be
converted back into the original domain when sending the SOCKS5 request to the
other side.
As such this is a POC implementation of Tor's transparent proxy system including
the DNS resolution system and so using the same ideas but without depending on
Tor so it can be used with other projects too (like i2p or ssh SOCKS5 servers).
DEPENDENCIES
============
This project depends on uthash and libev.
The dependency on uthash is based on the need for a way to provide fast lookups
for DNS resolution (both direct and reverse). This is attained reasonably well
by hash tables.
The dependency on libev is based on the need for an event management system for
many things (like for example removal of expired entries on the DNS server or
the handling of the sockets). This may change in the future although it's
unclear when o whether such thing will happen.
COMPILING
=========
$ git clone https://github.com/klondi/kproxy.git
$ cd kproxy
$ git submodule update
$ make
wait for it
wait for it
DONE! you can now run it with $ ./kproxy
THANKS
======
This project has received unvaluable support and assistance from the developers
of (in no particular order):
* i2p
* i2pd
* Tor
I'd also like to thank specially nickm for investing some time and sharing some
ideas about how to avoid some of the issues Tor found when developing this
solution on their system.