一般に、目標は設定されていました。ロックをバイパスして、任意のサイト(.i2pおよび.onionドメイン内のサイトを含む)にアクセスできるプロキシサーバーを作成することです。 匿名性を確保するという目標は設定されていません。
すでにハリネズミと交わることができましたが、今では17年前と同じように、インターネットの深い層を探索しています。 ところで、i2pについて話すと、感覚の速度は17年前のインターネットの速度よりもそれほど速くありません。 歴史は周期的です。
この記事は、政治的または犯罪的な性質の行動を要求しておらず、フレームワークと制限が気に入らず、何をどのように読むかを選択する人を対象としています。
仕組み:
メインプロキシサーバーはsquidです。
cache_peer(アップストリームプロキシ)を介して、squidはi2pおよびtorに接続します。 torはSocksプロキシであり、squidはhttpプロキシであるため、squidとtorの間にプライベートレイヤーが組み込まれています。
また、ロシアのインターネットでブロックされているすべてのリソースのACLリストが更新されています。
Squidは、ブラウザからのリクエストを次のように処理します。
URLが.i2pドメインで要求された場合、要求はチェーンでi2pに送信されます。
URLが.onionドメインで要求された場合、要求はチェーンに沿ってtorに渡されます。
禁止されたURLがリクエストされた場合、リクエストはtorにチェーンを渡されます。
他のすべてのリクエストは、Squidから直接送信されます。
自分の手で制限なしにインターネットを作成する方法の手順:
OSとしてFreeBSD 10が使用されました。手があれば、どの* NIXシステムにも同じことを実装できます。
ソフトウェア:Squid、tor、i2p、git(オプション)。
I2Pが機能するには、プロキシにパブリックIPアドレスがない場合、ゲートウェイからポートを転送する必要があります。
システムには、IPアドレス192.168.33.192のネットワークインターフェイスが1つしかありません
まず、システムとポートのすべての更新があること、正しいタイムゾーンが設定されていること、および時刻がワールドタイムと同期していることを確認します。
ポートからプログラムを配置します
インストール前にインストールされたポート:
compat6x-amd64-6.4.604000.200810_3 compat6xライブラリをインストールするための便利なパッケージ
dialog4ports-0.1.5_2ポートを構成するコンソールインターフェイス
perl5.16-5.16.3_18実用的な抽出とレポート言語
pkg-1.4.4パッケージマネージャー
portmaster-3.17.7外部データベースまたは言語なしでポートを管理
インストール。すべてのポートについて、すべてのオプションがデフォルトで設定されています。 Javaディストリビューションを手動でダウンロードする必要がある場合があります。 ご希望の方は、pkg installを使用してインストールすることもできます。
root@freedom_proxy:~ # portmaster -D www/squid root@freedom_proxy:~ # portmaster -D security/tor root@freedom_proxy:~ # portmaster -D security/i2p root@freedom_proxy:~ # portmaster -D www/privoxy
GITを使用する場合、さらに以下を設定します。
root@freedom_proxy:~ # portmaster -D textproc/xmlcatmgr root@freedom_proxy:~ # portmaster -D devel/git
インストールされたプログラムのバージョンを取得します。
squid-3.4.10_2
tor-0.2.5.10_1
i2p-0.9.16
privoxy-3.0.22
ファイル/etc/rc.confに次のように記述します。
i2p_enable="YES" i2p_user="i2p" squid_enable="YES" tor_enable="YES" privoxy_enable="YES"
i2pを構成します。
i2pユーザーを作成します。
root@freedom_proxy:~ # adduser Username: i2p Full name: i2p Uid (Leave empty for default): Login group [i2p]: Login group is i2p. Invite i2p into other groups? []: Login class [default]: Shell (sh csh tcsh nologin) [sh]: Home directory [/home/i2p]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: yes Lock out the account after creation? [no]:
i2pユーザーになり、初期セットアップを行います。
root@freedom_proxy:~ # su - i2p $ /usr/local/sbin/i2prouter install $ exit
FreeBSD 10では、i2pは正しく動作せず、「Tanukiラッパーの現在のバージョンはFreeBSD 10をサポートしていません」というエラーが表示されるため、ファイル/usr/local/etc/rc.d/i2pで
行を変更する
command="/usr/local/sbin/i2prouter"
ライン上
command="/home/i2p/i2p/runplain.sh"
ファイル/home/i2p/i2p/runplain.sh
行を変更する
I2PTEMP="%SYSTEM_java_io_tmpdir"
に
I2PTEMP="/tmp"
i2pを起動します。
root@freedom_proxy:~ # /usr/local/etc/rc.d/i2p start
プロセスが開始したことを確認します。プロセスのリストにjavaが存在する必要があります。
root@freedom_proxy:~ # ps -au | grep java i2p 26809 3.0 3.3 1255096 139080 0 S 1:15PM 0:10.15 /usr/local/openjdk7/bin/java
ファイル/ etc / hostsレジスタ内
127.0.0.1 localhost localhost.my.domain i2pconsole
この行は、ブラウザーからi2p管理コンソールにアクセスするために必要です。
TORをカスタマイズする
ファイル/ usr / local / etc / tor / torrcの行のコメントを外します
RunAsDaemon 1
不足しているディレクトリを作成してtorを実行します。
root@freedom_proxy:~ # touch /var/log/tor root@freedom_proxy:~ # chmod 666 /var/log/tor root@freedom_proxy:~ # mkdir /var/run/tor/ root@freedom_proxy:~ # /usr/local/etc/rc.d/tor start
Privoxyを構成する
SquidとTorの間のブリッジとして必要なprivoxy
ファイル/ usr / local / etc / privoxy / config
変わる
listen-address 127.0.0.1:8118
に
listen-address 192.168.33.192:8118
この置き換えは、Squidに必要です。 squidはcache-peerをIPアドレスにバインドし、127.0.0.1に複数のcache-peerを持つことはできません
次に、前方の例を含むフラグメントを見つけて、行を追加します
forward-socks4a / 127.0.0.1:9050 .
行末のドットは必須です!
privoxyを実行します:
root@freedom_proxy:~ # /usr/local/etc/rc.d/privoxy start
イカのカスタマイズ
ファイル/usr/local/etc/squid/squid.confの先頭に、次の行を記述します。
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
空のファイル/usr/local/etc/squid/zapret-urls.txtを作成します
root@freedom_proxy:~ # touch /usr/local/etc/squid/zapret-urls.txt
イカを起動します。
root@freedom_proxy:~ # /usr/local/etc/rc.d/squid start
禁止されたURLのリストのダウンロードを構成する
https://antizapret.infoというサイトをソースとして使用するか、git-hub https://github.com/zapret-info/ziからアクセスできる定期的に更新されるcsvリストを使用します
gitを使用するオプション
root @ freedom_proxy:〜#mkdir / root / zapret-info
ファイル/root/zapret-info/getzapretinfo.shを作成します
#!/bin/sh cd /root/zapret-info/zapret-info rm -rf zi /usr/local/bin/git clone https://github.com/zapret-info/zi.git cat zi/dump.csv | sed 1d | cut -d ';' -f 3 | tr "\|" "\n" |sed 's/^[ \t]*//;s/[ \t]*$//' |uniq > /usr/local/etc/squid/zapret-urls.txt
ファイルを実行可能にします:
root@freedom_proxy:~ # chmod +x /root/zapret-info/getzapretinfo.sh
gitおよび一時ファイルなしのオプション:
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
どちらの場合も、インターネットからdump.csvファイルを取得し、それを使用してアクションを実行します。
「Sed 1d」-最初の行をカット
「カット-d ';' -f 3“-3列目以外をすべて切り取ります。
tr "\ |" 「\ n」-文字を置き換えます| 改行ごとの文字
sed 's / ^ [\ t] * //; s / [\ t] * $ //'-スペースとタブをトリム
uniq-重複行を削除します。
結果は/usr/local/etc/squid/zapret-urls.txtに書き込まれます
crontabでは、定期的なファイル更新を記述します。
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
プロキシの動作を確認します。
お気に入りのブラウザで、プロキシサーバー192.168.33.192、ポート3128を登録し、チェックを開始します。
アドレスhttp://hideme.ru/ip/にアクセスし、プロキシ句に示されているものを確認します。「プロキシサーバー1.1 localhost(squid / 3.4.10)と実際のIP:XX.XXを使用しています」のようになります。 .XX.XX」
イカは働いています。
次に、TORの動作を確認します。
サイトhttp://thehiddenwiki.orgにアクセスするか、非表示のWikiが現在存在するアドレスをgoogleして、.onionリンクのいずれか、たとえばhttp://3g2upl4pq6kufc4m.onion/をクリックしてみます-これは検索エンジンです。
http://zqktlwi4fecvo6ri.onion/wiki/index.php/Main_Page-好みと遊女のタマネギサイトの無修正カタログ。
すべてが正しく構成されていれば、探しているページが表示されます。
プロキシが「192.168.33.192との接続に失敗しました」というエラーを返した場合、privoxyが実行されていないか、squid-privoxyリンクが正しく構成されていません。
privoxyからエラー503が表示された場合(Privoxyはリクエストをsocks4a-forwardできませんでした)、2つのオプションが可能です:存在しないサーバーのアドレスを入力したか、torの問題を入力しました。 正確な診断のために、ダースのタマネギのリンクをチェックすることをお勧めします。 動作しない場合は、torエラーファイルを注意深く読んでください。
i2pの動作確認:
アドレスhttp:// i2pconsole:7657 / homeに移動します
左側のi2pロゴの下には、ネットワークステータスがあります。 ステータスが[OK]または[ファイアウォール]の場合-作業できます。 テストステータスは、i2pの起動後しばらく保持されます。
Eepsites of Interestセクションの推奨サイトのリストについては、以下を参照してください。
私たちはリンクをたどろうとします:
http://plugins.i2p/
http://anoncoin.i2p/
i2pを設定するには、アドレスhttp:// i2pconsole:7657 / consoleに移動します
テストの最終段階では、ロックのバイパスを確認します。
https://antizapret.info/のサイトにアクセスし 、禁止されているリソースのリストを見て、選択したいくつかのリソースにアクセスしてみてください。 ページは問題なくロードされるはずです。
やった! 今、インターネットは大きくなっています!