coreserver, xreaでSSH接続IPを自動設定する

未分類

coreserver, xreaはSSH接続が出来ます。セキュリティ対応として事前に接続を許可するIPを決めておく方針です。このIPはコントロールパネルから登録出来るが、いちいちブラウザでコントロールパネルを開くのが結構面倒!また30日後には自動で登録したIPはリセットされてしまう。また静的IPをもってない方はルーターの再起動等でIPが変わってしまうので面倒である。

しかしAPIが用意されているので、コントロールパネルを経由しなくても接続IPを登録出来る。よって自宅サーバーやVPS等からcron等でAPIを定期的に実行してSSH IP登録を自動化できる。

ここでは自宅サーバーの環境(Linux機を想定)からの接続を考える。

API secret keyの発行

まずはcoreserver, xreaのコントロールパネルにログインする。
画面右上のユーザー名のサブメニューから契約情報をクリックする。

契約情報メニューの下のほうにAPI KEYがあるので、API KEYを控えておく。初回は空白になっているので、その場合はAPI KEY発行ボタンをクリックして生成後そのAPI KEYを控えておく。

SSH IP設定用スクリプトの作成

スクリプト(coreserver用, xrea用)の両方を作成する。以下はcoreserver用にしているが、xrea用も同様である。

$ cat ~/bin/ssh_ip_cs.sh
#!/bin/sh

# 以下の設定情報は自身の環境に合わせること
#
# ユーザー名: foo                 ※自分のアカウント名
# サーバー名: s999.coreserver.jp  ※自分に割り当てられているサーバー
#   ※Xreaの場合:s999.xrea.com  等
# コントロールパネルで発行したAPI Key: abcdefghijklmnopqrstuvwxyz
# エンドポイント: https://api.coreserver.jp/v1/tool/ssh_ip_allow
#   ※Xreaの場合:https://api.xrea.com/v1/tool/ssh_ip_allow

account=foo
server_name=s999.coreserver.jp
api_secret_key=abcdefghijklmnopqrstuvwxyz
end_point=https://api.coreserver.jp/v1/tool/ssh_ip_allow

# グローバルIPを取得する。
ip_addr=`curl -s ifconfig.me`

curl --http1.1\
  -d "account=${account}" -d "server_name=${server_name}" \
  -d "api_secret_key=${secret_key}" \
  -d "param[addr]=${ip_addr}" \
  -X POST \
  ${end_point}

ここで実際に動かしてみて、200番が返ってくればOk.

$ sh ~/zzz/ssh_ip_cs.sh
{"status_code":200}$

cronジョブの登録

あとは定期的にスクリプトを実行するようにすればよい。

$ crontab -e

ここでは30分おきに実行するようにした。

*/30 * * * * sh ~/bin/ssh_ip_cs.sh
*/30 * * * * sh ~/bin/ssh_ip_xrea.sh

あとはルーターの再起動等でIPを変えてみて、しばらく時間をおいて確認してください。

自分は自宅用サーバー(ラズパイ、動的グローバルIP)であるので30分間隔としたが、静的グローバルIPを持っている方はもっと長めの間隔で実行出来ますね。

コメント

タイトルとURLをコピーしました