Ubuntu
Tor

Ubuntuで匿名性の高い環境を構築する方法

Tailsだとデータ消えちゃうから、Ubuntuに自分で環境構築してしまえってことで、その方法のメモ。うっかりNSAの秘密を暴露しちゃった人の普段使い用。
なお、当然のことですが本稿の技術を犯罪に使わないでください。本稿は一切のサイバー攻撃や犯罪行為等を手助けするものではありません。

Ubuntu

最新版はUbuntu 18.04 LTS。古いバージョンでもよければ17.10の日本語Remix版を使う。
インストールするときに「安全のため新しいUbuntuのインストールを暗号化する」を選択する。これでディスク全体が暗号化される。バールのようなものでこじ開けられて、HDDだけ取り出されても中身がわからない。安全。
起動時に二度パスワードを入力するのが面倒な場合は自動ログインを有効にしておく。

Firefox

設定→プライバシーとセキュリティを下記の通り設定
・Firefoxに履歴を一切保存させない
 履歴を保存させないのは主に次回起動時のCookieによる特定を防ぐため。利用用途によって、好きに設定してください。
・トラッキング防止→常に
・「Firefoxが技術的な対話データをMozillaへ送信することを許可する」のチェックを外す

続いて下記リンクからNoScriptをインストールする。
https://addons.mozilla.org/ja/firefox/addon/noscript/
デフォルトだと数十近いサイトのスクリプトが許可されてしまっているので、NoScript→Options→Per-site Permissionsで各サイトをTRUSTEDからDEFAULTに変更する。

匿名通信

Torでブラウジングしたいだけなら、Tor Browserだけインストールすればよい。
今回はTorの先に自分で用意したプロキシを使いたかったのでProxychainsを利用できる環境を構築する。なんでそんなことがしたいのかは察して欲しい。
Proxychainsを使うことによってPC→Tor→プロキシ→サイトの経路で接続できる。

Tor

Torをインストールして、自動起動を有効化する。

$ sudo apt install tor
$ sudo systemctl start tor

Proxychains

Proxychainsをインストールするための事前準備をする。

$ sudo apt install git
$ sudo apt install make
$ sudo apt install make-guile
$ sudo apt install gcc

Proxychainsのパッケージを取得する。

$ git clone https://github.com/rofl0r/proxychains-ng
$ cd proxychains-ng

そのままだとインストール時に怒られるので、Makefileの85~86行目を以下のものに書き換える。

 $(CC) -shared $(LDFLAGS) $(LD_SET_SONAME)$(LDSO_PATHNAME) -lpthread $(LIBDL) -o $@ $(LOBJS)

Proxychainsをインストールする。

$ ./configure --prefix=/usr --sysconfdir=/etc
$ make
$ sudo make install
$ sudo make install-config

下記コマンドで接続経路の編集を行う。デフォルトでは最初にTorに接続する。超能力でプロキシを手に入れたら、proxychains.confの最終行に入手したプロキシを追加することで、Torの先につなげるプロキシを指定できる。プロキシのタイプによって異なるが、「http IPアドレス ポート」という書き方でいけるはず。

$ sudo gedit /etc/proxychains.conf

以下のコードで指定した接続経路でFirefoxを使える。

$ proxychains4 firefox

コマンドラインで期待の経路で接続されているか、また確認君+にアクセスして指定プロキシのIPアドレスになっているかを確認すること。
それでは楽しい匿名Ubuntuライフを!

参考にしたサイト

初心者が解説するTor browserの基本 - NAVER まとめ
https://matome.naver.jp/odai/2145977345281799201

proxychains-ngを使ってみた - 以下省略!
https://abyssluke.hatenablog.com/entry/2016/09/29/204521

symbol lookup error: ./libproxychains4.so: undefined symbol: pthread_once · Issue #53 · rofl0r/proxychains-ng · GitHub
https://github.com/rofl0r/proxychains-ng/issues/53/29/204521