Ubuntu 12.04でホストの設定と実行を拒否しました。明らかにうまく機能しますが、あまりにも制限的です。
Host.allowに事前に追加されたすべてのIPアドレスからログインできます。私のsshd_configはパスワードログインを許可せず、キーログインのみを許可します。
ただし、有効なRSAキー(既知のIPアドレス)を使用して新しいIPアドレスからログインすると、サーバーは/var/log/auth.logに次のメッセージを表示します。
6月23日 19:16:31 MyServerName sshd[5949]: ホスト名.comcast.net(XXX.XXX.XXX.XXX)の接続が拒否されました。
私が接続する必要があるのは、/etc/hosts.allowに新しいIPアドレスを追加することだけでした。それはすべてです。その後、ログインできます。
6月23日 19:45:03 MyServerName sshd[6024]: XXX でユーザー名公開鍵を受け入れます。
デフォルトの拒否ホスト構成値を変更せず、うまく機能します。ただ厳しすぎるだけです。
(または/etc/hosts.allowを読む他のものはありますか?)
サーバーにすでにアカウントがあるすべてのLinuxユーザーが、サーバーを事前に変更せずに(ホストにIPを追加するなど)、すべてのIPアドレスからログインできるようにする必要があります。
EvenBitTonyは、拒否ホストがこの動作を許可する必要があることを示唆しています。 EightBitTonyに答えてこの質問とタイトルを変更しました。
答え1
ホスト拒否失敗したログインのみをブロックします(事前定義された回数以降)。私が知る限り、人々を先制的に妨げることはできません。
答え2
低レベル(IP)のアクセスを同時にブロックすることはできず、そのブロックを無視するにはより高いレベルのプロトコル(SSH)が必要です。単にブロックの場合、より高いレベルに到達できないからです。
一般ユーザーのログインをホストに制限し、どこからでも1人のユーザーだけがログインできるようにします。しかし、これは動的な解決策ではありません。
2つのインスタンスを実行することもできますsshd
。 1 つは拒否ホストを使用し、もう 1 つはそのユーザーにのみ使用できます。残念ながら、設定でlibwrapを無効にすることは不可能に見えるため、そのsshd
オプションでコンパイルするか、仮想マシンまたはコンテナで2番目のインスタンスを実行する必要があります。
答え3
問題を発見したと思います。私の/etc/hosts.denyには2つの行が含まれています。
ALL: PARANOID
sshd: ALL
これは問題があると思いますか?
これは私の/etc/hosts.denyの一部です:
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
#
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# The PARANOID wildcard matches any host whose name does not match its
# address.
# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
ALL: PARANOID
sshd: ALL
ALL: 200.125.165.10
ALL: 203.144.65.53
ALL: 85.31.203.35
...