LoginSignup
0
2

More than 3 years have passed since last update.

ConoHaで接続許可ポートをsshにしつつmoshも通す方法

Last updated at Posted at 2020-01-17

ConoHaには「接続許可ポート」という機能があって、コントロールパネルからVPSへのポート制限を行うことができます。

port1.png

この設定を「全て許可」で運用しても問題はありませんが、一般的には使うポートだけを許可するのが良いとされています。サーバー上で意図しないプログラムが動いていた場合などでも、外部からの通信を遮断することができるからです。

moshでポートが通らない

私は普段sshではなくmoshを使っています。moshはsshの代替のようなツールで、接続が切れた場合の自動再接続や、優れたローカルエコーがあるのでとても便利です。

moshの実際の挙動は、まずsshでサーバーに接続を行い、認証が完了した後にサーバー上でmosh-serverと言うコマンドが実行されてクライアントとの接続が確立します。なので、moshは単体では使えません。必ずsshとセットで使うことになります。

sshは22/tcpを使いますが、moshは60000-61000/udpを使います。上記のスクリーンショットのように、コントロールパネルからsshのポートだけを許可しても、udpを使うmoshは使うことができません。とは言っても「全て許可」での運用は避けたいものです。

セキュリティグループを使う

ConoHaにはセキュリティグループと言う機能があって、接続元のIPアドレスやポート番号を使ってパケットフィルタリングを行えます。前述の「接続許可ポート」もこのセキュリティグループを使って実装されています。なので、moshを使うにはセキュリティグループを使って60000-61000/udpを許可してあげればよいのです。

本来セキュリティグループはConoHa APIを使って作業するのですが、結構大変です。conoha-netというCLIツールを使うと簡単に操作することができます。

参考
ConoHaでセキュリティグループを設定する

conoha-netやセキュリティグループの詳細は上の記事を読めばわかります。なのでここではやり方だけ解説します。


# conoha-netのインストール
# これはLinux向けですが、OSXやWindowsのインストール方法もREADME.mdにあります
curl -sL https://github.com/hironobu-s/conoha-net/releases/download/current/conoha-net-linux.amd64.gz | zcat > conoha-net && chmod +x ./conoha-net

# 環境変数の設定
# APIの設定については下記URLを参考にしてください
# https://github.com/hironobu-s/conoha-net#1-%E8%AA%8D%E8%A8%BC
export OS_USERNAME="gncu*****"
export OS_PASSWORD="********"
export OS_AUTH_URL="https://identity.tyo1.conoha.io/v2.0"
export OS_TENANT_ID="*******************************"

# VPS一覧を見てみる
./conoha-net list

NameTag    IPv4               IPv6                                    SecurityGroups
my-vps     150.95.***.**      2400:8500:1302:829:***:***:***:***      gncs-ipv6-all, gncs-ipv4-all, default

# moshを通すためのルールを格納するセキュリティグループ(permit-mosh)を作る
./conoha-net create-group permit-mosh

# 60000-61000/udpを許可するルールをpermit-moshに追加する
./conoha-net create-rule -p 60000-61000 -P udp permit-mosh

# permit-moshをVPS(my-vps)にアタッチする
./conoha-net attach -n my-vps permit-mosh

# 正しく設定されたか確認
# permit-moshが追加されていればOK
./conoha-net list

NameT      IPv4               IPv6                                    SecurityGroups
my-vps     150.95.***.**      2400:8500:1302:829:***:***:***:***      gncs-ipv6-all, permit-mosh, gncs-ipv4-all, default

これでmoshがつながるはずです。

mosh 150.95.***.**
0
2
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
2