Slide 1

Slide 1 text

🧅 🧅 Kenichiro Matohara(matoken) 1 / 51

Slide 2

Slide 2 text

南隅から参加(鹿児島の右下) 好きなLinuxディストリビューションはDebian お仕事募集 mailto:work@matohara.org Kenichiro Matohara(matoken) Kenichiro Matohara(matoken) https://matoken.org https://matoken.org 2 / 51

Slide 3

Slide 3 text

最近 最近 楽しいけどマウス利用面倒 tmuxを久々に確認すると以前足りないなと思っていた機能が大 体揃っているのに気づいて設定中 先月教えてもらった磁石でくっつくUSBケーブルをAliexpressでぽ ちる ケーブルだけ,先端だけのバラ売りもあり価格も安い 16日に日本に……まだ来ない 一昨日の での発表 便利なのでおすすめ 先月のvtm 小江戸らぐ 3月のオフな集まり(第236回) 画像つきHTMLファイルを1ファイルで共有 3 / 51

Slide 4

Slide 4 text

Torで色々 🧅 Torで色々 🧅 最近の状況から利用できると嬉しい人が増えていそうとリレーノードを2つ 80Mbps/日本 80MBps/日本 0.3Mbps) Nitterをonion siteでもhost ダークウェブと呼ばれたり怖そうなイメージ でも便利にも使えます http://nitter2l2szql27s7siskdgvtr4sgeq43x7jodtqmltxu 4 / 51

Slide 5

Slide 5 text

Tor? Tor? 接続経路を匿名化する.通信内容はTor内では暗号化されるが,出入 り口では暗号化されないので別途TLS等が必要 Tor経路内では1ホップごとにカプセル化されてその様がタマネギの 皮のようなのでオニオンルーティングと呼ばれるように  匿名ネットワークはTor以外にもI2P,ZeroNet,Freenetなど がある Tor Project | Anonymity Online 5 / 51

Slide 6

Slide 6 text

遅いのでは? 遅いのでは? 100Mbps環境 100Mbps環境 Tor利用 6 / 51

Slide 7

Slide 7 text

ADSL環境 ADSL環境 Tor利用 7 / 51

Slide 8

Slide 8 text

speedtest-cliだとありえない数値が出る? $ torsocks speedtest-cli Retrieving speedtest.net configuration... Testing from Cia Triad Security LLC (185.220.101.40)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by Gemeindewerke Nümbrecht GmbH (Nümbrecht) [13147.27 km]: 943.083 ms Testing download speed........................................................................ Download: 1.42 Mbit/s Testing upload speed.......................................................................... Upload: 2.68 Mbit/s 8 / 51

Slide 9

Slide 9 text

以前はとても遅かったが今はウェブブラウジング程度なら問題ない感 じ 反応の悪さは気になる 9 / 51

Slide 10

Slide 10 text

ウェブブラウジングをしてみる ウェブブラウジングをしてみる Firefox ESRベースでTorの設定や匿名性を高める拡張機能な どがセットになっている 設定不要でセキュリティも高いのでおすすめ Debianだと torbrowser-launcher というパッケージ Chromimベース.広告ブロック,IPFSなども Shift + Alt + n でTorを使ったプライベートブラウジングが可 能に お手軽だが匿名性は少し下がると思う Torブラウザ Braveブラウザ 10 / 51

Slide 11

Slide 11 text

Torを導入してProxyとして利用 amd64以外でも動く Debianだと tor というパッケージ さんの OnionRouter Torネットワークにルーティングするルータ SBCなどに導入しておくと便利 Tor @ebijun Raspberry Pi向けNetBSDにも入った 11 / 51

Slide 12

Slide 12 text

Android用アプリ 指定した特定のアプリケーションをTor経由で通信できるように できる  既定値では出口ノードになるよう設定されているので注意 (「︙ 」 →「設定」→「リレー中 この端末を非出口リレーにする」にチェッ ク) Orbot 12 / 51

Slide 13

Slide 13 text

