IP アドレスに特定のクライアントへの SSH アクセスを制限します。

IP アドレスに特定のクライアントへの SSH アクセスを制限します。

特定のプライベートIPがSSH(RSAキーペア)を介してLinuxサーバーにログインできるようにするにはどうすればよいですか?

ベストアンサー1

構成を介して接続できるホストを制限できます。TCPラッパー またはフィルタリングされたネットワークトラフィックを使用する(ファイアウォール)iptables。クライアントのIPアドレスに基づいてさまざまな認証方法を使用するには、SSHデーモン(オプション3)を設定します。

オプション1:IPTABLESフィルタリングを有効にする

iptablesルールは、最初のルールが一致するまで順次評価されます。

たとえば、192.168.0.0/24ネットワークのトラフィックを許可し、そうでない場合はポート22へのトラフィックを破棄します。DROPiptablesデフォルトポリシーが設定されている場合は、このルールは必要ありませんDROP

iptables -A INPUT -p tcp --dport 22 --source 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

ルールを削除する前に、より多くのネットワーク/ホストと一致するようにルールを追加できます。ネットワークまたはホストアドレスが多い場合は、次のものを使用する必要があります。IPセット基準寸法。しかもイープラングあらゆる範囲のIPアドレスを使用できるモジュールです。

Iptableは再起動後も持続しません。起動時にiptablesを復元するには、いくつかのメカニズムを設定する必要があります。

iptablesIPv4 トラフィックにのみ適用されます。 SSH受信IPv6アドレスを持つシステムを使用して、必要な設定を完了できますip6tables

オプション2:TCPラッパーの使用

注:tcpwrappersのサポートが削除されたため、最新のディストリビューションではオプションではない可能性があります。オープンSSH 6.7

TCPラッパーを使用して接続できるホストを構成することもできます。 TCPラッパーを使用すると、IPアドレスに加えて、ルールにホスト名を使用できます。

デフォルトでは、すべてのホストは拒否されます。

/etc/hosts.deny:

sshd : ALL

次に、host.allowで許可されているホストを一覧表示します。たとえば、ネットワークを許可します。192.168.0.0/24そしてローカルホスト

/etc/hosts.allow:

sshd : 192.168.0.0/24
sshd : 127.0.0.1
sshd : [::1]

オプション3:SSHデーモンの構成

クライアントアドレス/ホスト名に基づいてさまざまな認証方法を使用するようにsshd_configでsshデーモンを設定できます。他のホストが接続しないようにするには、iptablesまたはTCPラッパーを使用する必要があります。

まず、基本認証方式を削除します。

PasswordAuthentication no
PubkeyAuthentication no

Match Address次に、ファイルの最後のaの後に必要な認証方法を追加します。Matchファイルの末尾に配置することが重要です。これ以降のすべての構成行は、次の行Matchまで条件ブロック内に配置されるためです。たとえば、

Match Address 127.0.0.*
    PubkeyAuthentication yes

他のクライアントは引き続き接続できますが、使用可能な認証方法がないため、ログインは失敗します。

一致パラメータと許可される条件付き構成オプションについては、以下で説明します。 sshd_config のマニュアルページ。一致するパターンは次のように記録されます。ssh_config マニュアルページ

おすすめ記事