DenyHosts
是一个开源且免费的基于日志的入侵防御安全程序.它旨在通过阻止发起方来监视和分析 SSH 服务器日志中的无效登录尝试、基于字典的攻击和暴力攻击。
IP
通过添加条目到地址/etc/hosts.deny
服务器上的文件,并防止 IP 地址进行任何进一步的此类登录尝试。
DenyHosts
默认情况下
DenyHosts
Linux 系统中不包含该工具,使用以下yum 命令安装软件包。
# yum install -y denyhosts
# vim /etc/denyhosts.conf
SECURE_LOG = /var/log/secure #ssh日志文件
HOSTS_DENY = /etc/hosts.deny #将阻止IP写入到hosts.deny
PURGE_DENY = 4w #过多久后清除已经禁止的IP,其中w代表周,d代表天,h代表小时,s代表秒,m代表分钟
BLOCK_SERVICE = sshd #阻止服务名
DENY_THRESHOLD_INVALID = 5 #无效用户名限制登陆次数。 // --> 主要
DENY_THRESHOLD_VALID = 10 #有效用户名限制登陆次数。 // --> 主要
DENY_THRESHOLD_ROOT = 5 #root限制登陆次数。 // --> 主要
DENY_THRESHOLD_RESTRICTED = 1 #受限用户限制登录次数。 // --> 主要
WORK_DIR = /var/lib/denyhosts #将deny的host或ip纪录到Work_dir中(限制过的ip和host存下案底,列入受限名单)
HOSTNAME_LOOKUP=YES #是否做域名反解
LOCK_FILE = /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
ADMIN_EMAIL = rumenz@rumenz.com #设置管理员邮件地址
SMTP_HOST = localhost
SMTP_PORT = 25
SMTP_FROM = DenyHosts
SMTP_SUBJECT = DenyHosts Report
AGE_RESET_ROOT = 1d #root用户登录失败计数归零的时间(1d:1天)
AGE_RESET_RESTRICTED=25d #受限用户的失败登录计数归零的时间
AGE_RESET_VALID=1d #有效用户登录失败计数归零的时间
AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间
DAEMON_LOG = /var/log/denyhosts #自己的日志文件
# /etc/hosts.deny //黑名单(拦截记录)
# /etc/hosts.allow //白名单
查看
denyhosts
ssh 记录有多少攻击者和黑客试图访问你的服务器。使用以下命令查看实时日志。
# tail -f /var/log/secure
需要停止服务。
# /etc/init.d/denyhosts stop
完全删除或删除被禁止的IP地址。需要编辑以下文件并删除IP地址。
# vi /etc/hosts.deny
# vi /var/lib/denyhosts/hosts
# vi /var/lib/denyhosts/hosts-restricted
# vi /var/lib/denyhosts/hosts-root
# vi /var/lib/denyhosts/hosts-valid
# vi /var/lib/denyhosts/users-hosts
删除被禁止的 IP 地址后,再次重新启动服务。
# /etc/init.d/denyhosts start
违规的IP地址添加到/var/lib/denyhosts目录下的所有文件中,因此很难确定哪些文件包含违规的IP地址。可以使用grep命令查找IP地址。例如,要查找IP地址172.16.25.125执行。
# cd /var/lib/denyhosts
# grep 172.16.25.125 *
我们可以设置某些固定ip永远不会被屏蔽。可以打开
/var/lib/denyhosts/allowed-hosts
文件。默认情况下,该文件中包含的任何IP地址都不会被禁止。
# vi /var/lib/denyhosts/allowed-hosts
并在单独的行上添加每个 IP 地址。保存并关闭文件。
# We mustn't block localhost
127.0.0.1
172.16.25.125
172.16.25.126
172.16.25.127