Big Brother によるオンライン追跡を防ぐためにTorを使用していますか? 使用するのは非常に簡単ですが、すべてのインターネット対応デバイスでTorを設定するのは非常に面倒な場合があります。
Raspberry Pi を匿名ワイヤレス アクセス ポイントとして使用すると、多くの手間を省くことができます。Pi は IP アドレスを割り当て、それに接続されているデバイスは Torネットワーク経由でインターネットにアクセスできるようになります。
このプロジェクトを立ち上げて実行するには、次のものが必要です。
- Raspberry Pi とRaspbian ディストリビューションが入った SD カード。これまでにこれを行ったことがない場合は、チュートリアルに従って Raspbian を起動して実行してください。
- イーサネット ケーブルも必要です。一方の端を Pi のイーサネット ポートに接続し、もう一方の端をワイヤレス ルーターに接続します。これが、Pi がインターネットに接続する方法です。
- Raspberry Pi と互換性のある USB Wi-Fi アダプターも必要です。まだ入手していない場合は、Pi で動作することがわかっている互換性のあるアダプターのリストを確認してください。
アクセスポイントPi
Pi をセットアップしたら、SSH 経由でリモート マシンから Pi を構成できます。チュートリアルの残りの部分では、Pi の IP アドレスが192.168.2.100であると仮定します。Pi と同じルーターに接続されている端末を起動し、次のように入力します。
それに接続するために。Pi で自分自身を認証した後、iwconfigを使用して、ワイヤレス アダプターがデバイスによって認識されていることを確認します。次に、パッケージリストを更新します
sudo apt-get アップデート
次に、アクセス ポイントとして機能するソフトウェアをインストールします。
sudo apt-get install hostapd isc-dhcp-server
インストールされたら、セットアップを行います。まず、DHCP を制御し、接続されているすべてのデバイスに IP アドレスを自動的に割り当てる/etc/dhcp/dhcpd.confファイルを編集します。nanoテキスト エディタで開きます。
sudo nano /etc/dhcp/dhcpd.conf
次の 2 行の前に#を追加してコメントアウトし、次のようにします。
#オプション ドメイン名 "example.org";
#オプション ドメイン名サーバー ns1.example.org、ns2.example.org;
同じファイル内で下にスクロールし、authoritative という単語のコメントを解除します。先頭の#を削除します。
次に、ファイルの最後まで下にスクロールして、次の行を追加します。
サブネット 192.168.12.0 ネットマスク 255.255.255.0 {
範囲 192.168.12.5 192.168.12.50;
オプション ブロードキャストアドレス 192.168.12.255;
オプションルーター 192.168.12.1;
デフォルトのリース時間 600;
最大リース時間 7200;
オプション ドメイン名 "ローカル";
オプション ドメイン名サーバー 8.8.8.8、8.8.4.4;
}
これらの行では、Pi アクセス ポイントの IP アドレス ( 192.168.12.1 )、接続されたデバイスに配布する IP アドレスの範囲 ( 192.168.12.5から192.168.12.50 )、およびドメイン ネーム サーバー ( 8.8.8.8および8.8.4.4 )。これらの値は好みに応じて変更できます。完了したら、ファイルを保存します (Ctrl+X)。
静的IPの設定
次に、/etc/default/isc-dhcp-server を編集して、新しい DHCP サーバーがリッスンするインターフェイスを指定します。ファイルを開き、 INTERFACES=""という行まで下にスクロールします。引用符の間にwlan0を挿入してINTERFACES="wlan0"となるようにし、ファイルを保存します。
次に、ワイヤレス アダプター (wlan0) をセットアップし、静的 IP アドレスを割り当てます。まず、コマンドsudo ifdown wlan0を使用してワイヤレス アダプタを非アクティブ化し、 /etc/network/interfacesファイルを開きます。ファイル内で#を追加して、 wlan0 に関連付けられたすべての既存のエントリをコメント アウトします。たとえば、次のようになります。
# iface wlan0 inet マニュアル
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
# iface デフォルト inet dhcp
次に、 allow-hotplug wlan0という行の下に次の行を追加して、新しいアクセス ポイントの静的 IP アドレスを設定します。
iface wlan0 inet 静的
アドレス 192.168.12.1
ネットマスク 255.255.255.0
ファイルを保存し、次のコマンドでインターフェイスをアクティブにします。
sudo ifconfig wlan0 192.168.12.1
自分の意見を主張する
ワイヤレス アクセス ポイントを定義したので、次はそれを構成します。次の内容を含む/etc/hostapd/hostapd.confという名前の新しいファイルを作成します。
Interface=wlan0
ssid=TorSpot
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=
1ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=$Your_Passphrase$
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
TorSpot というパスワードで保護されたネットワークを設定しました。ssid=文字列で指定することで、アクセス ポイントに別の名前を指定できます。また、wpa_passphrase=文字列を変更してカスタム パスワードを指定します。Pi のアクセス ポイントに対して自分自身を認証するには、このパスワードを入力する必要があります。
次に、 /etc/default/hostapdファイル内でこの設定ファイルを指定することで、この設定ファイルの場所を Pi に指示します。ファイルを開き、 #DAEMON_CONF=""というコメントアウトされた行を見つけてコメントを解除し、 DAEMON_CONF="/etc/hostapd/hostapd.conf"になるように編集します。
NAT設定
次に、複数のクライアントが Pi のアクセス ポイントに接続し、すべてのトラフィックを単一のイーサネット IP 経由でルーティングできるように NAT を設定する必要があります。/etc/sysctl.confファイルを編集し、最後に次の行を追加します。
net.ipv4.ip_forward=1
ファイルを保存して入力します
sudo sh -c "エコー 1 > /proc/sys/net/ipv4/ip_forward"
転送を有効にします。次に、インターネットに接続されているイーサネット ポート (eth0) と、ネットワーク内のデバイスに公開されている Wi-Fi アクセス ポイント (wlan0) を接続するルーティング ルールを指定する必要があります。
sudo iptables -t nat -A POSTROUTING -o eth0 -j マスカレード
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j受け入れる
デフォルトでは、これらのルールは Pi を再起動するとフラッシュされます。それらを永続的にするには、最初に次を実行します。
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
次に、/etc/network/interfacesファイルを編集し、最後までスクロールして追加します。
アップ iptables-restore < /etc/iptables.ipv4.nat
これにより、ブート時にデバイスがアクティブ化されるときにルールがロードされます。
これで、Pi アクセス ポイントの設定はすべて完了しました。テストするには、次のようにして DHCP サーバーを再起動します。
sudo サービス isc-dhcp-server restart
次のコマンドを使用して、構成でアクセス ポイントを手動で有効にします。
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
「不明なドライバー」エラーが発生した場合は、「独自の hostapd」に関するセクションをお読みください。すべてがうまくいけば、ワイヤレス アクセス ポイント (TorSpot) が利用可能な Wi-Fi ホットスポットのリストに表示されます。
別のコンピューターまたはスマートフォンから接続し、hostapd.conf ファイルで指定したパスワードを使用して認証できます。接続すると、インターネットを正常に閲覧できるようになります。
新しいアクセス ポイントをテストしたら、Pi が起動するとすぐに有効になるように設定を固定しましょう。次のコマンドを使用して、hostapd サービスと DHCP サービスを開始します。
sudo サービス hostapd 開始
sudo サービス isc-dhcp-server 開始
次に、次のように init スクリプトを更新します。
sudo update-rc.d hostapd を有効にする
sudo update-rc.d isc-dhcp-server Enable
次のコマンドを使用して Raspberry Pi を再起動します。
sudo シャットダウン -r 今すぐ
Raspberry Pi が再びバックアップされると、新しいアクセス ポイントに接続して通常どおり閲覧できるようになります。
トリフィアクセス
これで、Raspberry Pi がワイヤレス ホットスポットとして完全に機能するようになりました。ただし、データはまだ匿名化されていません。そこで、 Tor をミックスに加えてみましょう。SSH で Pi に戻り、次のようにTorをインストールします。
sudo apt-get インストールツール
インストールされたら、Tor の設定ファイル/etc/tor/torrcを編集し、先頭に次の行を追加します。
ログ通知ファイル /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.12.1
DNSPort 53
DNSListenAddress 192.168.12.1
これらの設定は、アクセス ポイントの IP アドレスをTorに通知し、そこを流れるトラフィックを匿名化するように依頼します。
次に、Wi-Fi アダプター (wlan0) 経由の接続がTor経由でルーティングされるようにルーティング テーブルを変更します。まず、次のコマンドを使用して、既存のリダイレクトと NAT ルールをフラッシュします。
sudo iptables -F
sudo iptables -t nat -F
Pi に SSH 接続できるようにしたいので、次のように SSH のポート 22 の例外を追加します。
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
次に 2 つのルールを追加します。1 つ目は DNS ルックアップのパススルー ルールで、2 つ目はすべての TCP トラフィックをTorのポート 9040 に送信します。
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to -ポート9040
以前と同様、これらのルールは次のセッションには引き継がれません。再起動時にそれらをロードするには、以前と同様に次のようにそれらを NAT 保存ファイルに保存するだけです。
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
前のセクションでは、インターフェイスがアクティブ化されたときにこのファイルの内容をロードするように/etc/network/interfacesファイルを構成しました。
これで、Tor サービスを有効にできるようになりました。
sudoサービスの開始
関連するブート スクリプトを次のように更新します。
sudo update-rc.dtor を有効にする
それでおしまい。ここで Pi を再起動します。再びバックアップすると、以前と同様に Pi ホットスポットである TorSpot に接続できるようになります。ただし、以前とは異なり、すべてのトラフィックは匿名のTorネットワーク経由でルーティングされます。
TorSpot に接続されているデバイスからhttps://torproject.orgにアクセスして、これが発生していることを確認できます。このページには、ISP の IP アドレスではない IP アドレスもリストされます。TorSpot に接続されている別のデバイスからこのページにアクセスすると、別のアドレスが表示されます。おめでとうございます。すべてのデバイスで匿名で Web を閲覧できるようになりました。
簡単なヒント
- Pi にリモート接続しているときにロケール エラーが発生した場合は、/etc/ssh/ssh_configを編集してSendEnv LANG LC_*行をコメントアウトして、ロケールを転送しないようにしてください。
- tail -f /var/log/syslogコマンドを使用して、すべてのシステム メッセージを監視します。これは、Pi ホットスポットに接続できない場合に便利です。
- このチュートリアルでは Google の DNS サービスを使用しましたが、OpenDNS や ISP の DNS サーバーなどの別のサービスを/etc/dhcp/dhcpd.confファイルで指定することで使用できます。