どこに繋ぐ? どこに繋ぐ? せっかくならTorを使わないとアクセスできない.onionドメインに 最近Twitterも対応 The Tor Project (@torproject): "We’re very happy to see now offering an .onion address. 🐦🧅 https://twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5k For many years Tor users have been looking for such a f Twitter! Now is a vital time to help people stay connect services help to do this." | nitter Onionドメインの一覧 - Wikipedia 13 / 51

Slide 14

Slide 14 text

emailも emailも SeaMonkey/Thunderbirdの拡張機能 プライバシーを設定を強化し,Torを介して電子メールが利用できるよ Torは別途必要 している TorBirdy ProtonMailもTorに対応 https://mail.protonmailrmez3lotccipshtkleegetolb73f 14 / 51

Slide 15

Slide 15 text

/ torify / torify 指定したアプリケーションをTor経由で利用できるようにする torsocks torsocks $ w3m -dump https://check.torproject.org/ | head This page is also available in the following languages: [English ] [Go] [tor-off] Sorry. You are not using Tor. Your IP address appears to be: 180.131.110.140 If you are attempting to use a Tor client, please refer to the Tor website and specifically the frequently asked questions. $ torsocks w3m -dump https://check.torproject.org/ | head This page is also available in the following languages: [English ] [Go] [tor-not] Congratulations. This browser is configured to use Tor. Your IP address appears to be: 185.82.127.25 However, it does not appear to be Tor Browser. Click here to go to the download page 15 / 51

Slide 16

Slide 16 text

sshやwgetなんかも $ torsocks ssh pi3bddj6lflqdtsfhdlja2zma3m7kqc4rhwpytoa37pbjc63suocj6qd.onion $ torsocks wget http://dl.amnesia.boum.org/tails/stable/tails-amd64-4.28/tails-amd64-4.28.img https://mirrors.edge.kernel.org/tails/stable/tails-amd64-4.28/tails-amd64-4.28.img.sig 16 / 51

Slide 17

Slide 17 text

Tor ssh tips Tor ssh tips torsocks, torify経由で接続可能(sshサーバの設定は後述) ssh_config に設定しておくことでいつものようにsshだけでも使え る kex_exchange_identification: read: Connection reset by peer ssh_confg設定済でtorsocksを使うとエラーに $ torsocks ssh pi3bddj6lflqdtsfhdlja2zma3m7kqc4rhwpytoa37pbjc63suocj6qd.onion $ torify ssh pi3bddj6lflqdtsfhdlja2zma3m7kqc4rhwpytoa37pbjc63suocj6qd.onion Host *.onion ProxyCommand /bin/nc -xlocalhost:9050 -X5 %h %p 17 / 51

Slide 18

Slide 18 text

.onion接続時に too long for Unix domain socket と怒ら れる > unix_listener: path "/home/matoken/.ssh/tmp/ssh- user@hostname:22.r3NYV60KUEAXUuRZ" too long for Unix domain socket hostnameが長くて, ControlPath で設定したファイルの作成 時にファイルシステムの制限で失敗 ControlPath を ~/.ssh/tmp/ssh-%r@%h:%p → ~/.ssh/tmp/%C にして回避 %C は %l%h%p%r のハッシュ( a1e724af86ad309c968737a2fb73a3f1c0298e05 )人間には 難しい 18 / 51

Slide 19

Slide 19 text

DNS漏洩の問題 DNS漏洩の問題 DNSはUDP/TCPに対応しているがUDPが規定値なのでTCP専用 のTorを介さずに直接名前解決してしまい記録が残ってしまう TorにはDNSリゾルバが搭載されているのでiptable等を利用して 名前解決をTorのDNSリゾルバに向けることで解決できるけど切り 替え大変 後述のセキュリティOSを利用するのがお手軽  DNSキャッシュを構築することでDNS over HTTPS over Tor等も可能 19 / 51

Slide 20

Slide 20 text

onion siteをホストする onion siteをホストする Torネットワーク内にウェブサイトを立ち上げる サーバの所在を調べにくい Tor exitノードを通らない 20 / 51

