web-dev-qa-db-ja.com

Unixで特定のIPアドレスへのsshアクセスを制限する標準的な方法はありますか?

OSXやその他のシステムでmanに関連するsshページを確認し、hosts.allowファイルとhosts.denyファイルを この投稿 に従って使用してみました。およびsshd_configは役に立ちません。

$ cat /etc/hosts.allow 
sshd: 192.168.0.4/255.255.255.0
$ cat /etc/hosts.deny 
sshd: ALL

sshd_configMatchを使用しようとしましたが、成功しませんでした(構成を正確に覚えていません)。

私のシステムはOSX 10.8.5であり、sshdでローカルIP192.168.0.4/24またはそのローカル名からのアクセスを許可し、ゲートウェイ192.168.0.1を含む他のすべてのホストへのアクセスを拒否したいと考えています。

UpdateStephen Kittによって以下に提案されたソリューションは、フォーマットAllowUsers name/pattern@hostnameを除いて機能します。これは以下をログに記録します

sshd[31723]: debug1: attempt 6 failures 5 [preauth]
sshd[31723]: debug1: keyboard-interactive devs  [preauth]
sshd[31723]: debug1: auth2_challenge: user=test devs= [preauth]
sshd[31723]: debug1: kbdint_alloc: devices 'pam' [preauth]
sshd[31723]: debug1: auth2_challenge_start: trying authentication method 'pam' [preauth]
sshd[31723]: Postponed keyboard-interactive for invalid user test from 192.168.0.4 port 55680 ssh2 [preauth]
sshd[31723]: error: PAM: authentication error for illegal user test from 192.168.0.4 via 192.168.0.5
sshd[31723]: Failed keyboard-interactive/pam for invalid user test from 192.168.0.4 port 55680 ssh2
sshd[31723]: Disconnecting: Too many authentication failures for test [preauth]
sshd[31723]: debug1: do_cleanup [preauth]
1
1.61803

Matchを使用するのではなく、単一のホストからのログインを許可する場合は、次のように機能します(sshd_config内)。

AllowUsers *@192.168.0.4

これは、ターゲットへのログインを使用して、192.168.0.4からログインするユーザーのみを許可します。必要に応じて、*を特定のログインに置き換え、スペースで区切って複数のパターンを指定できます。たとえば:

AllowUsers [email protected] [email protected]
3
Stephen Kitt