第3回 リモート接続のセキュリティ対策
今回は「第3回 リモート接続のセキュリティ対策」についてご紹介します。
関連ワード (リモート接続の基礎知識、特集・解説等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
エム・クレストの副社長兼エンジニアの小澤一裕です。コロナ禍でテレワークが急速に普及し、リモート接続をする機会が増えています。またシステムもデータセンターやクラウドに置くことが主流になったので、その意味でもリモート接続で開発・保守作業することが主流になっています。そこで数回にわたってリモート接続の初歩や知っていると便利なTIPSを紹介しています。第3回は「リモート接続のセキュリティ対策」をテーマに、安心なリモート接続を実現するために行うべきことを紹介します。
これまで紹介してきたSSHもリモートデスクトップはとても便利ですが、簡単に利用できる反面、気をつけて使わないと、セキュリティ上の問題が発生することがあります。まずはSSHのセキュリティ対策から見ていきましょう。必要最小限の必ず実施していただきたい対策からです。
なおSSHの設定ファイルは、一般的にディレクトリー「/etc/ssh/」の下に置かれていることを前提にしています。
SSHサーバーとしてLinuxサーバーが使われていることが大半だと思います。Linuxで最上位権限を持つユーザーは「root」です。これは、Windowsにおける「Administrator」と同じく誰もが知るアカウント名です。従ってサイバー攻撃者がまず試みることの1つは、rootでSSH接続することです。それができれば、そのサーバーで何でもできるようになるからです。
ですので、SSHにおいては直接rootアカウントで接続できないようにしておくべきです。具体的には、/etc/ssh/の下にある「sshd_config」というファイルの内容を以下のように変更します。
ssh_configの変更を反映するためには、SSHサービスの再起動が必要です。ただし再起動をしても、接続中のSSHコネクションは影響を受けないので、設定ミスに気がつかないことがあります。念のため別のコネクションを使って接続テストをしておくことをお勧めします。
(1)では、rootアカウントで接続できないようにしましたが、それとは逆に、接続できるアカウントを指定(限定)することもできます。そうすることでサーバーのデフォルトアカウントやソフトウェアをインストールした時に、勝手に作成されてしまうアカウントから接続されるリスクをなくすことができます。
sshd_configに「AllowUsers」という項目を追加することで、接続を許可するユーザーを指定することができます。
SSHは、デフォルトでは世界中のどの端末からでも接続できるようになっていますが、それは非常にセキュリティ上危険なことです。接続できる端末を制限することで飛躍的にリスクを軽減できます。
設定方法は、(2)と同じくsshd_configのAllowUsersを使います(Linuxなら「iptables」や「firewalld」「ufw」といったパケットフィルターでも制限できます)。接続元のIPアドレスを指定することで、端末制限が可能です。