Slide 21

Slide 21 text

設定 設定 Torの設定ファイルのtorrcを編集 HiddenServiceDir / HiddenServicePort を有効にしてTor再起 動 ${HiddenServiceDir}/hostname のonionアドレスで接続でき るようになる ウェブサーバでonionアドレスをVirtualHost設定  ${HiddenServiceDir} 以下のファイルは要バックアップ HiddenServiceDir /var/lib/tor/hidden_service/ HiddenServicePort 80 127.0.0.1:80 21 / 51

Slide 22

Slide 22 text

$ sudo ls /var/lib/tor/hidden_service hostname hs_ed25519_public_key hs_ed25519_secret_key $ sudo cat /var/lib/tor/hidden_service/hostname nitter2l2szql27s7siskdgvtr4sgeq43x7jodtqmltxur3kioycnjid.onion $ torsocks w3m -dump nitter2l2szql27s7siskdgvtr4sgeq43x7jodtqmltxur3kioycnjid.onion/matoken1 | @matoken だったけどBANされた人 YoutubeもBANされたよ 🔆🚲📷💻 秋葉原方面に住みたい過疎地住 matoken.org/ Joined June 2018 • Tweets 8,858 • Following 70 • Followers 89 22 / 51

Slide 23

Slide 23 text

https? https? onionアドレス対応サービスが少ない Let’s Encryptのフォーラムでもたまに話題に上がるが難しそう? https://community.letsencrypt.org/search?q=onion 23 / 51

Slide 24

Slide 24 text

Vanity Address Vanity Address onionアドレスは[a-z|3-7]の32文字(BASE32)からなる16文字の o スと,56文字の onion v3 アドレスがあって,v2アドレスは2021年11月 後者のv3アドレスが使われる 通常はTor初回起動時に鍵とアドレスが作られるが分かりづらい 例: ixp4g35iisccjb326xjynni3jjl4dgbd26s2x3mjns432i3pz Vanity Addressの例 facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7 (旧 facebookcorewwwi.onion) twitter3e4tixl4xyajtrzo62zg5vztmjuricljdp2c5kshju4av 24 / 51

Slide 25

Slide 25 text

ツールを使って好みの単語から始まるアドレスを探すことが可能 Raspberry Pi 3 model Bでも7文字合致なら結構すぐに掘れる Raspberry Pi 3 model B(aarch64 kernel)  GitHub - cathugger/mkp224o: vanity address generator for tor onion v3 (ed25519) hidden services >calc/sec:103867.893552, succ/sec:0.003333, rest/sec:0.003333, elapsed:300.130969sec >calc/sec:100761.039921, succ/sec:0.003333, rest/sec:0.003333, elapsed:600.155046sec >calc/sec:94511.877034, succ/sec:0.009999, rest/sec:0.009999, elapsed:900.194934sec >calc/sec:91854.274354, succ/sec:0.003334, rest/sec:0.003334, elapsed:1200.130938sec torのhidden serviceで使うアドレスを計算する(Vanity Addresses) – matoken’s meme 25 / 51

Slide 26

Slide 26 text

sshも繋がるようにしてみる sshも繋がるようにしてみる torrcにsshの設定を追加 & Tor再起動 sshdにはlocalhostからの接続に見える(ので接続できるようにし ておく)  同様に他のサービスも設定可能 HiddenServicePort 22 127.0.0.1:22 26 / 51

Slide 27

Slide 27 text

HiddenServiceのメリット? HiddenServiceのメリット? 実は透過性が高い 自宅内LanのTor HiddenServiceのonionアドレスに外部から Tor経由で接続可能 外部からTor経由でssh loginしたりVPN代わりにも? 遅いけど非常時には助かることも $ sshuttle -r matoken@pi3bddj6lflqdtsfhdlja2zma3m7kqc4rhwpytoa37pbjc63suocj6qd.onion 0/0 27 / 51

Slide 28

Slide 28 text

