Назад | Перейти на главную страницу

denyhosts игнорирует /etc/hosts.allow

я бегу Ubuntu 13.10 (не LTS, я знаю ...). у меня есть denyhosts установлены. у меня есть /etc/hosts.deny и /etc/hosts.allow. Я добавил 2 IP в hosts.allow (дом + работа). Однако всякий раз, когда я вхожу в систему с этих IP-адресов, я получаю электронное письмо с сообщением о подозрительном входе в систему.

Я пробовал отформатировать свой hosts.allow файл двумя разными способами. Ни то, ни другое не работают.

Первый:

...
sshd: iii.i.i.iii : allow
sshd: iii.i.i.iii : allow

Второй:

...
sshd: iii.i.i.iii
sshd: iii.i.i.iii

Не знаю, связано ли это, но если я что-то заметил, я не могу объяснить.

Если я сбегу

$ sudo service denyhosts restart
 * Stopping DenyHosts denyhosts                                                                                                                                                                                                                                        [ OK ] 
/etc/init.d/denyhosts: 44: test: /etc/hosts.deny: unexpected operator
 * Starting DenyHosts denyhosts  

Но если я ищу ошибку в hosts.deny или hosts.allow, не могу ее найти:

sudo test -e /etc/hosts.allow
sudo test -e /etc/hosts.deny

И прежде чем я забуду, мой /etc/denyhosts.conf файл :

...
# Most operating systems:
HOSTS_DENY = /etc/hosts.deny
#
# Some BSD (FreeBSD) Unixes:
HOSTS_DENY = /etc/hosts.allow
...

Как говорится в комментарии, /etc/hosts.allow, по-видимому, используется в некоторых системах BSD Unix. Это проблема? В некоторых руководствах, которые я читал для Ubuntu, очевидно, это не так.

РЕДАКТИРОВАТЬ:

В /etc/init.d/denyhosts файл запускается:

HOSTS_DENY=$(grep ^HOSTS_DENY $CONFIG  | cut -d = -f 2)

который в моем случае возвращает оба hosts.allow и hosts.deny.

Вам нужно прокомментировать HOSTS_DENY = /etc/hosts.allow строка, так как вы работаете в Ubuntu, а не в BSD.

Затем вам нужно понять, как hosts.(allow|deny) файлы обрабатываются. Сервисы, которые используют эти файлы, всегда проверяют hosts.allow перед hosts.deny и остановимся на первом матче. Итак, если вы предоставите доступ к IP-адресу в своем hosts.allow файл, доступ будет предоставлен независимо от содержимого hosts.deny. Вам не нужно беспокоиться о том, добавляет ли denyhosts дополнительные адреса в этот файл. В hosts.allow файл в основном позволяет вам занести IP-адреса в белый список.

Увидеть hosts_access(5) справочную страницу для получения дополнительной информации.

У вас оба раскомментированных, поэтому я полагаю, что denyhosts использует /etc/hosts.allow. Прокомментируйте второй HOSTS_DENY line и перезапустите denyhosts.

Если вы все еще получаете электронные письма, вам нужно добавить SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS = NO в ваш файл denyhosts.conf. Для этого требуется DenyHosts 0,6 или выше. Видеть этот для подробностей.

Вам также необходимо создать allowed-hosts файл с вашими доверенными IP-адресами, по одному в каждой строке. Это находится в той же папке, что и WORK_DIR в комплектации.

Иногда sshd компилируется без поддержки hosts.allow и hosts.deny (поддержка tcp-wrappers). Это произошло при моей установке Ubuntu 18.04 LTS. Чтобы проверить, поддерживает ли ваша версия sshd, выполните следующее:

  1. какой sshd
  2. строки / usr / sbin / sshd | egrep 'хосты. (разрешить | запретить)'

Строка №1 выше предназначена для проверки того, где именно установлен sshd (например, на моей машине RedHat это был / sbin / sshd, тогда как Ubuntu был / usr / sbin / sshd), поэтому измените №2 соответствующим образом.

Строка №2 будет иметь пустой вывод, если hosts.deny + hosts.allow не поддерживается. В этом случае вы захотите загрузить исходный код с openssh.com и перестроить его:

./configure --with-libwrap 
make
sudo make install