Once I was finally fed up with pages like “this resource is locked on demand”, which began to come across more and more often. And more and more references were made about the “deep Internet”, i2p, tor, onion, anonymous p2p networks, and in general a breath of childhood hacker romance, when the Internet was something mysterious and was only available from two in the morning at 31200 ...
In general, the goal was set: to make a proxy server through which you can access any sites (including sites in the .i2p and .onion domains) bypassing any blockages. The goal of anonymity is not intended.
I managed to cross with a hedgehog, and now, like 17 years ago, I am exploring the deeper layers of the Internet. By the way, if we talk about i2p, then the speed of sensations is not much more than the Internet 17 years ago. The story is cyclical.
')
The article does not call for any actions of a political or criminal nature and is intended for those who do not like the framework and restrictions and chooses what and how to read.
How it works:
The main proxy server is squid.
Through cache_peer (upstream proxy), squid connects to i2p and tor. tor is a Socks proxy, and squid is an http proxy, so a privoxy layer is embedded between squid and tor.
We also have an updated ACL list of all blocked resources on the Russian Internet.
Squid handles requests from browsers as follows:
If a URL is requested in the .i2p domain, then the request is passed along a chain in i2p.
If a URL is requested in the .onion domain, the request is passed along the tor chain.
If a forbidden URL is requested, the request is passed along the chain to tor.
All other requests are sent directly by squid.
Instructions on how to make the Internet without limitations with your own hands:FreeBSD 10 was used as the OS. If you have hands, you can do the same on any * NIX system
Software: Squid, tor, i2p, git (optional).
I2P may require port forwarding from the gateway if your proxy does not have a public IP address.
The system has only one network interface with the IP address 192.168.33.192
For a start, we are convinced that we have all the updates on the system and ports, the correct time zone is set and the time is synchronized with the world time.
We put programs from portsInstalled ports before installation:
compat6x-amd64-6.4.604000.200810_3 Convenience package to install the compat6x libraries
dialog4ports-0.1.5_2 Console Interface to configure ports
perl5.16-5.16.3_18 Practical Extraction and Report Language
pkg-1.4.4 Package manager
portmaster-3.17.7
Installation, for all ports all options by default. You may need to manually download the java distribution. Also, anyone can install via pkg install.
root@freedom_proxy:~
If we use GIT, then in addition we set:
root@freedom_proxy:~
We get the installed versions of programs:
squid-3.4.10_2
tor-0.2.5.10_1
i2p-0.9.16
privoxy-3.0.22
In the file /etc/rc.conf we register:
i2p_enable="YES" i2p_user="i2p" squid_enable="YES" tor_enable="YES" privoxy_enable="YES"
Configure i2p:Create an i2p user:
root@freedom_proxy:~
We become a user of i2p and do the primary configuration:
root@freedom_proxy:~
On FreeBSD 10, i2p will not work properly, will generate the error “The current version of the Tanuki wrapper does not support FreeBSD 10”, therefore in the /usr/local/etc/rc.d/i2p file
we change the line
command="/usr/local/sbin/i2prouter"
on line
command="/home/i2p/i2p/runplain.sh"
and in the file /home/i2p/i2p/runplain.sh
we change the line
I2PTEMP="%SYSTEM_java_io_tmpdir"
on
I2PTEMP="/tmp"
Run i2p:
root@freedom_proxy:~
We check that the process has started, java should be present in the process list:
root@freedom_proxy:~
in the file / etc / hosts prescribe
127.0.0.1 localhost localhost.my.domain i2pconsole
This line is needed to access the i2p management console from the browser.
Configuring TORin the / usr / local / etc / tor / torrc file we uncomment the line
RunAsDaemon 1
Create the missing directories and run tor:
root@freedom_proxy:~
Customize Privoxywe need privoxy as a bridge between Squid and Tor
in the file / usr / local / etc / privoxy / config
we change
listen-address 127.0.0.1:8118
on
listen-address 192.168.33.192:8118
This replacement is required for squid. squid binds the cache-peer to the ip address and cannot have more than one cache-peer at 127.0.0.1
Then we find the fragment with forward examples and add the line
forward-socks4a / 127.0.0.1:9050 .
The dot at the end of the line is required!
Run privoxy:
root@freedom_proxy:~
Configuring SquidAt the beginning of the /usr/local/etc/squid/squid.conf file, write the lines:
acl russia_block_urls url_regex "/usr/local/etc/squid/zapret-urls.txt" acl i2p_urls url_regex -i .*://.*\.i2p\/.* acl onion_urls url_regex -i .*://.*\.onion\/.* cache_peer 127.0.0.1 parent 4444 4444 no-digest allow-miss no-query cache_peer_access 127.0.0.1 allow i2p_urls cache_peer 192.168.33.192 parent 8118 8118 no-digest allow-miss no-query cache_peer_access 192.168.33.192 allow onion_urls cache_peer_access 192.168.33.192 allow russia_block_urls never_direct allow onion_urls never_direct allow i2p_urls never_direct allow russia_block_urls never_direct deny all always_direct deny onion_urls always_direct deny i2p_urls always_direct deny russia_block_urls always_direct allow all
Create an empty file /usr/local/etc/squid/zapret-urls.txt
root@freedom_proxy:~
We start squid.
root@freedom_proxy:~
Customize the download of the list of prohibited URLsWe will use the site
https://antizapret.info as a source, or rather, a regularly updated csv list available through git-hub
https://github.com/zapret-info/ziOption using gitroot @ freedom_proxy: ~ # mkdir / root / zapret-info
Create the file /root/zapret-info/getzapretinfo.sh
Making the file executable:
root@freedom_proxy:~
Option without git and temporary files: fetch -o - https://raw.githubusercontent.com/zapret-info/zi/master/dump.csv | sed 1d | cut -d ';' -f 3 | tr "\|" "\n" |sed 's/^[ \t]*//;s/[ \t]*$//' |uniq > /usr/local/etc/squid/zapret-urls.txt
In both cases, we get the dump.csv file from the Internet, then we perform actions with it:
“Sed 1d” - cut off the first line
“Cut -d ';' -f 3 "- cut everything except the third column.
tr "\ |" "\ n" - replace the symbol | per line break
sed 's / ^ [\ t] * //; s / [\ t] * $ //' - trim the spaces and tabs
uniq - delete duplicate lines.
The result is recorded in /usr/local/etc/squid/zapret-urls.txt
in crontab we write a regular file update:
1 2 * * * root fetch -o - https://raw.githubusercontent.com/zapret-info/zi/master/dump.csv | sed 1d | cut -d ';' -f 3 | tr "\|" "\n" |sed 's/^[ \t]*//;s/[ \t]*$//' |uniq > /usr/local/etc/squid/zapret-urls.txt
Check the work of the proxy:In our favorite browser, we register the proxy server 192.168.33.192 port 3128 and begin to check.
We go to the address
http://hideme.ru/ip/ and see what is indicated in the proxy item, there should be something like “You are using a proxy server 1.1 localhost (squid / 3.4.10) and your real IP: XX.XX .XX.XX ”
Squid works.
Now we check the work of TOR.
Go to the website
http://thehiddenwiki.org or google the address where the hidden wiki now lives and then try to access any of the .onion links, for example
http://3g2upl4pq6kufc4m.onion/ is a search engine.
http://zqktlwi4fecvo6ri.onion/wiki/index.php/Main_Page - an uncensored onion catalog of sites with preference and courtesans.
If everything is configured correctly, we will see the desired page.
If the proxy issued the error “Connection with 192.168.33.192 failed” - we do not have privoxy running, or the squid - privoxy bundle is configured incorrectly.
If we see an error 503 from privoxy (Privoxy was unable to socks4a-forward your request), then two options are possible: we entered the address of a nonexistent server, or problems with tor. For accurate diagnosis, it is recommended to check out a dozen onion links. If none works, carefully read the tor error file.
Check the work of i2p:
Go to the address
http: // i2pconsole: 7657 / homeOn the left under the i2p logo is the network status. If the status is OK or Firewalled - you can work. Testing status lasts for some time after i2p launch.
We look at the bottom of the list of recommended sites in the Eepsites of Interest.
We try to follow the links:
http: //plugins.i2p/http: //anoncoin.i2p/To configure i2p, go to
http: // i2pconsole: 7657 / consoleAt the final stage of testing, we check locking bypass:
go to the site
https://antizapret.info/ , look at the list of prohibited resources and try to go to a few sample. Pages should load without any problems.
Hooray! Now the Internet has become more!