Torに貢献したい Torに貢献したい 寄付 Tor Project | Donate 28 / 51

Slide 29

Slide 29 text

Torリレーになる Torリレーになる エントリーノードや転送リレーになる(一般公開される) 他のTorリレーやexitノードに転送はするがインターネットへの出口に はならない 29 / 51

Slide 30

Slide 30 text

Torブリッジになる Torブリッジになる Torのパブリックディレクトリに記載されないリレーノード 政府等によりパブリックリレーがブロックされても接続できるように 30 / 51

Slide 31

Slide 31 text

Tor exitノードになる Tor exitノードになる Torネットワークからインターネットへの出口となる インターネットの出口になるのでサーバに管理アドレスが記録されるこ ととなり,逮捕等される可能性もあるので試したことはない…… 31 / 51

Slide 32

Slide 32 text

リレーノードの設定例 リレーノードの設定例 torrcで設定を行う 複数建てる場合は Nickname や MyFamily も設定しておくと良さそ う /etc/tor/torrc 1 ポート設定,firewallの開放も行う. 2 転送帯域.最低でも20Kbpsを設定 3 バースト帯域 4 exitノードにならないように拒否 ORPort 9001 RelayBandwidthRate 1000 KB RelayBandwidthBurst 2000 KB ExitPolicy reject *:* 1 2 3 4 32 / 51

Slide 33

Slide 33 text

TorモニタのNyx TorモニタのNyx 昔はTor-Armというものがあったが現在はNyxという名前に Debianだと nyx というパッケージ $ sudo apt install nyx $ sudo -u debian-tor nyx 33 / 51

Slide 34

Slide 34 text

34 / 51

Slide 35

Slide 35 text

リレーノードのTorバージョン リレーノードのTorバージョン リレーに使っているTorのバージョンが0.3.5だと拒否されるように なるはやでアップデートを The Tor Project (@torproject): "Dear relay operators, Any relays running Tor version 0.3.5 will be rejected from the Tor network next week. Please upgrade your relay ASAP. If you need any help, please feel free to ask on the Tor Forum: https://forum.torproject.net/ Thank you for your help powering Tor." | nitter 35 / 51

Slide 36

Slide 36 text

Debian Buster(1つ前のバージョン)だとちょうど0.3.5 buster-backportsに0.4.5があるのでそれで繋いで折を見て Bullseyeにdist-upgradeするのが良さそう $ rmadison -a amd64 tor tor | 0.2.5.16-1 | oldoldoldstable | amd64 tor | 0.2.9.16-1 | oldoldstable | amd64 tor | 0.3.5.10-1~bpo9+1 | stretch-backports | amd64 tor | 0.3.5.16-1 | oldstable | amd64 tor | 0.4.4.5-1~bpo9+1 | stretch-backports-sloppy | amd64 tor | 0.4.5.10-1~bpo10+1 | buster-backports | amd64 tor | 0.4.5.10-1~deb11u1 | stable | amd64 tor | 0.4.6.8-1~bpo10+2 | oldstable-backports-sloppy | amd64 tor | 0.4.6.8-1~bpo11+2 | bullseye-backports | amd64 tor | 0.4.6.10-1 | testing | amd64 tor | 0.4.6.10-1 | unstable | amd64 tor | 0.4.7.4-alpha-1 | experimental | amd64 36 / 51

Slide 37

Slide 37 text

セキュリティOS セキュリティOS Torの設定はそんなに難しくないが誤った設定で情報が漏れるのが怖 い.セキュリティOSを使うと少し安心? Debianベース,Gnomeデスクトップ環境 ライブDVD/USBシステムでシャットダウン時にデータはすべて 消える USBではluksの永続化領域の利用は可能 SecureBootにも対応したので使いやすくなった すべての通信にTorを利用 個人的に一番良く使っている TailsOS 37 / 51

Slide 38

Slide 38 text

