GNU/Linux >> Linux の 問題 >  >> Linux

ユーザー/グループ/システムごとのSSHログイン数を制限する

ご存知かもしれませんが、同じユーザーがリモートLinuxシステムにSSHで接続することができます。制限はありません!複数のターミナルウィンドウ(またはターミナルの複数のタブ)を開いて、同じユーザーアカウントで各タブから複数のSSHセッションを開始するだけです。この動作を変更したい場合はどうなりますか?たとえば、ユーザーに対して1つのアクティブなSSHセッションのみを許可したい場合があります。それが私たちが今見ようとしていることです。この簡単なチュートリアルでは、Linux上のユーザー、グループ、またはシステムごとにSSHログインの数を制限する方法について説明します。

ほとんどのLinuxディストリビューションには、 Limits.confというファイルがあります。 ここで、ユーザーまたはユーザーのグループの同時SSHセッションの最大数を定義できます。特定のユーザーが許可されたSSHログインを超えてシステムにSSHで接続しようとすると、アクセスが拒否されます。

LinuxのユーザーまたはグループごとのSSHログイン数を制限する

Limits.conf ファイルは通常、 / etc / security /の下にあります RPMおよびDEBベースのシステムのディレクトリ。

リモートシステムに移動し、 /etc/security/limits.confを編集します sudoを含むファイル またはルート ユーザー:

$ sudo nano /etc/security/limits.conf

特定のユーザーの同時SSHセッションの数を制限するには 、たとえば ostechnix 、最後に次の行を追加します:

ostechnix	hard	maxlogins	1

ここで

  • ostechnix -CentOS8サーバーのユーザーの名前。
  • maxlogins 1 -このユーザーの最大ログイン数。私の場合は1 。この値を増やして、最大数を許可することができます。ユーザーごとのアクティブなSSHセッションの数。
  • 難しい -ハード制限を適用します。

ユーザーグループのSSH接続の数を制限する場合 、これを追加します:

@mygroup	hard    maxlogins	1

@mygroupを置き換えます あなたのグループ名で。このシナリオでは、mygroup内のすべてのユーザーがSSH経由で複数回ログインすることはできません。

システム内のすべてのユーザー(グローバル)のSSHセッションを制限する場合は、代わりに次の行を追加します。

*	hard    maxlogins	1

ここでは、アスタリスク グローバル(つまり、システム内のすべてのユーザー)を意味します。ユーザー/グループまたはシステム全体あたりのSSHセッションの最大数を定義したら、ファイルを保存して閉じます。

次に、同じユーザーで複数回システムにSSHで接続してみます。以下のようなエラーメッセージが表示されます。

Too many logins for 'ostechnix'.
Last login: Tue Feb 18 17:12:09 2020 from 192.168.225.37
Connection to 192.168.225.52 closed.

上記の出力にあるように;

  1. 最初に、SSH経由でrootユーザーとしてリモートCentOS 8サーバーにSSHで接続し、接続が正常に確立されました。
  2. 次に、新しいタブを開き、通常のユーザー「ostechnix」と同じサーバーにSSHで接続し、接続に成功しました。
  3. 最後に、同じユーザー(ostechnixなど)で同じサーバーにSSHで接続しようとしましたが、今回は接続が拒否されました。ユーザー「ostechnix」は、システムに複数回SSHで接続することはできません 。このユーザーに許可されるSSHセッションの最大数は1つだけであるため 時間。したがって、このユーザーのSSH接続は拒否されます。

この例では、ユーザーまたはグループ、あるいはシステム内のすべてのユーザーのアクティブなSSHセッションの総数を制限しました。システムごとにSSHセッションを制限することも可能です。たとえば、ユーザーやグループごとではなく、システムからのSSHログインを1つだけ許可できます。

システムごとのSSHセッションの総数を制限する

システムごとのアクティブなSSH接続の総数を制限するには、/etc/security/limits.confに次の行を追加します ファイル:

*       hard    maxsyslogins    1

ここでは、 maxsyslogins ユーザーごとまたはグループごとではなく、システムでのログインの最大数を指します。

システムにSSHで接続しようとすると、システムで許可されているログインの最大数を超えてシステムにアクセスできなくなります。

見る?ユーザー「ostechnix」は、初めてSSHを使用することさえできません。なぜなら、許可されたSSHログインの総数はシステムに対して1つだけだからです。今回は、rootユーザーによるSSH接続も考慮されています。そのため、SSHログインの最大数が定義された制限を超え、ユーザー「ostechnix」はアクセスを拒否されました。ご理解いただければ幸いです。

この制限は通常のユーザーにのみ適用されることに注意してください。 rootユーザーは、SSH経由で何度でもログインできます。

関連記事:

  • Linuxで特定のユーザーまたはグループへのSSHアクセスを許可または拒否する
  • TCPラッパーを使用してLinuxサーバーへのアクセスを制限する
  • SSH経由でリモートLinuxシステムでコマンドを実行
  • LinuxでSSHエイリアスを作成する方法
  • Linuxで特定のディレクトリにSSHで接続する方法

Linux
  1. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  2. Btrfsスナップショットの数に実際的な制限はありますか?

  3. 通常のユーザーとシステムユーザーの違いは何ですか?

  1. デフォルトのSSHサーバーのポート番号を変更する

  2. MySQL レプリケーションにおける「システム ユーザー」の目的は何ですか

  3. grep から返される結果の数を制限するにはどうすればよいですか?

  1. 正しいユーザーとして ssh ログインする方法は?

  2. Linux でシステムのコア数を知る方法は?

  3. 数百回の ssh ログインの失敗