/etc/hosts.allow
マシン192.168.122.50で次のオプションを設定しました。
sshd : ALL EXCEPT 192.168.122.1
そして、マシン192.168.122.1で試して、ルートでマシン192.168.122.50に接続できました。ssh [email protected]
/etc/hosts.deny
次に、192.168.122.50ファイルに次のルールを追加しました。
sshd : 192.168.122.1
192.168.122.1 コンピューターで再試行しました。しかし今回はssh [email protected]
接続できませんエラーが発生しました。
ssh_exchange_identification: Connection closed by remote host
/etc/hosts.allow
これにより、EXCEPTディレクティブの実際の動作について疑問が生じます/etc/hosts.deny
。私が学んだ内容は次のとおりです。
入れたらとは別にHosts.allowのディレクティブは、その背後にある特定のホスト/ネットワークを許可しませんが、接続はまだ確立できることを意味します。~までNET Frameworkで特定のホスト/ネットワークについて明示的に言及しました/etc/hosts.deny
。要するに許可しないからといって拒否するわけではない
入れたらとは別にHosts.denyのディレクティブは、特定のホスト/ネットワークが接続を確立することを間接的に許可することを意味します。要するに否定しないことは許すという意味です
私の判断は正しいですか?
注1:変更するたびにsshデーモンが再起動されます(/etc/hosts.allow
必須/etc/hosts.deny
ではありません)。
注2:私が知っている限り、許可は拒否よりも優先されます。
ベストアンサー1
暗黙の「基本拒否」があると仮定できます。つまり、何もありません。
ALL EXCEPT 192.168.122.1
ホスト 192.168.122.1 にはまったく適用されないため、後続のエントリが確認されます。
あなたが持っていないと仮定古代 tcpwrappers
(つまり、サポートしてビルドします-DHOSTS_ACCESS
。)実際には、次のものを使用する必要がありますhosts.allow
。
sshd: 192.168.122.1 : DENY
sshd: ALL : ALLOW
(知っているデフォルトで許可もちろんこれは悪い習慣です)