fedoraベース Xenを使った仮想化でアプリケーションごとにシステムを分離, 使い捨てにすることも Whonixを統合してシステム全体でTor利用 Debianベース,KDEデスクトップ環境 すべての通信にTorを利用 Qubes OS Whonix 38 / 51

Slide 39

Slide 39 text

便利なツール 便利なツール OnionShare Enterprise Onion Toolkit 39 / 51

Slide 40

Slide 40 text

Torを使ったファイル共有ソフト ファイルアップロード,ダウンロード,テキストチャット,onionサイトの ホストが可能 既定値でprivate keyが設定される private keyを設定するとBraveやAndroid版Torブラウザでア クセスできない…… 同時に複数のサービスを起動可能 OnionShare OnionShare 40 / 51

Slide 41

Slide 41 text

Debianパッケージもあるが,バージョンが古く日本語が利用できな いなどの問題がある Flatpakやsnapで導入できるようになっているが巨大(1.5GB) OnionShare cli版もある(68MB) 現在は依存関係の解決に失敗するよう > ImportError: cannot import name 'soft_unicode' from 'markupsafe' $ pip3 install markupsafe==2.0.1 41 / 51

Slide 42

Slide 42 text

42 / 51

Slide 43

Slide 43 text

43 / 51

Slide 44

Slide 44 text

44 / 51

Slide 45

Slide 45 text

既存のサイトをOnion site化するためのツール Twitterもこれを使っているらしい 主なサポートプラットホーム Ubuntu 20.04 LTS/OSX Mojave/Raspbian Stretch(!) Enterprise Onion Toolkit Enterprise Onion Toolkit GitHub-alecmuffett / eotk:Enterprise Onion Toolkit 45 / 51

Slide 46

Slide 46 text

まとめ まとめ 日本のような場所で少し試すくらいならお手軽に試せる もし本当に匿名性を保ちたいなら注意深く操作する必要がある セキュリティホール,設定ミス等 セキュリティOSを使うのが良さそう 必要な人も居ると思うのでしばらくはリレーノードは起動したままのつ もり 46 / 51

Slide 47

Slide 47 text

余録 余録 47 / 51

Slide 48

Slide 48 text

exit node listの国別アドレス数 exit node listの国別アドレス数 $ curl -s https://check.torproject.org/torbulkexitlist | xargs -n1 geoiplookup | grep 'GeoIP C 389 US, (アメリカ) 182 DE, (ドイツ) 82 NL, (オランダ) 57 SE, (スウェーデン) 43 LU, (ルクセンブルク) 38 RO, (ルーマニア) 34 FR, (フランス) 31 AT, (オーストリア) 26 UA, (ウクライナ) 25 CH, (スイス) 48 / 51

Slide 49

Slide 49 text

5分毎にTorにアクセスしてexit 5分毎にTorにアクセスしてexit nodeになったipアドレスを記録, nodeになったipアドレスを記録, 直近10000件をカウント 直近10000件をカウント $ tail -10000 ./.tor.ip | cut -d, -f2 | xargs -n1 geoiplookup | awk '{print $4}' | grep -V IP 5793 DE, (ドイツ) 857 US, (アメリカ) 408 NL, (オランダ) 399 AT, (オーストリア) 332 SE, (スウェーデン) 265 RO, (ルーマニア) 216 CH, (スイス) 209 LU, (ルクセンブルク) 202 FR, (フランス) 172 CZ, (チェコ) 49 / 51

Slide 50

Slide 50 text

参考url 参考url Tor exit address.Torからのアクセスを処断したいときなどにも ajvb/awesome-tor: A list of awesome Tor related projects, articles, papers, etc 5ky1ar/Awesome-Onion-Links: A list containing .onion links for the tor network aka the dark web Welcome to Tor Metrics https://check.torproject.org/torbulkexitlist 50 / 51

Slide 51

Slide 51 text

奥付 奥付 発表 発表者 利用ソフトウェア ライセンス CC BY 4.0 鹿児島Linux勉強会 2022.03(オンライン開催) Kenichiro Matohara(matoken) Asciidoctor Reveal.js 51 / 51