使用Denyhosts防止黑客SSHD扫描
环境:Ubuntu Server 12.04
denyhost是一个由Python写的脚本,目前最新版本为2.6,可以实现对自动查找恶意ssh连接,然后把恶意ip加入到/etc/hosts.deny文件里面,以实现对服务器的安全防护
- 安装denyhost
- # apt-get install mailutils //安装邮件功能,以实现当有黑客攻击的时候报警到管理员邮箱
- # apt-get install denyhosts //安装denyhost软件,以实现防黑客扫描
查看并配置denyhosts
root@node2:~# cat /etc/denyhosts.conf | grep -v "^$"| grep -v "^#"
- ############ THESE SETTINGS ARE REQUIRED ############ //这些设定是必须的
- SECURE_LOG = /var/log/auth.log //指定sshd的日志文件,里面已经内置了一些日志文件的位置,只需要打开即可,打开的方法为删除#号。
- HOSTS_DENY = /etc/hosts.deny //指定可以限制IP地址的文件,这里使用/etc/hosts.deny
- PURGE_DENY = 5m //过多长时间,把IP从/etc/hosts.deny里面清除
- BLOCK_SERVICE = sshd //指定被保护的服务,这里要保护的是sshd
- DENY_THRESHOLD_INVALID = 1 //允许无效用户失败的次数,在/etc/passwd里面没有的用户(不包括root)
- DENY_THRESHOLD_VALID = 2 //允许正常用户失败的次数,在/etc/passwd里面有的用户(不包括root)
- DENY_THRESHOLD_ROOT = 1 //允许root用户失败的次数
- DENY_THRESHOLD_RESTRICTED = 1 //允许在$WORK_DIR/hosts-restricted里面出现的用户失败的次数
- WORK_DIR = /var/lib/denyhosts //定义工作目录
- SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES //如果为YES,所有在$WORK_DIR/allowed-host时面的IP地址将会被认为是可疑的,如果设置为NO,所有在allowd-hosts试图登陆的结果,将不会发送警告邮件!所有不在$WORK_DIR/allowed-host时面的IP地址将会发送警告!
- HOSTNAME_LOOKUP=YES //是否将IP地址解析为主机名,告警的时候使用主机名。
- LOCK_FILE = /run/denyhosts.pid //定义PID文件的位置,确保同时只有一个Denyhost进程在运行
- ############ THESE SETTINGS ARE OPTIONAL ############ //这里的设置是可选的
- ADMIN_EMAIL = gm100861@gmail.com //当有人试图登录你的服务器,或者有IP被加入黑名单的时候,发送邮件到这里指定的邮箱。前提是,本机一定要可以发送邮件才行!
- SMTP_HOST = localhost //指定smtp服务器
- SMTP_PORT = 25 //指定SMTP端口号
- SMTP_FROM = DenyHosts <nobody@localhost> //指定发件人
- SMTP_SUBJECT = DenyHosts Report //指定邮件主题
- AGE_RESET_VALID=5d //多长时间后,用户登录失败的次数被置为0,这里是指在/etc/passwd里面定义的用户,如果不设置,永远都不会置0
- AGE_RESET_ROOT=25d //多长时间后,root用户登录失败的次数置为0,如果不设置,永远都不会置0
- AGE_RESET_RESTRICTED=25d //在$WORK_DIR/hosts-restricted时面定义的用户,多长时间失败次数计数器被置为0
- AGE_RESET_INVALID=10d //无效用户(不在/etc/passwd里面的用户)的失败次数计数器,多长时间被置为0
- RESET_ON_SUCCESS = yes //当某个IP使用某个用户登录成功后,该IP对应的用户失败次数将会被置为0
- ######### THESE SETTINGS ARE SPECIFIC TO DAEMON MODE ##########
- DAEMON_LOG = /var/log/denyhosts //当denyhost运行在守护进程模式的时候,日志文件存储的位置
- DAEMON_SLEEP = 30s //轮询查看SSHD日志的间隔
- DAEMON_PURGE = 1h //多长时间清空$HOSTS_DENY中的IP地址,如果PURGE_DENY为空,这个设置将无效
- ######### THESE SETTINGS ARE SPECIFIC TO ##########
- ######### DAEMON SYNCHRONIZATION ##########
恶意的登录一下,再查看/etc/hosts.deny文件
root@node2:~# cat /etc/hosts.deny # /etc/hosts.deny: list of hosts that are _not_ allowed to access the system. # See the manual pages hosts_access(5) and hosts_options(5). # # Example: ALL: some.host.name, .some.domain # ALL EXCEPT in.fingerd: other.host.name, .other.domain # # If you're going to protect the portmapper use the name "portmap" for the # daemon name. Remember that you can only use the keyword "ALL" and IP # addresses (NOT host or domain names) for the portmapper, as well as for # rpc.mountd (the NFS mount daemon). See portmap(8) and rpc.mountd(8) # for further information. # # 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 # DenyHosts: Mon Jul 16 16:46:46 2012 | sshd: 1.1.1.254 sshd: 1.1.1.254
再查看一下管理员邮箱,收到报警邮件
相关推荐
hpujsj 2020-06-14
thlm0 2019-12-11
csai00hua 2015-03-24
zhuzhufxz 2020-09-16
qdqht00 2020-07-26
houjinkai 2020-06-18
风起于青萍之末 2020-06-12
zycglboy 2020-06-02
87901735 2020-05-31
jianghero 2020-05-03
深井兮兮 2020-05-01
zhongcanw 2020-04-20
lizhengfa 2020-04-15
tomli 2020-02-22
dahege 2020-02-22
83206837 2020-02-18