denyhosts блокирует существующих пользователей от входа в систему от неизвестных (новых) IP-адресов

У меня есть настроенный denyhosts и работающий над Ubuntu 12.04. Это, по-видимому, работает хорошо, кроме него слишком строго.

Я могу войти в систему от любого IP-адреса, который я добавил к hosts.allow заранее. Мой sshd_config не позволяет вход в систему пароля, только входит в систему с ключами.

Однако входя в систему от нового IP-адреса с моим допустимым ключом RSA (который работает от моих известных IP-адресов), сервер показывает это сообщение в /var/log/auth.log:

23 июня 19:16:31 MyServerName sshd [5949]: отказанное подключение из hostname.comcast.net (XXX.XXX.XXX.XXX)

Для соединения, все, что я должен сделать, добавляет новый IP-адрес к/etc/hosts.allow.Именно. Затем я могу войти в систему:

23 июня 19:45:03 MyServerName sshd [6024]: Принятый открытый ключ для имени пользователя от порта XXX.XXX.XXX.XXX 61 236 ssh2
23 июня 19:45:03 MyServerName sshd [6026]: pam_unix (sshd:session): сессия, открытая для пользовательского имени пользователя (uid=0)

Я не изменил ни одного значения по умолчанию denyhosts значения конфигурации, и оно работает действительно хорошо - за исключением того, что это слишком строго.

(Или что-то еще читает/etc/hosts.allow?)

Я должен позволить любому пользователю Linux (чья учетная запись уже существует на сервере) входить в систему от любого IP-адреса, не внося изменения на сервере заранее (такие как добавление IP к hosts.allow).

EightBitTony предлагает, чтобы denyhosts позволил это поведение. В ответ на EightBitTony я изменил этот вопрос и заголовок.

2
24.06.2013, 02:57
3 ответа

Denyhosts только блоки привел логины к сбою (после того, как предопределенное количество). Это не делает, о котором я знаю, заблаговременно люди блока.

1
27.01.2020, 22:14
  • 1
    это, кажется, делает точно это. Я не могу войти в систему даже однажды, если я сначала не добавляю свой IP-адрес к hosts.allow. Я использую ключи RSA для входа на пути SSH. –  MountainX-for-Monica 24.06.2013, 02:25
  • 2
    я переписал вопрос и изменил заголовок на основе Вашего ответа. Я принял Ваш ответ, поскольку это было полезно. Но я все еще должен выяснить, почему логины блокируются, если IP сначала не добавляется к/etc/hosts.allow. Спасибо –  MountainX-for-Monica 24.06.2013, 02:58

Вы не можете одновременно блокировать доступ на более низком уровне (IP) и потребовать от протокола более высокого уровня (SSH) для переопределения блока – просто, потому что более высокий уровень никогда не достигается (в случае блока).

Можно ограничить хосты входа в систему к пользователям в целом и позволить всего одному пользователю входить в систему отовсюду. Но это не было бы динамическим решением.

Можно также работать два sshd экземпляры, одно использование denyhosts, при этом другой - применим этим пользователем только. К сожалению, это, кажется, не возможно отключить libwrap в конфигурации, таким образом, необходимо было бы, вероятно, скомпилировать sshd с соответствующими опциями или выполненный второй экземпляр в VM или контейнере.

1
27.01.2020, 22:14

Я думаю, что нашел проблему. Мой/etc/hosts.deny содержит эти две строки:

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 
...
0
27.01.2020, 22:14

Теги

Похожие вопросы