VPS(Virtual Private Server)は操作性でも価格面でも、最近とても利用しやすくなってきました。スキルがあれば、比較的自由に各種サーバーの立ち上げが可能になりました。それでもセキュリティの維持と使い勝手の向上を目的に、最初に設定しておくべきことがあります。漏れのないよう設定して、VPSの利用者自身を守るたけでなく、周囲の方々に迷惑をかけないようにしましょう。
■検証した環境
- 企業名 : カゴヤ・ジャパン
- プラン名 : VPS(仮想専用サーバー)
- CPU / メモリー / ストレージ : 1コア / 1GB / SSD 25GB
- OS : CentOS7 64bit(※今回はカゴヤで提供しているOSテンプレートを利用しています。)
注:コマンド例はLinux OSがCentOS7の場合で表記しています。Ubuntuなど他のディストリビューションの場合は、異なる場合があります。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。
目次
これだけはやっておきたい初期設定5項目【セキュリティ編】
コンテンツの本格的なWeb公開を前に、次のような設定を済ませておきましょう。コマンドなどの紹介と、これらの設定がセキュリティを維持するために必要な理由などもまとめています。
- 1SSH接続用の設定(1)公開鍵認証
- OS(CentOS7)のアップデート
- ファイアーウォール(iptables)の設定
- SSH接続用の設定(2)ポート番号の変更
- SSH接続用の設定(3)管理者用の一般ユーザー作成と設定
多くの場合、VPSサーバーの操作は、手元のWindowsなどのクライアントPCから専用ソフトを利用して、SSH接続によって行います。このSSH接続は、サーバーのホスト名またIPアドレスがわかれば、ユーザー名とパスフレーズ(パスワード)で誰でもログインできてしまいます。一度ログインしてしまえばサーバーは設定し放題で、悪用される危険もあります。
そこでこのリスクを少なくするために、初めに対策を行います。これらは公開された方法のため、一つだけで安心せずにいくつか組み合わせてガードを固めたいものです。
1)SSH接続用の設定 ①公開鍵認証
VPSサーバーへのログインを制限できるのは、パスワードだけではありません。鍵ファイルの所有者のみに許可する方法があります。この鍵がないと原理上ログインできません。
公開鍵認証と呼ばれる仕組みの効果は高いですが、設定自体はかなり複雑です。慣れないと失敗して、VPSサーバーに接続できなくなる可能性もあります。
そこで、簡単な手続きで公開鍵認証ができるサービスを利用する方法をご紹介します。カゴヤ・ジャパンの場合には、VPSサーバーを新規申し込みする際に、下図「ログイン用認証キー追加」ボタンをクリックするだけで鍵は生成されます。利用者はこのファイルをクライアントPCにダウンロードします。盗難と紛失に厳重に注意して保管しましょう。
Windows PCでTera Termで接続する場合は、下図の「秘密鍵」ボタンをクリックして、ダウンロードした鍵を選択します。
詳しくは、公式マニュアル「ログイン用認証キー作成」をご覧ください。
2)OS(CentOS7)のアップデート
OSインストール時にパッケージが最新でない場合、そのままにしておくと弱点となり、攻撃者から狙われる可能性があります。そのため以下のコマンドを実行しアップデートすることにより対策をします。
作業時間がかかる場合もありますが、ダウンロードとアップデートを自動的に全てやってくれます。
【コマンド】
# yum -y update
3)ファイアーウォール(iptables)の設定
VPSの運営会社の方針により、余分なポートを閉じている場合が多いのではないでしょうか。サーバーのソフトウェアの種類によって、ポート番号は異なります。必要なポートのみを開いて、不要なものは閉じておけば、攻撃者の侵入を少しでも減らすことができます。
カゴヤ・ジャパンのVPSプランの場合でも、初期設定として必要なポートを開く必要があります。例えば、VPSでWebサーバーをつくって公開する場合には、80番のみ開ける必要があります。公式マニュアルにそって以下のコマンドを実行します。
【コマンド】
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp --sport 80 -j ACCEPT
# iptables-save > /etc/sysconfig/iptables
FTP、メールなど利用するサーバーによって、ポート番号は異なります。忘れずに、都度開けましょう。そうしないと各サーバーは動いていても、各サーバーと外部とのやりとりは一切できません。
4)SSH接続用の設定 ②ポート番号の変更
SSHの場合は22番ポートを使用しています。クライアントPCからログインするときには、この番号を指定する必要があります。
攻撃者はまずこの22番を攻めて、SSH経由でサーバーを乗っ取って操作しようと試みることがあります。そこで、この番号を以下の手順で変更することにより、すこしでも攻撃を回避することができます。
ファイアーウォール(iptablesの設定)
前の項目を参考に、変更予定の新しいSSHのポート番号を空けます。
以下のコマンドにより設定ファイルを開き、ポート番号の変更
【コマンド】
# vi /etc/ssh/sshd_config
17行あたりにある#Port 22をコメントアウトし、Port xxxxxに変更して保存したあとにSSHを再起動します。Xxxxxの部分は、変更予定の新しいSSHのポート番号です。
【コマンド】
# systemctl restart sshd
ポート番号は自由に変更できるわけではありません。各種サーバーのソフトウェアにあらかじめ割り振られている番号には変更しないようにします。こちらの情報などを参考に、50000番台にするのが無難です。
注意点
変更したポート番号に忘れないようにしましょう。忘れてしまうと、二度とVPSにSSH接続ができなくなります。
5)SSH接続用の設定 ③管理者用の一般ユーザー作成と設定
管理者用の一般ユーザーを作成
今回は一般ユーザーとしてtestkaを新規作成します。
【コマンド】
# useradd testka
# passwd testka
passwd testkaと入力すると、パスワードの入力が2回促されます。
passwd: all authentication tokens updated successfully.と表示されれば、一般ユーザーの作成は終了です。
管理者用の一般ユーザーになれるように設定
次に下記のコマンド操作により、上で作成した一般ユーザーに権限を持たせます。
【コマンド】
# usermod -G wheel testka
【コマンド】
# vi /etc/pam.d/su
6行目あたりの、#auth required pam_wheel.so use_uid の#を削除(コメントアウト)します。
できればやっておきたい初期設定【活用編】
これからVPSを運営していくうえで、設定しておくと便利な機能を紹介します。必須ではありませんが、セキュリティの面でも有効なため導入されることをおすすめします。
- OS(CentOS7)のアップデートの自動化
- 表示画面(コンソール)の日本語化
- 開発関連ツールの一括インストール
1)OS(CentOS7)のアップデートの自動化
すでにご紹介したyum -y updateは、コマンドを実行したときのみ有効です。これでは不便で、忘れることもあります。そこで毎日自動でアップデートができるようにした方が、システムの最新化を保つには優れています。方法は以下の通りです。
【コマンド】
# yum -y install yum-cron
【コマンド】
# vi /etc/yum/yum-cron.conf
apply_updates = yesに書き換えます。
【コマンド】
# systemctl start yum-cron
# systemctl enable yum-cron
これでVPSを再起動しても、こちらの自動化は継続します。
2)表示画面(コンソール)の日本語化
初期設定で英語になっている場合には、日本語に直すと便利です。大事なメッセージの意味もはっきりして、対処がしやすくなります。変更方法は以下のコマンドを実行して、文字化けしていないことを確認しましょう。確認するためには、いったんログアウトします。
【コマンド】
# localectl set-locale LANG=ja_JP.utf8
3)開発関連ツールの一括インストール
この先VPSを活用していくなかで、開発ツールのパッケージがインストールされていないと、そのたびにインストールをしなければなりません。この面倒を避けるために、あらかじめ関連したものを一括で入れておくと便利です。
【コマンド】
# yum -y groupinstall base "Development tools"
初期設定とその後の運用が重要(まとめ)
ご自身のルールに従って余分な窓(ポート)は開けないなど、必要な対策を維持していくことが重要です。
別の例では自動化できることは、初期設定の段階で極力済ませておくことが得策です。サーバー管理者として見守る対象が少ないうちは、手動で気がついたときに実行すればいいのですが、Linuxには膨大なパッケージが含まれているため現実的ではないからです。
こちらの記事では、カゴヤ・ジャパンのVPSサービスを利用し検証しました。オーソドックスではありますが、基本的な操作がしやすいプランでおすすめです。
このプランの利用により、安全で満足のいく1台をぜひ構築していきましょう。
開発・検証・プログラミング学習に。無駄なコストもかけたくないあなたにおすすめのVPS
カゴヤのVPSは初期費用無料でアカウント登録さえしておけば、必要なときだけ日額課金でサーバーを立ち上げ可能!料金は使った分だけ。