Commit Graph

54 Commits

Author SHA1 Message Date
177a4ad5f7 cli: Rename the env vars for the params
It also shortens the command-line argument in exec.sh

#4 - Investigate extending pr0xy to use SAM
2020-12-13 20:19:58 +01:00
8026c04a7b Actually pass ip_dict to FakeResolver
It wasn't being passed so the client tunnel would just fail

#4 - Investigate extending pr0xy to use SAM
2020-12-13 20:18:29 +01:00
594554b12c deps: Update dnslib to 0.9.14 for python 3.9
The 0.9.10 was trying to call deprecated thread.isAlive() which isn't available
 in pthon 3.9 anymore

#4 - Investigate extending pr0xy to use SAM
2020-12-13 17:54:45 +01:00
77c2a69267 cli: Convert port params to int
Otherwise strings are passed and it can't start up.
Sockets can't be created when a string is passed as the port param

#4 - Investigate extending pr0xy to use SAM
2020-12-13 17:29:57 +01:00
0c4a9a81e3 Actually pass port param to transparent proxy
It was always starting on port 1234 when in fact, it had to start on 10080 (set in Dockerfile)

#4 - Investigate extending pr0xy to use SAM
2020-12-13 17:28:49 +01:00
3ea2f2a453 First implementation of transparent client tunnel using SAM
The transparent proxy creates a client tunnel to the requested destination for each client connection.
This is untested for now, but a server tunnel is also incoming if this works well.

#4 - Investigate extending pr0xy to use SAM
2020-12-13 00:09:17 +01:00
4dc8f22c29 docker: Update to the use of Python 3.9
Getting with the times

#4 - Investigate extending pr0xy to use SAM
2020-12-13 00:09:17 +01:00
ec8aeb5fb9 suggest LD_PRELOAD as a wrapper / proxy
It should be possible to replace networking functions, just like pr0xy
 and SocksiPy do to let all communication of a program pass through I2P

#4 - Investigate extending pr0xy to use SAM
2020-12-13 00:09:13 +01:00
37b949c1d3 Make getting an IP thread-safe
It can get called in quick succession and overwrite assignments if the
 checks aren't done at the right time

#4 - Investigate extending pr0xy to use SAM
2020-12-13 00:08:29 +01:00
bc4cbbcb55 Add doc with background on the project 2020-12-10 23:39:40 +01:00
1b625b26cc CI: cd actually carries state?
WTF?
2020-12-04 23:38:16 +01:00
9e1943f8be CI: WHERE THE HELL ARE THE DOCS? 2020-12-04 23:35:23 +01:00
e80b33ab41 CI: Yet another attempt to fix the pages task 2020-12-04 23:31:00 +01:00
a85f8b7ce6 CI: Another attempt at fixing drawio on 2020-12-04 22:54:33 +01:00
8976c3d4a7 Try and fix CI to generate docs 2020-12-04 00:29:43 +01:00
a01abdfd7f docs: Fix requirements.txt 2020-12-04 00:27:01 +01:00
1e6ec46c2e Add link to generated docs 2020-12-04 00:26:47 +01:00
7bea3bdf16 Add icon 2020-12-04 00:22:57 +01:00
1b2ac19dca docs: Add drawio diagramm of architectural components 2020-12-04 00:21:08 +01:00
f8ffbd50ee docs: Remove forgotten comment 2020-12-03 23:21:55 +01:00
79ffbdd4cc Start adding documentation 2020-12-03 23:20:43 +01:00
5cdfcfca76 Update README.md 2019-08-02 17:44:56 +00:00
f5b790fa0f Merge branch '1-figure-out-why-packets-aren-t-being-forwarded-using-iptables-and-pr0xy' into 'master'
Resolve "Forward using iptables, pr0xy and custom DNS"

Closes #1

See merge request NamingThingsIsHard/privacy/i2p-docker-proxy!1
2019-07-29 19:01:10 +00:00
79c90d2ef4 Remove forgotten libnetfilter_queue-dev
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-29 20:59:07 +02:00
5244b6d735 Try to cleanup unix socket
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-29 18:31:56 +02:00
d5538b1947 Remove pr0cks extra files and migrate .gitignore
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-29 17:54:50 +02:00
f4180900c0 Use the vars from the Dockerfile
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-29 17:52:20 +02:00
035aaf1bc1 Remove test IP for extra host for stats.i2p
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-29 17:26:42 +02:00
c019dbeecb netfilter requirements
drill is also replaced by bind-tools

