torを使った学び

torを使った学び

お久しぶりです。大学時代の同期に敬語が使えたの?と驚かれたSRE部のm-ishizukaです。 今年も早いもので既に12月・・・なんということでしょう。

あらまし。

自宅でtorでsocks proxyを立てている夢をみましたが、複数立てるのが管理上面倒そうでした。 一つにしたら外向きIPがそれぞれ変わるのか?それともtor daemonで一つなのか?を確認してみたかった。

せっかくなので合わせてdockerの勉強教材にもなるかな?と思い綺麗に書いてみました。

注意事項

  • 他人への迷惑行為はやめましょう
    • torやifconfig.ioに対して過度なリクエストなど
    • その他の社会的によくない行為など
  • dockerのインストールは自分で頑張りましょう

事前準備

windows / macは茨の道, 頑張ってください

  • docker
  • docker-compose (3.6以上,最新がおすすめ)
  • hadolint
  • CLI環境で戦う心構え

部材ダウンロード

作業ディレクトリでダウンロードしてください。

tord contianerビルド

  • docker-compose build

ビルド中に中身をみてみよう

~ Dockerfile ~

  • hadolint Dockerfile

宗教的な意味で、package pinning だけはしないです。最新版を常に使う方が脆弱性対応的に楽だから・・・という運用目線での対応

worker process

  • 趣味の問題でbuildpack-deps:curl
  • curlをsocks5h proxyでifconifg.ioにアクセス、完了時刻・tor出口IP・curlの応答までの時間・実施したworkerIDを記録
  • 60秒毎に実施
  • 本当はtiniとかを噛ませた方が良い

result

  • mkdir data
  • touch data/ip
  • chmod +x entrypoint.sh
  • docker-compose up -d tord
  • docker-compose up worker0 worker1 worker2
  • tail -f data/ip

結果は自身の目でみましょう。(Tor nodeのIPをここに記述したくないので・・・)

ちなみに、私が実施した際は

  1. worker0 ~ 2でそれぞれ異なるIPを記録
  2. 一つのworkerに着目した時、数分間は同一IPだが、数分後に異なるIPを記録
  3. worker数を手動で増やすとそれだけ異なるIPを記録

結論

  • 社内勉強の素材的にはいい感じのネタにできた
    • dockerで少し遊べるようになる
  • ブラックボックス的な調査の結果,torはクライアントのIP毎にトンネルを掘ってくれるっぽい
© 2016 - 2022 DARK MATTER / Built with Hugo / Theme Stack designed by Jimmy