b6f3b4c398
Merge branch '4-investigate-extending-pr0xy-to-use-sam' into 'master'
...
Resolve "Investigate extending pr0xy to use SAM"
Closes #4
See merge request NamingThingsIsHard/privacy/i2p-docker-proxy!2
2020-12-18 22:43:56 +00:00
8dd3a6b81a
Use geti2p Dockerfile
...
i2pd just didn't want to connect to other services for some reason.
#4 - Investigate extending pr0xy to use SAM
2020-12-18 23:35:11 +01:00
6ee38fd897
Add more debug logs to servers
...
#4 - Investigate extending pr0xy to use SAM
2020-12-18 23:30:13 +01:00
99138ab4fd
cleanup: Remove pr0cks
...
We won't be using it anymore
#4 - Investigate extending pr0xy to use SAM
2020-12-14 22:56:22 +01:00
0033515500
docker: opt for purplei2p/i2pd
...
It just works as opposed to:
geti2p/i2p: Can't write /usr/share/i2p/router.info which stores peers
Something's wrong with the configuration and it should be trying to write to /var/lib/i2p/i2p-config/router.info
meeh/i2p.i2p: The themes for the router console aren't copied and the web UI just looks terrible
#4 - Investigate extending pr0xy to use SAM
2020-12-14 22:55:58 +01:00
9d0f03535a
docker: Bind ./contained/bin for quick updates
...
Otherwise we'd have to rebuild the image every time
#4 - Investigate extending pr0xy to use SAM
2020-12-13 20:25:55 +01:00
c91f104248
docker: activate SAM in the i2p router service
...
Without it, nothing can work.
#4 - Investigate extending pr0xy to use SAM
2020-12-13 20:25:08 +01:00
f34807d911
Use asyncio.start_server instead of loop.create_server
...
The protocol_factory doesn't support `Protocol`s with async handlers
e.g `async def connection_made` won't actually be awaited and thus nothing ever happens.
Now there's a pretty ugly solution with one long-ass method, but maybe that can be trimmed
or a callable can be used.
#4 - Investigate extending pr0xy to use SAM
2020-12-13 20:23:42 +01:00
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