#1 - Forward using iptables, pr0xy and custom DNS
2019-07-29 17:19:44 +02:00
0a02a2f1ae Use java i2p since there seems to be a problem with i2pd and proxies
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 23:06:01 +02:00
fec320b178 Add host arg for send.py
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 22:29:21 +02:00
29d8d5c945 Replace netfilterqueue by modifying pr0cks to make the initial connection request
We only want i2p to create a tunnel to the requested host on i2p.
There's no need to modify any other packets at the moment

#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 22:15:03 +02:00
0d54221b32 Drop the DNS requests to stop multiple requests from the requester
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 22:11:13 +02:00
b678d41aba PEP8 for pr0cks
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 22:09:34 +02:00
14875cb5d2 Import pr0cks for local modifications
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 21:59:34 +02:00
1a956ff348 Import pr0cks into project to make custom changes
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 21:51:57 +02:00
a485e3d9eb Move send.py and fix it up for use docker to test direct requests to i2p HTTP proxy
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 21:37:25 +02:00
09597a2703 Remove trailing '.' from the hostname passed from DNS request
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 21:36:17 +02:00
221d2641d4 Handle requests to unix socket better and log errors
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 21:35:35 +02:00
88bf17ca8c Try to shutdown the UnixSocketServer when our program exits
Also add logging

#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 21:34:45 +02:00
e04e2989e5 Redirect traffic to NFQUEUE
Right now all it does is print the packet payload. Need to find out wtf
 that actually is and how to treat it

#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 00:08:35 +02:00
25525d2ae6 Add simple netfilter script with its dependencies
- python requirements are now kept in a file and installed during build
 - variables are used in exec.sh to remove magic values
 - executable scripts are moved into one directory

#1 - Forward using iptables, pr0xy and custom DNS
2019-07-27 00:07:09 +02:00
7f739bcdc7 A first implementation of FakeDNSServer
It will return random IPs for unique requests e.g
```
$ dig @localhost -p 1053 idontactuallyexist.test

; <<>> DiG 9.11.3-1ubuntu1.8-Ubuntu <<>> @localhost -p 1053
idontactuallyexist.test
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53511
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL:
0

;; QUESTION SECTION:
;idontactuallyexist.test.       IN      A

;; ANSWER SECTION:
idontactuallyexist.test. 0      IN      A       172.57.143.249

;; Query time: 6 msec
;; SERVER: 127.0.0.1#1053(127.0.0.1)
;; WHEN: Fri Jul 26 00:42:18 CEST 2019
;; MSG SIZE  rcvd: 57
```

 #1 - Forward using iptables, pr0xy and custom DNS
2019-07-26 00:40:47 +02:00
eee72c25ba Remove unnecessary lines
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-26 00:33:16 +02:00
ddd3f03275 Start documenting exec.sh a bit
#1 - Forward using iptables, pr0xy and custom DNS
2019-07-26 00:31:55 +02:00
8be3ff02ac Move contents for contained image into contained dir
We don't wanna pollute the root dir with files pertaining
 to the contained image

 #1 - Forward using iptables, pr0xy and custom DNS
2019-07-24 13:41:57 +02:00
0663e4dcb3 Simple python script testing CONNECT HTTP tunnel
When sending messages to HTTP servers operated by I2P
 one has to use the MYOB User-Agent for some reason.
 Otherwise the requests are rejected with 403

 #1 - Figure out why packets aren't being forwarded using iptables and pr0xy
2019-07-22 17:47:28 +02:00
fbc94448d0 Add docker-compose to requirements
#1 - Figure out why packets aren't being forwarded using iptables and pr0xy
2019-07-22 17:46:35 +02:00
31d716beaf Trying to make curl stats.i2p work
- Log the packet filtering
 - dump the packets from all interfaces

 #1 Figure out why packets aren't being forwarded using iptables and pr0xy
2019-07-22 17:43:15 +02:00
4a0d4d24b6 Attempt at forwarding all traffic through an HTTP proxy
DNS doesn't work so there was an attempt at just forcing
 stats.i2p to localhost, with no success.

A tcpdump is created on the host machine at /tmp/contained/tcp.dmp
 to try and figure out what is being sent where, but
 it doesn't seem like any HTTP traffice is being sent at all.

`iptables` is logged to /var/log/ so maybe that'll give a hint
 as to where the stuff is going.
Maybe the rules are just bad too 🤷‍♂
2019-07-20 21:25:00 +02:00