見出し画像

WEBシステム道 ep.06 サーバの設定変更(失敗編)

ここは、新しいWEBシステムを開発していく記録にしたい、と考えて作った研究室(ブログページ)です。
前回は、chromebookにインストールしたTerminusというandroidアプリからGCP上のサーバへSSH接続できるように、いろいろと設定してきました。
今回は、セキュリティレベルを上げるということなどを実施しようと思っていた、のですが。。。

請求レポートの確認

サーバを設定した数日後にGCPの画面を表示したところ、支払額が0.03円になっていました。

画像1

「なんじゃ、コリャー!」、ということで、よくよく参考にした記事を見返すと、まず、以前試しに作成していた別のプロジェクトがあって、そこでも仮想サーバを作成していたので、今回作成したのは2台目ということで、どうも、1台までは無料、ということが記載されていました。

ちなみに、1ヶ月で1円未満も場合も課金は発生しないようなので、安心しました。

GCPプロジェクトの削除

なので、まずは、昔作成したプロジェクトを削除します。
はじめにプロジェクトの設定のページへ行きます。

画像2

次に、左のメニューから「リソースを管理」をクリックします。

画像3

以前作成したプロジェクトの方にチェックをつけて、上の「削除」をクリックします。

画像4

そうすると、確認画面が出てくるので、プロジェクトのIDを入力します。(プロジェクトのIDを入力してください、という表記と、プロジェクトID自体も表示されているので、それを書き写してシャットダウンをクリックするだけです)

これで、プロジェクトは削除できました。が、実際は、すぐに削除されるのではなく、しばらく保持されているようです。(おそらく間違えて消したときにでも、自分で復活できるように、という考慮でしょう)

課金の検知設定

今回のように、知らない間に課金が発生する、といったことがないようにするため、課金の検知設定をしておきたいと思います。
まず、プロジェクトのダッシュボードから、「Compute Engineに移動」をクリックします。

画像5

ページ下の「請求レポートを表示」をクリックします。

画像6

ページ左側のメニューの中の「予算とアラート」をクリックします。

画像7

ページの上の「予算を作成」をクリックします。

画像8

名前に好きな名前を設定して、「次へ」をクリックします。

画像9

次のページで、「指定額」を選択して、通知を受けたい金額を「目標金額」に入力します。ここでは、最低の金額1円にしたいと思います。

画像10

次のページでは、通知のタイミングを設定しますが、1円なので特に設定しなくていいです。

画像11

ページ下の部分は、特に変更しなくてもいいのではないかと思います。ちなみに、右のグラフに1円のところに点線が表示されて、ここに達するとアラートが発生することを意味しているんでしょうね。

画像12

「終了」をクリックして操作を終わります。

SSHポート番号の変更

#SSH 接続の場合、ポート番号の初期値は22で、前回設定した際もポート22で接続できるようになっているのですが、この場合総当たり攻撃での対象となってしまいます。なので、セキュリティのレベルを上げるためにポート番号をデフォルトとは違う値に変更します。

まずは、#SSH 接続をして、OS側の設定を変更します。

前回インストールした #Terminus を起動して、サーバに接続します。

画像13

画像14

この画面が開いたらOKです。
その後、下記コマンドを入力します。(Enterキーを押すのを忘れずに。)

sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org

これは、SSHの設定ファイルをコピーして、バックアップをとっています。いざ、という時に元に戻せるようにしています。

その後、次のコマンドを入力します。「32322」のところが変更したいポート番号になります。この数字自体は意味のない数字です。このコマンドは、さっきバックアップを取ったファイルの中を開いて、「Port 22」という文字があったら「Port 32322」に置き換えています。

sudo sed -i -e "s/#Port 22/Port 32322/g" /etc/ssh/sshd_config

ファイアウォールの設定

次に、GCP側のファイアウォールの設定を変更します。元々、SSH接続用の22番が外部に対して開いているのですが、そこを閉じて、さっき設定した新しいポート番号(今回は「32322」)の方を開けます。

まずは、GCPのプロジェクトのダッシュボードページから、「Compute Engineに移動」をクリック(今回の記事の請求レポートを設定するところと同じ手順)して、画面下の「ファイアウォールルールの設定」をクリックします。

画像15

ページ上の「ファイアウォールルールの作成」をクリックします。

画像16

名前は必ず設定する必要があり、説明は任意で大丈夫です。

画像17

下の方は、ターゲットとソースIPの範囲を設定します。これは、ほとんど絞っていない設定ですが、もっと細かい設定をすればセキュリティレベルは上がります。(が、今回はとりあえず、これで行きます。)

画像18

最後、ページの一番下のところで、先程決めたポート番号を設定して、「作成」をクリックします。

画像19

これで、新しいポート番号でサーバに接続できるようにファイアウォールに穴を開けることができました。ただ、元の22番が開いたままになっているので、それを閉じて、セキュリティレベルを上げたいと思います。

ファイアウォールの設定の一番下に、元々のSSHのポートの設定があるので、それを選択します。

画像20

設定の内容が表示されるので、画面上の「編集」をクリックします。
ページの一番下の方に「ルールを無効にする」という箇所があるので、そこを開いて、「無効」の方に切り替えてから、「保存」をクリックしてください。

画像21

と、ここまで来たところで、失敗

ここで、TerminusでのSSH接続が切れ、うまく接続できなくなりました。
欲張って、ポート22のところを一気に切り替えようとしたため、そこがうまく行かなかったことで、ポート22でも接続できなくなってしまい、どうしようもなくなってしまった、ということだろうと思われます。

こうなってしまうと、なかなか難しそうなので、再度イチから設定し直して、次は、SSHのポートは22を残したまま新しいポート番号で試してから、22を外すようにしていきたいと思います。

※Google および Google ロゴは Google Inc. の登録商標であり、同社の許可を得て使用しています。

次回は

裏でこれまでの手順を再度実施して、今回やろうとしていたことから、もう一度記録していきたいと思います。
やっちまったな、と思ったのですが、こういういことはサーバを構築する際にはよくあることだと切り替え、大した手間ではないのでさっさとやり直します。

では。次回もよろしくお願いします。

#WEBアプリ開発 #IT #SSH #Terminus #GCP