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

SSHログインを特定のIPまたはホストに制限する

この記事では、特定のIPアドレスまたはホスト名からサーバーへの制限付きSecure Shell(SSH)ログインを構成する方法について説明します。

これを実現するには、TCP Wrappersを使用します。これは、着信ネットワークトラフィックの基本的なトラフィックフィルタリングを提供するためです。表面的にはより複雑ですが、TCPWrappersは基本的に2つのファイルを使用します: /etc/hosts.allow および/etc/hosts.deny

ファイルがまだ存在しない場合は、作成できます。次のコマンドを使用してそれらを実行します:

sudo touch /etc/hosts.{allow,deny}
すべてのホストを拒否

すべての着信SSH接続を拒否することがベストプラクティスと見なされます。これを行うには、次の手順を実行します。

  1. ファイル/etc/hosts.denyを開きます テキストエディタを使用して:

     vi /etc/hosts.deny
    
  2. 次の行を追加して、サーバーへのすべての着信SSH接続を拒否します。

     sshd: ALL
    
  3. ファイルを保存して閉じます。

それでおしまい。これにより、ホストへのすべてのSSHアクセスがブロックされます

IPアドレスを許可する

次に、次の手順を実行して、SSHを使用してログインする権限を持つIPアドレスを構成します。

  1. ファイル/etc/hosts.allowを開きます テキストエディタを使用してファイルする:

     vi /etc/hosts.allow
    
  2. sshdを追加します 選択したIPアドレスがパブリックSSHを使用して接続できるようにする行。たとえば、次の行はネットワーク172.168.0.21を許可します :

     sshd: 172.168.0.21
    
  3. ファイルを保存して閉じます。

TCP Wrapperファイルは、コンマで区切られたエントリのリストを受け入れるため、このセクションの最初のエントリにアドレスを追加できます。

sshd: 172.168.0.21, 10.83.33.77, 10.63.152.9, 10.12.100.11, 10.82.192.28

また、部分的なIPアドレスをサブネットとして受け入れるため、172.168.0.0/24全体を許可できます。 として:

sshd: 172.168.0.

または、次の例に示すように:

sshd : localhost
sshd : 192.168.0.
sshd : 99.151.250.7

IPアドレス、サブネット、またはホスト名に基づいて許可または拒否できます。ルールを最も具体的なものから順にリストします。Linux®オペレーティングシステムに基づくサーバーは、最初に hosts.allowを確認することに注意してください。 ファイルは上から下に始まり、その後に hosts.deny が続きます ファイル。たとえば、 hosts.allowのIPアドレスからのSSH接続の試行 hosts.deny であっても、許可されます すべての接続をブロックします。

この構成では、 hosts.allowにリストされているすべてのクライアント ファイルはSSH経由で許可され、リストされていないクライアントはすべてブロックされます。

:変更を有効にするためにSSHデーモンを再起動する必要はありません。


Linux
  1. Linuxサーバー上の特定のユーザーアカウントへのリモートログインを許可または拒否する方法

  2. SFTPを許可してSSHを禁止する方法は?

  3. 特定のディレクトリにSSHで接続する方法は?

  1. リモートSSHアクセスを許可しますか?

  2. パスワードでSSHログインを無効にする方法

  3. 公開鍵認証のみでの root ssh ログインを許可する

  1. SSH ログインが遅いのはなぜですか?

  2. ssh での rsync の読み取り専用/リモート ホストからのコピーのみを制限する

  3. SSH ユーザーが SSH トンネリングのみを許可するように制限するには?