初めにやっておきたい、サーバーのセキュリティ対策 6選

サーバーを使い始めた直後は、セキュリティで不安を抱くことが多いと思います。

新しくサービスを始めるためや、勉強のためにクラウドサーバーを使い始めた方は初めにセキュリティ対策をしておいた方が良いでしょう。

悪意あるユーザー(以下、クラッカー)は企業だけでなく、脆弱性・セキュリティーホールのあるサーバーは大中小関わらず攻撃をしかけてきます。

セキュリティ強化は予防注射と似ており、悪意ある攻撃を必ず防げるという確証はありませんが、設定することで多くの攻撃を防ぐことができますので、対策をしてみてください。

本記事ではサーバーのセキュリテイ強化設定を6つ紹介しますので、みなさんが安心してサーバーを管理するための手助けとなれば幸いです。

1. SSH関連設定

クラウドサーバーを操作する場合、クライアントPCからSSHで接続します。

利用するクラウドサーバーにもよりますが、そのSSHがデフォルト設定のままだと、クラッカーの標的になりやすいので、セキュリティ対策をしていきましょう。

なお、SSH関連の設定手順については、この項目の一番下に関連記事として記載しておきますので、良かったら合わせてご覧ください。

① SSHのポート番号変更

SSHのポート番号を独自の番号に変更しましょう。

クラウドサーバーのデフォルト番号のままにしておくと、クラッカーが攻撃しやすい状況になります。

ポート番号は1024番~65535番(※1)までの数値を利用できるので、変更しておきましょう。

② SSHのユーザー制限

サーバーに接続可能なユーザーを制限します。

サーバーでは複数ユーザーを作成することがあると思いますが、そのユーザー数だけ、認証情報(ユーザー名とパスワード)が生成されます。

数が多いとその分、認証されやすい状況になるので、SSHが必要なユーザーのみ接続できるようにしましょう。

③ SSHのrootユーザー接続禁止

rootユーザー(スーパーユーザー)はサーバーの全ての操作権限を持ったユーザーです。

クラッカーにrootユーザーになりすまされると、なんでもできてしまうのでとても危険な状態になります。

そのため、rootユーザーでSSH接続はできないように設定しましょう。

④ SSHの認証方式を公開鍵認証に変更

SSHの認証方式ではユーザー名とパスワードを用いたものが使用されることが多く、ブルートフォースアタックのような力技に比較的弱い傾向にあります。
※ AWSなどでは初期から公開鍵認証です。

そのため、認証方式を公開鍵認証に変更することをお勧めいたします。

公開鍵認証とは2つの鍵である公開鍵と秘密鍵のセットで使用する認証方式で、それらの鍵(ファイル)を所持したクライアントPCとサーバーだけがSSHで繋がるようになります。

2. 実行権限関連

サーバーには権限の概念があり、ユーザーごとに権限が割り振られています。

特にrootユーザー(スーパーユーザー)と呼ばれる全ての操作権限を持ったユーザーはなんでもできるため、便利な反面、クラッカーになりすまされた際は非常に危険な状態になります。

ここではサーバーでrootユーザーに関わる実行権限の制限を設定する方法をご紹介します。

なお、実行権限関連の設定手順については、この項目の一番下に関連記事として記載しておきますので、良かったら合わせてご覧ください。

④ suコマンドの制限

suコマンドとはサーバーで再接続せずに、他のユーザーに切り替えて操作を行うコマンドです。

他のユーザーにはrootユーザーも含まれ、誰でもrootユーザーになれてしまうと危険なため、このコマンドを実行できるユーザーを制限します。

⑤ sudoコマンドの制限

sudoコマンドは他ユーザーの権限で1度だけコマンドを実行するコマンドです。

一般的にはrootユーザーの権限でコマンドを実行したい時に使用されます。

サーバーの知見がある方はご存知かも知れませんが、比較的多く利用するコマンドでrootユーザーになれるので、こちらのコマンドも制限すると良いでしょう。