0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(Tailscale) リモート接続について(職場⇔自宅)

Last updated at Posted at 2024-07-22

リモート接続がしたい!

 リモート接続用のアプリケーションなんて星の数ほどあるじゃないかと思ったそこのあなた。使えないんです。大学のセキュリティ×Linux機の掛け合わせによるガチガチセキュリティではね!!!!
 流石に名前を書くのはやめますが、大体のアプリケーションがだめでした。工夫したことといえば

  • シングルログインになるように、職場(便宜上職場と書いてますが研究室です。今のところは院生なので)のマシンからはログアウトしておく
  • グラフィックのドライバを変えた
  •  実に様々なリモート接続クライアント&サーバを試した
  •  ファイアウォールの設定をゴニョゴニョした(今はもとのストリクトな設定に戻してます)

などなど……。まあ上げればキリがないのだが。そして最終的に行き着いた先が Tailscale であったというわけ。ありがたやありがたや。最近はVPNの脆弱性が指摘されていたり、何かとセキュリティ関連のインシデントが多かったので、セキュアなリモート接続が構築できるアプリケーションには頭が上がらないのである。

と、まあ前置きは長くなったが、以下に使い方の説明を残しておく。

まずはOpen-SSH server をインストールしよう

 いきなりあれなのだが、RSA暗号のキーペアを作成するのに使用する。というかどうやらtailscale自体がSSHのwrapperのようだ。VPNの脆弱性といえば、アカウント情報(IDとパスワード)さえ突破できれば侵入できるというのがWell Knownなわけだが、Tailscaleはキーペアでの認証ができるのでそのへんが安心だったりする。
 余談だが、apt-get update の後に apt-get upgrade するのをセットにしている。特に開発しているわけではないので、aptitude upgrade あたりまでで大体ことがすむので、特別な理由でもなければ普段からセキュリティーの強化はするに越したことはない。

 SSHのインストールおよび設定は以下のサイトを参考にさせてもらった。

ssh-client & ssh-server のインストール

sudo apt-get update
sudo apt-get upgrade

# おそらくclient の方はデフォルトで入っているはず
sudo apt-get install openssh-server (接続される側のマシン)
sudo apt-get install openssh-client (接続する側のマシン)

# 状態の確認
systemctl status sshd.service

# もしactive(running) と表示されていなかったら
sudo systemctl start sshd.service
sudo systemctl enable sshd.service

サーバ(接続される側)の設定

# もとの設定ファイルのバックアップをとる
sudo cp -p sshd_config sshd_config.orig
sudo chmod a-w sshd_config.orig

# 接続される側の設定ファイル編集
sudo vim sshd_config

 パスワード認証だとセキュリティ激甘になってしまうのでキー認証にしてしまうのがおすすめ。サーバに直接アクセスできない環境の場合、初回のみパスワード認証にしておき、ペアキーを作成・サーバ側にコピーしてキー認証に変更すると良いと思います。

# 新しい設定でエラーが出ないか確認
sudo sshd -t -f sshd_config

# 終わったら設定の変更を反映させる
sudo systemctl restart sshd.service

公開鍵認証の導入

 ここは簡単なのでさくっと行ってしまいましょう。

# クライアント(接続する側のマシンでの作業)
# -t ed25519 はアルゴリズムの指定、-C "コメント" でコメントを残すことができる。
ssh-keygen -t ed25519 -C ""

# サーバに公開鍵をコピー
ssh-copy-id user_name@ip_address_or_domain_name

これでサーバにSSH接続できるようになったはずです。試しに

ssh user_name@ip_address_or_domain_name

でSSHできることを確認してください。そして

sudo vim /etc/ssh/ssdh_config

# /etc/ssh/sshd_config (/Passwod などとすればvimでファイル内の文字列を検索できる)
PasswordAuthentication no

としてしまえばOKです。

Tailscale のインストール

 これは最近はやっているだけあって各所にインストール方法が記載されているので慣れたもので、

からOSを選んでソースコードをダウンロードします。ダウンロードしたディレクトリに移動し、

sudo apt-get install ./tailscale*.deb

などとしてインストールしてください。
インストールできたら

sudo tailscale login
### ここでログイン用のurlが出てくるので移動し、指示に従ってログインしてください ###

# 無事ログインできた場合 Success! の文字が表示されます。

# tailscale を起動
sudo tailscale up

# tailscale をsystemd に登録
sudo systemctl start tailscaled
sudo systemctl enable tailscaled

# tailscale でのipアドレスを表示
tailscale ip -4
[ipv4 address]

これで終わりです。クライアント・サーバどちらも同じ手順でtailscaleをインストールしておきます。

tailscale status | grep [登録名 一部でもOK]

などとすれば、自分のアカウントで登録されたマシンの状態が見られます。
接続できる状態になっていれば一番右側にactive;relay "tok", などと表示されます。ちなみにrelay "tok"は”東京のリレーサーバを中継している”の意です。

筆者は通常のSSH同様パスフレーズ認証かと思っていてしばらく詰みました(普段はイーサネット内なので完全に油断していた)。もし片方をwifiなどでつないでいる場合はUSBなどで鍵をダイレクトにコピーすることになるかと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?