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

hosts.deny не блокирует IP-адреса

В моем файле /etc/hosts.deny есть следующее

#
# hosts.deny    This file describes the names of the hosts which are
#       *not* allowed to use the local INET services, as decided
#       by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!

ALL:ALL

и это в /etc/hosts.allow

#
# hosts.allow   This file describes the names of the hosts which are
#       allowed to use the local INET services, as decided
#       by the '/usr/sbin/tcpd' server.
#
ALL:xx.xx.xx.xx , xx.xx.xxx.xx , xx.xx.xxx.xxx , xx.x.xxx.xxx , xx.xxx.xxx.xxx

но я все еще получаю много таких писем:

Time:     Thu Feb 10 13:39:55 2011 +0000
IP:       202.119.208.220 (CN/China/-)
Failures: 5 (sshd)
Interval: 300 seconds
Blocked:  Permanent Block

Log entries:

Feb 10 13:39:52 ds-103 sshd[12566]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=202.119.208.220  user=root
Feb 10 13:39:52 ds-103 sshd[12567]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=202.119.208.220  user=root
Feb 10 13:39:52 ds-103 sshd[12568]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=202.119.208.220  user=root
Feb 10 13:39:52 ds-103 sshd[12571]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=202.119.208.220  user=root
Feb 10 13:39:53 ds-103 sshd[12575]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=202.119.208.220  user=root

Что еще хуже, csf пытается автоматически заблокировать эти ip при попытке войти, но хотя он помещает ip в файл csf.deny, они также не блокируются

Итак, я пытаюсь заблокировать все IP-адреса с помощью /etc/hosts.deny и разрешить только IP-адреса, которые я использую с /etc/hosts.allow, но пока что это не работает.

прямо сейчас мне нужно вручную заблокировать каждый с помощью iptables, я бы предпочел, чтобы он автоматически блокировал хакеров на случай, если я был вдали от компьютера или спал

изменил файлы на это, и теперь, похоже, он работает.

через несколько часов узнает, решило это это или нет

#
# hosts.deny    This file describes the names of the hosts which are
#       *not* allowed to use the local INET services, as decided
#       by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow.  In particular
# you should know that NFS uses portmap!
ALL: ALL

Кажется, после двоеточия нужен пробел.

#
# hosts.allow   This file describes the names of the hosts which are
#       allowed to use the local INET services, as decided
#       by the '/usr/sbin/tcpd' server.
ALL: xx.xxx.xx.xx , xx.xxx.xxx.xx , xx.xx.xxx.xxx , xx.x.xxx.xxx , xx.xxx.xxx.xxx

Вы также можете установить AllowUsers для своих разрешенных пользователей и IP-адресов.

Чтобы облегчить себе жизнь, я также запускаю второй sshd для внешних подключений, прослушивая порт, отличный от порта 22 по умолчанию для ssh. Таким образом, многие попытки даже не доходят до моих журналов. Это совсем не улучшает безопасность, некоторые сценарии могут сканировать все порты и находить настоящий, но большинство просто сканируют порт по умолчанию 22. Таким образом мои файлы журналов не заполняются этим шумом.

Я также использую /etc/hosts.deny и /etc/hosts.allow для sshd, и здесь он отлично работает. Доступны ли эти файлы в вашей системе для чтения?

попробуйте установить для демона ssh явно в /etc/hosts.deny

sshd: ALL

и в /etc/hosts.allow

sshd: .example.com xxx.xxx.xxx.xxx

У меня это всегда работает.