$30 off During Our Annual Pro Sale. View Details »

🧅

 🧅

「鹿児島Linux勉強会 2022.03(オンライン開催)」で発表
https://kagolug.connpass.com/event/240326/

source
https://gitlab.com/matoken/kagolug-2022.03/-/blob/master/slide/slide.adoc

Kenichiro MATOHARA

March 21, 2022
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. 🧅
    🧅
    Kenichiro Matohara(matoken)
    1 / 51

    View Slide

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

    View Slide

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

    View Slide

  4. Torで色々
    🧅
    Torで色々
    🧅
    最近の状況から利用できると嬉しい人が増えていそうとリレーノードを2つ
    80Mbps/日本 80MBps/日本 0.3Mbps)
    Nitterをonion siteでもhost

    ダークウェブと呼ばれたり怖そうなイメージ
    でも便利にも使えます
    http://nitter2l2szql27s7siskdgvtr4sgeq43x7jodtqmltxu
    4 / 51

    View Slide

  5. Tor?
    Tor?
    接続経路を匿名化する.通信内容はTor内では暗号化されるが,出入
    り口では暗号化されないので別途TLS等が必要
    Tor経路内では1ホップごとにカプセル化されてその様がタマネギの
    皮のようなのでオニオンルーティングと呼ばれるように

    匿名ネットワークはTor以外にもI2P,ZeroNet,Freenetなど
    がある
    Tor Project | Anonymity Online
    5 / 51

    View Slide

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

    View Slide

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

    View Slide

  8. 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

    View Slide

  9. 以前はとても遅かったが今はウェブブラウジング程度なら問題ない感

    反応の悪さは気になる
    9 / 51

    View Slide

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

    View Slide

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

    View Slide

  12. Android用アプリ
    指定した特定のアプリケーションをTor経由で通信できるように
    できる

    既定値では出口ノードになるよう設定されているので注意
    (「︙

    →「設定」→「リレー中 この端末を非出口リレーにする」にチェッ
    ク)
    Orbot
    12 / 51

    View Slide

  13. どこに繋ぐ?
    どこに繋ぐ?
    せっかくなら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

    View Slide

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

    View Slide

  15. / 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

    View Slide

  16. 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

    View Slide

  17. 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

    View Slide

  18. .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

    View Slide

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

    DNSキャッシュを構築することでDNS over HTTPS over
    Tor等も可能
    19 / 51

    View Slide

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

    View Slide

  21. 設定
    設定
    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

    View Slide

  22. $ 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

    View Slide

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

    View Slide

  24. 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

    View Slide

  25. ツールを使って好みの単語から始まるアドレスを探すことが可能
    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

    View Slide

  26. sshも繋がるようにしてみる
    sshも繋がるようにしてみる
    torrcにsshの設定を追加 & Tor再起動
    sshdにはlocalhostからの接続に見える(ので接続できるようにし
    ておく)

    同様に他のサービスも設定可能
    HiddenServicePort 22 127.0.0.1:22
    26 / 51

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. リレーノードの設定例
    リレーノードの設定例
    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

    View Slide

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

    $ sudo -u debian-tor nyx
    33 / 51

    View Slide

  34. 34 / 51

    View Slide

  35. リレーノードの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

    View Slide

  36. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  41. Debianパッケージもあるが,バージョンが古く日本語が利用できな
    いなどの問題がある
    Flatpakやsnapで導入できるようになっているが巨大(1.5GB)
    OnionShare cli版もある(68MB)
    現在は依存関係の解決に失敗するよう

    > ImportError: cannot import name 'soft_unicode'
    from 'markupsafe'


    $ pip3 install markupsafe==2.0.1
    41 / 51

    View Slide

  42. 42 / 51

    View Slide

  43. 43 / 51

    View Slide

  44. 44 / 51

    View Slide

  45. 既存のサイトを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

    View Slide

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

    View Slide

  47. 余録
    余録
    47 / 51

    View Slide

  48. 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

    View Slide

  49. 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

    View Slide

  50. 参考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

    View Slide

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

    View Slide