KUSANAGIにSSHでつなぐためにセキュリティを強化する

全体のインストール手順は
ConoHaにKUSANAGIをインストールしてWordPressサーバを立ち上げるときの手順を一通り解説します。 このページが連載の目次ですので、ブックマークするならこのページをおすすめします。
を参照下さい。

前回はKUSANAGIのセットアップとWordPressをインストールしてブログを公開できる状態まで持っていきました。

今回はKUSANAGIのリモート操作環境を準備します。
これで好きなターミナルソフトでKUSANAGIにアクセスできるようになります。
(いつまでもコンソール画面のスクリーンショットを取るのは大変ですし…(^^ゞ)

SSH接続できるようにするのと同時にSSHポートのセキュリティを強化します。

作業目的

作業目的は2点です。

  1. ターミナルソフトでサーバにリモート接続できるようにする
  2. リモート接続のセキュリティ強化

セキュリティ強化は下記内容を実施します。

  • リモートログインはrootによる直接接続を禁止。
    作業用ユーザで接続するようにする
  • リモートログインはSSH鍵を必須にする
  • サーバ側でファイヤーウォールを制御できるようにする
    • ファイヤーウォールを起動するようにする
    • SSHのポート番号を変更する
    • HTTPとHTTPSのみ許可する

なぜSSHのポート番号を変更するのかというと、 grep "sshd" /var/log/secureを実行するとSSHのログが表示されますが、ごく普ッ通~に、中国からクラックの為と思わしきアクセスが頻繁に記録されていました。インターネット怖い。

ポート番号を変更してカジュアルハックを抑制するのが狙いです。

作業手順

ConoHa管理画面のコンソールでrootログインします。

SSH接続用ユーザーの準備

rootによるSSH接続を禁止するので、SSH接続用のユーザーを準備します。
ユーザーをwheelグループに所属させ、管理者権限が必要な場合に su コマンドで root になる運用とします。

ユーザー作成

  1. wheel グループが root になれるようにする
    /etc/pam.d/su を開いて、
    コメントを外す。
  2. SSH接続用ユーザ作成
  3. SSH接続用ユーザを wheel グループに入れる

SSH接続用ユーザのSSH鍵を準備する

リモートログイン用のSSH鍵を作成します。

  1. 作業用ユーザに変更
  2. ホームディレクトリに移動
  3. .sshディレクトリを作成
  4. SSH鍵を作成
  5. id_rsa.pub を authorized_keys に名前変更
  6. 本人以外読み取れないように設定
  7. 鍵を保存
    内容をテキストファイルにコピペして自分のPCに 【ユーザ名】.pem として保存
  8. root に戻る

SSHデーモン(sshd)の設定変更

設定ファイルの修正

/etc/ssh/sshd_config を開き、

以下の設定をします。
項目自体は元からあり、コメントアウトしてゆくだけです。

  • ポートを55555にする
    22以外なら何でも良いです。
    自由に振って良い範囲は大体5万番以降です。
  • SSH2をON
  • rootログイン禁止
    コンソール(ConoHaの管理画面)からならrootログインできます。
  • 公開鍵接続可能にする
  • パスワードログインを禁止
  • sshdの再起動

動作確認

RLoginで下記2点を確認します。

  1. 新しく作ったユーザとSSH鍵の組み合わせで55555ポートにつながること
  2. rootユーザではつながらないこと
おすすめSSHクライアント

Windows用ターミナルソフトといえばTera Term、PuTTYがメジャーどころかも知れませんが、私のお勧めはRLoginです。

  • 最初から日本語なのが安心
  • 最新版を追っかけやすい
    派生版とか私家版とか独自パッチいったものが無いので分かりやすい
  • 右クリックでいきなり貼り付けないので誤作動で爆死せずに済む

こういった点が入門中の私にシックリきました。

SSHクライアントの接続設定

RLoginの画面で説明しますが、項目的にはオーソドックスです。

screenshot_20161126_221825

エントリー/コメント 何でも良い
Server Address サーバのIPアドレス
プロトコル SSH
Socket Port 初期値 22
User Name ユーザ名
Password パスワード
SSH Identity Key ユーザ名に対応する.pemファイル
デフォルト文字セット UTF-8

ファイヤーウォール(firewalld)の設定変更

サーバー初回設定時はConoHaのコントロールパネル上でSSH, HTTP, HTTPSのみ許可する設定にしました。

しかし、コントロールパネルでは今回のようにSSHのポート番号を変更するといった、きめ細かな制御ができません。
APIを使えば制御できます。

が…うん、覚えるの面倒臭え。画面無いと無理。

そこで、とりあえずはインフラ側ではなくサーバ側でファイヤーウォール制御することにします。
手順は切り替え中にセキュリティが手薄にならないよう、

  1. サーバ側ファイヤーウォールを起動
  2. インフラ側ファイヤーウォールを全開放

とします。

格安ケチケチサーバ的にはインフラ側で処理してもらえばリソースが浮くので、ゆくゆくはAPIで設定したいと思います。

ファイヤーウォール起動

また、OS起動時にファイヤーウォールを自動起動するように設定しておきます。

  1. systemdのフラグを立てる
  2. enabledになっていることを確認

SSH接続用ポートの切り替え

  1. SSH接続用ポートの開放
    sshdに設定したポート番号を指定します(今回例では55555)。
  2. SSH標準ポートの閉鎖

HTTP, HTTPSのポートを開放

HTTPとHTTPSのポートを開きます。

ファイヤーウォール再起動

インフラ側ファイヤーウォールの設定変更

ConoHaのコントロールパネルを開き、接続許可ポートを「すべて許可」に変更します。
つまり、

  • インフラ側では全部通すが、
  • KUSANAGI側でSSH, HTTP, HTTPSに制限

という状態にします。

screenshot_20161126_222518

連載目次

次はKUSANAGIにwordmoveをインストールします。

KUSANAGIにwordmoveをインストールするための手順です。

KUSANAGIのインストール手順の全体はこちらの記事を参照ください。

ConoHa上のKUSANAGIを初期設定することでWordPressブログを公開できる状態にします。 大まかな段取り:①初期設定②プロビジョニング③WordPressのインストール

また、こちらの記事では「ConoHaにKUSANAGIをインストールしてWordPressサーバーを公開するまで」を一通り辿れます。

ConoHaにKUSANAGIをインストールしてWordPressサーバを立ち上げるときの手順を一通り解説します。 このページが連載の目次ですので、ブックマークするならこのページをおすすめします。