denyhosts игнорируя /etc/hosts.allow
Я бегу Ubuntu 13.10
(не LTS, я знаю...). я имею denyhosts
установлены. я имею /etc/hosts.deny
а также /etc/hosts.allow
, Я добавил 2 IP к hosts.allow
(дом + работа). Однако всякий раз, когда я выполняю вход с этих IP-адресов, я получаю электронное письмо с сообщением о том, что произошел подозрительный вход.
Я попытался отформатировать мой hosts.allow
подать 2 разными способами. Ни один, кажется, не работает.
Первый:
...
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
,
2 ответа
У вас есть оба этих комментария, поэтому я полагаю, что denyhosts использует /etc/hosts.allow
, Закомментируйте второе HOSTS_DENY
Линия и перезапустить denyhosts.
Если вы по-прежнему получаете письма, вам нужно добавить SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS = NO
в ваш файл denyhosts.conf. Для этого требуется DenyHosts 0.6 или выше. Смотрите это для деталей.
Вам также необходимо создать allowed-hosts
файл с вашими доверенными IP-адресами, по одному в строке. Это идет в той же папке, определенной WORK_DIR
в конфигурации.
Вы должны закомментировать 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)
справочная страница для получения дополнительной информации.
Иногда sshd компилируется без поддержки hosts.allow и hosts.deny (поддержка tcp-wrappers). Это произошло на моей установке Ubuntu 18.04 LTS. Чтобы проверить, поддерживает ли ваша версия sshd, выполните следующее:
- какой сшд
- строки /usr/sbin/sshd | egrep 'hosts.(allow|deny)'
Строка № 1 выше, чтобы проверить, где именно установлен sshd (например, на моей машине RedHat это был / sbin / sshd, в то время как Ubuntu был /usr/sbin/sshd), поэтому измените #2 соответственно.
Строка #2 будет иметь пустой вывод, если hosts.deny + hosts.allow не поддерживается. В этом случае вы захотите скачать исходный код с openssh.com и перестроить его:
./configure --with-libwrap
make
sudo make install