SSH
RaspberryPi
Tor
Termux

自宅のラズパイを Tor Onion Service にして外から SSH 接続する


概要


  • 家のラズパイに外から接続したい

  • グローバルIPを持っていないので接続できない

  • ラズパイの sshd を onion service にして世界中どこからでもアクセスできるようにする

はじめは SoftEther VPN on Azure しようとしたけどなんか繋がらなかったので Tor を使った。


server (raspbian stretch) の設定

sshd の設定方法は省略。

グローバルIPを晒すときも同じだがセキュリティには十分配慮すること。

例えば


  • SSHDはパスワードログインの無効化や公開鍵認証にする


  • uwf などでファイヤフォールを設定


  • unattended-upgrades などで自動アップデートする

など。

tor をインストール

sudo apt-get install tor

tor の onion service 設定で /etc/tor/torrc の 22 番を開けておく


/etc/tor/torrc

HiddenServiceDir /var/lib/tor/ssh_hidden_service/

HiddenServicePort 22 127.0.0.1:22

デーモンを再起動

sudo systemctl restart tor

Onion Service の hostname をメモっておく

sudo cat /var/lib/tor/ssh_hidden_service/hostname 


client (Ubuntu 18.04 Bionic Beaver) の設定

sudo apt-get install tor connect-proxy

プロクシを設定する。

プロクシのやり方は connect-proxy を使う以外にも色々あるようだ(下記リンク参照)

cat <<'EOF'>> ~/.ssh/config

Host *.onion
ProxyCommand connect -R remote -5 -S 127.0.0.1:9050 %h %p
ForwardX11 yes
EOF

接続(鍵設定は省略)

ssh user@hostname.onion

onion service の hostname は公の場には公開しないこと。


[おまけ] Termux (0.60) で Android から接続する

apt install tor torsocks openssh

termux には systemd がないので自分でデーモン起動する

tor&

接続(鍵設定は省略)

ssh user@hostname.onion


[おまけ] raspberry pi に最新版の Tor を入れて Onion Service v3 を使う

stretch に入ってる tor は 0.2x 系なので、最新の 0.3x が欲しい場合

https://www.torproject.org/docs/debian.html.en

を参考に 0.3 系のリポジトリを登録する必要があります。

cat <<'EOF' | sudo tee -a /etc/apt/sources.list

deb https://deb.torproject.org/torproject.org stretch main
#deb-src https://deb.torproject.org/torproject.org stretch main
deb https://deb.torproject.org/torproject.org tor-experimental-0.3.3.x-stretch main
#deb-src https://deb.torproject.org/torproject.org tor-experimental-0.3.3.x-stretch main
EOF

この tor-experimental-0.3.3.x-stretch は 2018 年 6 月現在のものです。上記 torproject のサイトでより新しいバージョンがないか確認してください。

sudo apt-get install dirmngr --install-recommends

gpg --keyserver keys.gnupg.net --recv A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -

apt update

apt install tor deb.torproject.org-keyring

これで 0.3 系が使えるようになります。

tor 0.3x からは より秘匿性が高く安全な Onion Service v3 が使えるようになります。設定は下記 URL を参考にしてください。


感想


  • グローバル IP は不便

  • Onion Service 便利

  • Termux すごい


参考


raspberry pi セキュリティ設定


SSH and Tor


Tor and the Internet of Things