随笔 - 298  文章 - 377  trackbacks - 0
<2016年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用链接

留言簿(34)

随笔分类

随笔档案

文章档案

相册

收藏夹

搜索

  •  

最新评论

阅读排行榜

评论排行榜

denyhosts是一个非常好用的防SSH暴力破解的软件,感觉比fail2ban简单有效。
debian下安装denyhosts非常简单。直接apt安装即可。(debian强大的地方就是什么鸟东西他都可以apt-get安装)
屏蔽的IP会记录在/etc/hosts.deny这个文件里面,可随时查看。

1、清除SSH登录记录,防止装完屏蔽自己。

echo "" > /var/log/auth.log

2、安装denyhosts

apt-get install denyhosts


2、编辑Denyhosts配置文件vi /etc/denyhosts.conf

SECURE_LOG = /var/log/auth.log  #SSH日志
PURGE_DENY = 30m  #过多久后清除已阻止IP
HOSTS_DENY = /etc/hosts.deny  #将阻止IP写入到hosts.deny
BLOCK_SERVICE  = sshd  #禁止的服务名

DENY_THRESHOLD_INVALID = 1  #允许无效用户登录失败的次数
DENY_THRESHOLD_VALID = 3  #允许普通用户登录失败的次数
DENY_THRESHOLD_ROOT = 3  #允许root登录失败的次数
DENY_THRESHOLD_RESTRICTED = 1  #设定 deny host 写入到该资料夹
WORK_DIR = /var/lib/denyhosts  #将deny的host或ip纪录到Work_dir中

SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES #如果为YES,所有在$WORK_DIR/allowed-host时面的IP地址将会被认为是可疑的,如果设置为NO,所有在allowd- hosts试图登陆的结果,将不会发送警告邮件!所有不在$WORK_DIR/allowed-host时面的IP地址将会发送警告!
HOSTNAME_LOOKUP=NO  #是否做域名反解,是否将IP地址解析为主机名。
LOCK_FILE = /var/run/denyhosts.pid  #定义PID文件的位置,确保同时只有一个Denyhost进程在运行

 ############ THESE SETTINGS ARE OPTIONAL ############这里的设置是可选的

ADMIN_EMAIL = root@localhost  #当有人试图登录发送邮件。前提是,本机一定要可以发送邮件才行!
SMTP_HOST = localhost  #指定smtp服务器
SMTP_PORT = 25  #指定SMTP端口号
SMTP_FROM = DenyHosts   #指定发件人
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

DAEMON_LOG = /var/log/denyhosts  #当denyhost运行在守护进程模式的时候,日志文件存储的位置
DAEMON_SLEEP = 30s   #轮询查看SSHD日志的间隔
DAEMON_PURGE = 1h    #多长时间清空$HOSTS_DENY中的IP地址,如果PURGE_DENY为空,这个设置将无效
其实默认配置我觉得足够了,修改下root的失败次数,默认的是1,一般修改成3-5就行了,DENY_THRESHOLD_ROOT = 3
HOSTNAME_LOOKUP=NO 关闭反向解析,PURGE_DENY = 30m阻止30分钟!
3、重启/etc/init.d/denyhosts restart
4.设置开机自启动
# vi /etc/rc.local
加入下面这条命令
/usr/share/denyhosts/daemon-control start

注意:如果自己之前登录失败次数很多的话,装DenyHosts前最好先清除下SSH登录记录
echo "" > /var/log/auth.log,不然有可能装完会把自己给封了。
如果你已经被自己屏蔽了,可以使用下面方法给自己解封。

1.关闭denyhosts服务

/etc/init.d/denyhosts stop

2.把系统的登录log给清空

echo "" > /var/log/auth.log

3.进/var/lib/denyhosts目录,把目录下所有文件内容清空一遍(这个是DenyHosts自己的log目录)
4.运行vi /etc/hosts.deny 把里面自己的IP给删除。

5.重启denyhosts

/etc/init.d/denyhosts restart

centos更简单了。

rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
yum install denyhosts

chkconfig --add denyhosts
chkconfig denyhosts on

service denyhosts restart

posted on 2016-07-27 13:00 聂文龙 阅读(1004) 评论(0)  编辑 收藏 引用 所属分类: Linux

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理