出版

SSH 経由のリモート接続を許可する Linux サーバーがある場合は、ログインできるユーザーの数を制限することをお勧めします。

LinuxサーバーはおそらくリモートSSH接続用に設定されているでしょう。リモートログインができなければ、サーバー管理は困難になります。また、複数のITスタッフがログインしている場合もあるでしょう。
例えば、10人の管理者がいて、各人がいつでもサーバーにログインできる必要があるとします。10人の管理者全員が同時にログインする瞬間もあるかもしれません。
参照:知っておくべきオープンソースと Linux の用語 40 選(TechRepublic Premium)
11番目の接続が試みられたらどうなるでしょうか?そのサーバーに11人がログインするはずがないことはご存知でしょう。どうすればいいでしょうか?幸いなことに、SSHデーモンにはいくつかの便利なオプションがあります。その方法を説明しましょう。
ジャンプ先:
- SSH接続を制限するために必要なもの
- SSH同時接続を制限する方法
- SSH経由のシンプルな制御
SSH接続を制限するために必要なもの
サーバーへのSSH接続数を制限するには、SSHデーモンを実行しているマシンが少なくとも1台と、root権限を持つユーザーが必要です。設定はLinuxディストリビューションによって異なるため、どのディストリビューションを使用しても問題ありません。
SSH同時接続を制限する方法
まず最初に、同時SSH接続数を制限します。この設定オプションは、認証されていないSSHへの同時接続の最大数を指定します。設定された数を超える接続は自動的に切断されます。
この例では、制限を 10 にします。
この設定ファイルはsshd_configです。以下のコマンドでファイルを開いて編集します。
sudo nano /etc/ssh/sshd_config
次の行を探します:
#マックススタートアップス 10:30:100
上記の行を使用すると、認証が成功するか、接続のLogInGraceTimeが期限切れになるまで、追加の接続をドロップするように設定できます。上記の例では、start:rate:fullでランダムな早期ドロップが有効になっています。これは、SSHがrate/fullの確率で接続試行を拒否することを意味します。
これを単純化して、最大接続数を10に制限してみましょう。すると、その行は次のようになります。
MaxStartups 10
次に、同時接続の最大数を設定します。必要なオプションは次のとおりです。
#MaxSessions 10
その行を次のように変更します。
MaxSessions 10
ファイルを保存して閉じます。
次のコマンドで SSH デーモンを再起動します。
sudo systemctl restart sshd
ヴィオラ!完成です。
SSH経由のシンプルな制御
これは、サーバーに同時ログインできるユーザー数を制御するシンプルな方法です。これをFail2banと組み合わせることで、サーバーのセキュリティが大幅に向上し、SSH接続の過剰による速度低下の可能性が低くなります。
ただし、マシンがネットワークに接続されている限り、100%確実なことは何もありません。そのため、サーバーのセキュリティがどれほど高いと思っていても、常に監視と更新を怠らないようにする必要があります。
TechRepublicのYouTubeチャンネル「How To Make Tech Work」を購読して、ジャック・ウォーレンによるビジネスプロフェッショナル向けの最新テクノロジーアドバイスをぜひチェックしてください。TechRepublic Academyのリソースを活用して、Linuxエキスパートを目指しましょう。
- マスターLinux開発バンドル
- Linux & Docker コーディングバンドル
- 2022年 Linux 認定トレーニング バンドル
- マスターLinuxとGit認定バンドル
こちらもご覧ください
- 開発者になる方法:チートシート
- Linux 管理者向けハウツーガイド(無料 PDF)
- Linux 101: 技術プロフェッショナルが知っておくべきこと
- Linux、Android、その他のオープンソース技術の報道

ジャック・ウォーレン
ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。