特定のプライベートIPがSSH(RSAキーペア)を介してLinuxサーバーにログインできるようにするにはどうすればよいですか?
ベストアンサー1
構成を介して接続できるホストを制限できます。TCPラッパー またはフィルタリングされたネットワークトラフィックを使用する(ファイアウォール)iptables。クライアントのIPアドレスに基づいてさまざまな認証方法を使用するには、SSHデーモン(オプション3)を設定します。
オプション1:IPTABLESフィルタリングを有効にする
iptablesルールは、最初のルールが一致するまで順次評価されます。
たとえば、192.168.0.0/24ネットワークのトラフィックを許可し、そうでない場合はポート22へのトラフィックを破棄します。DROP
iptablesデフォルトポリシーが設定されている場合は、このルールは必要ありません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を復元するには、いくつかのメカニズムを設定する必要があります。
iptables
IPv4 トラフィックにのみ適用されます。 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 マニュアルページ。