この記事では、特定のIPアドレスまたはホスト名からサーバーへの制限付きSecure Shell(SSH)ログインを構成する方法について説明します。
これを実現するには、TCP Wrappersを使用します。これは、着信ネットワークトラフィックの基本的なトラフィックフィルタリングを提供するためです。表面的にはより複雑ですが、TCPWrappersは基本的に2つのファイルを使用します: /etc/hosts.allow および/etc/hosts.deny 。
ファイルがまだ存在しない場合は、作成できます。次のコマンドを使用してそれらを実行します:
sudo touch /etc/hosts.{allow,deny}
すべての着信SSH接続を拒否することがベストプラクティスと見なされます。これを行うには、次の手順を実行します。
-
ファイル/etc/hosts.denyを開きます テキストエディタを使用して:
vi /etc/hosts.deny
-
次の行を追加して、サーバーへのすべての着信SSH接続を拒否します。
sshd: ALL
-
ファイルを保存して閉じます。
それでおしまい。これにより、ホストへのすべてのSSHアクセスがブロックされます
次に、次の手順を実行して、SSHを使用してログインする権限を持つIPアドレスを構成します。
-
ファイル/etc/hosts.allowを開きます テキストエディタを使用してファイルする:
vi /etc/hosts.allow
-
sshd
を追加します 選択したIPアドレスがパブリックSSHを使用して接続できるようにする行。たとえば、次の行はネットワーク172.168.0.21
を許可します :sshd: 172.168.0.21
-
ファイルを保存して閉じます。
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デーモンを再起動する必要はありません。