CentOS6上安装Denyhost防暴力破解ssh
时间:2017-02-01 22:28 来源:linux.it.net.cn 作者:IT
一.检查安装要求
1.首选检查sshd是否支持Tcpwrap,只有支持Tcpwrap才可以安装Denyhost
#ldd /usr/sbin/sshd |grep wrap
libwrap.so.0=> /usr/lib/libwrap.so.0 (0x00864000) //出现此信息时表示支持
2.再检查Python的版本,Python2.3以上版本可以直接安装
#python -V
Python 2.6.6
均达到要求
二.安装Denyhosts
wget http://nchc.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz
tar -zxvf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
#(执行Python脚本进行安装)
python setup.py install
(默认是安装到/usr/share/denyhosts目录的
程序脚本自动安装到/usr/share/denyhosts
库文件自动安装到/usr/lib/python2.4/site-packages/DenyHosts
denyhosts.py安装到/usr/bin)
三.配置
cd /usr/share/denyhosts/
cp denyhosts.cfg-dist denyhosts.cfg (拷贝模板文件)
vim denyhosts.cfg
中:修改和解释
SECURE_LOG= /var/log/secure #ssh日志文件,它是根据这个文件来判断的,如还有其他的只要更改名字即可,例如将secure改为secure.1等。
HOSTS_DENY= /etc/hosts.deny #将阻止IP写入到hosts.deny/#控制用户登陆的文件,将多次连接失败的IP添加到此文件,达到屏蔽的作用
PURGE_DENY= 5h #过多久后清除已阻止IP,这里为5小时(空表示永远不解禁) #(s表示秒,m表示分,h表示小时,d表示天,w表示周,y表示年)
BLOCK_SERVICE= sshd #阻止服务名
DENY_THRESHOLD_INVALID= 1 #允许无效用户登录失败的次数
DENY_THRESHOLD_VALID= 10 #允许普通/有效用户登录失败的次数
DENY_THRESHOLD_ROOT= 5 #允许root登录失败的次数
WORK_DIR= /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中
DENY_THRESHOLD_RESTRICTED= 1 #设定denyhost 写入到该资料夹
LOCK_FILE= /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。
HOSTNAME_LOOKUP=NO #是否做域名反解
ADMIN_EMAIL= #设置管理员邮件地址
DAEMON_LOG= /var/log/denyhosts #自己的日志文件
DAEMON_PURGE= 5h #该项与PURGE_DENY设置成一样,也是清除hosts.deniedssh用户的时间。
其他:
AGE_RESET_VALID=5d #有效用户登录失败计数归零的时间
#(s表示秒,M表示分钟,h表示小时,d表示天,m表示月,w表示周,y表示年)
AGE_RESET_ROOT=25d #root用户登录失败计数归零的时间
AGE_RESET_RESTRICTED=25d
AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间
总的#用户的登陆失败计数会在多长时间后重置为0
RESET_ON_SUCCESS= yes #如果一个ip登陆成功后,失败的登陆计数是否重置为0
DAEMON_SLEEP= 30s #当以后台方式运行时,每读一次日志文件的时间间隔。
DAEMON_PURGE= 1h #当以后台方式运行时,清除机制在HOSTS_DENY中终止旧条目的时间间隔,这个会影响PURGE_DENY的间隔。
四.设置启动脚本
启动前要把自己的IP和服务器的IP放在白名单: vim/etc/hosts.allow
1. cp daemon-control-dist daemon-control
chown root daemon-control (设置好启动脚本的所属用户和权限)
chmod 700 daemon-control
( 可以不打生成Denyhost的主配置文件,将模板文件中开头是#的过滤后再导入到Denyhost.cfg )
#grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg )
完了之后执行daemon-contronstart就可以了。
2.启动Denyhost的进程
#./daemon-control start (最好用这个)或 #/usr/share/denyhosts/daemon-control start
3.可以查看到Denyhost在运行中
#ps -ef |grep deny
在另外一台机器上使用ssh进行连接,当在连续几次输入错误的密码后,会被自动阻止掉,在一定时内不可以再连接ssh连接记录的日志文件。
4.DenyHosts添加自动启动项:
ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts
chkconfig --add denyhosts
chkconfig denyhosts on
(或将 Denyhost启动脚本添加到自动启动中 #echo '/usr/share/denyhosts/daemon-control start' >>/etc/rc.d/rc.local )
5.启动服务:
service denyhosts start
6.让一台电脑失败连接数次。
在看看vim/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。
7.查看我的/etc/hosts.deny文件发现里面已经有22条记录。
#cat /etc/hosts.deny | wc -l
22
五. denyhosts使用
如果不想让主机拒绝某一个ip,做法如下:
vi/etc/hosts.allow
sshd:192.168.0.1#允许192.168.0.1访问该主机的ssh服务
如果想拒绝某一个ip同样使用vi/etc/hosts.deny添加就Ok
注:
黑名单:vim/etc/hosts.deny
白名单:vim/etc/hosts.allow
假如在黑名单了,把IP写白名单里,同样是不受限制的。
本文参考: http://zalej.blog.51cto.com/6242002/1205491
以上为CentOS6上安装Denyhost防暴力破解ssh
(责任编辑:IT)
一.检查安装要求 1.首选检查sshd是否支持Tcpwrap,只有支持Tcpwrap才可以安装Denyhost #ldd /usr/sbin/sshd |grep wrap libwrap.so.0=> /usr/lib/libwrap.so.0 (0x00864000) //出现此信息时表示支持 2.再检查Python的版本,Python2.3以上版本可以直接安装 #python -V Python 2.6.6 均达到要求 二.安装Denyhosts wget http://nchc.dl.sourceforge.net/project/denyhosts/denyhosts/2.6/DenyHosts-2.6.tar.gz tar -zxvf DenyHosts-2.6.tar.gz cd DenyHosts-2.6 #(执行Python脚本进行安装) python setup.py install (默认是安装到/usr/share/denyhosts目录的 程序脚本自动安装到/usr/share/denyhosts 库文件自动安装到/usr/lib/python2.4/site-packages/DenyHosts denyhosts.py安装到/usr/bin) 三.配置 cd /usr/share/denyhosts/ cp denyhosts.cfg-dist denyhosts.cfg (拷贝模板文件) vim denyhosts.cfg 中:修改和解释 SECURE_LOG= /var/log/secure #ssh日志文件,它是根据这个文件来判断的,如还有其他的只要更改名字即可,例如将secure改为secure.1等。 HOSTS_DENY= /etc/hosts.deny #将阻止IP写入到hosts.deny/#控制用户登陆的文件,将多次连接失败的IP添加到此文件,达到屏蔽的作用 PURGE_DENY= 5h #过多久后清除已阻止IP,这里为5小时(空表示永远不解禁) #(s表示秒,m表示分,h表示小时,d表示天,w表示周,y表示年) BLOCK_SERVICE= sshd #阻止服务名 DENY_THRESHOLD_INVALID= 1 #允许无效用户登录失败的次数 DENY_THRESHOLD_VALID= 10 #允许普通/有效用户登录失败的次数 DENY_THRESHOLD_ROOT= 5 #允许root登录失败的次数 WORK_DIR= /usr/local/share/denyhosts/data #将deny的host或ip纪录到Work_dir中 DENY_THRESHOLD_RESTRICTED= 1 #设定denyhost 写入到该资料夹 LOCK_FILE= /var/lock/subsys/denyhosts #将DenyHOts启动的pid纪录到LOCK_FILE中,已确保服务正确启动,防止同时启动多个服务。 HOSTNAME_LOOKUP=NO #是否做域名反解 ADMIN_EMAIL= #设置管理员邮件地址 DAEMON_LOG= /var/log/denyhosts #自己的日志文件 DAEMON_PURGE= 5h #该项与PURGE_DENY设置成一样,也是清除hosts.deniedssh用户的时间。 其他: AGE_RESET_VALID=5d #有效用户登录失败计数归零的时间 #(s表示秒,M表示分钟,h表示小时,d表示天,m表示月,w表示周,y表示年) AGE_RESET_ROOT=25d #root用户登录失败计数归零的时间 AGE_RESET_RESTRICTED=25d AGE_RESET_INVALID=10d #无效用户登录失败计数归零的时间 总的#用户的登陆失败计数会在多长时间后重置为0 RESET_ON_SUCCESS= yes #如果一个ip登陆成功后,失败的登陆计数是否重置为0 DAEMON_SLEEP= 30s #当以后台方式运行时,每读一次日志文件的时间间隔。 DAEMON_PURGE= 1h #当以后台方式运行时,清除机制在HOSTS_DENY中终止旧条目的时间间隔,这个会影响PURGE_DENY的间隔。 四.设置启动脚本 启动前要把自己的IP和服务器的IP放在白名单: vim/etc/hosts.allow 1. cp daemon-control-dist daemon-control chown root daemon-control (设置好启动脚本的所属用户和权限) chmod 700 daemon-control ( 可以不打生成Denyhost的主配置文件,将模板文件中开头是#的过滤后再导入到Denyhost.cfg ) #grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg ) 完了之后执行daemon-contronstart就可以了。 2.启动Denyhost的进程 #./daemon-control start (最好用这个)或 #/usr/share/denyhosts/daemon-control start 3.可以查看到Denyhost在运行中 #ps -ef |grep deny 在另外一台机器上使用ssh进行连接,当在连续几次输入错误的密码后,会被自动阻止掉,在一定时内不可以再连接ssh连接记录的日志文件。 4.DenyHosts添加自动启动项: ln -s /usr/share/denyhosts/daemon-control /etc/init.d/denyhosts chkconfig --add denyhosts chkconfig denyhosts on (或将 Denyhost启动脚本添加到自动启动中 #echo '/usr/share/denyhosts/daemon-control start' >>/etc/rc.d/rc.local ) 5.启动服务: service denyhosts start 6.让一台电脑失败连接数次。 在看看vim/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。 7.查看我的/etc/hosts.deny文件发现里面已经有22条记录。 #cat /etc/hosts.deny | wc -l 22 五. denyhosts使用 如果不想让主机拒绝某一个ip,做法如下: vi/etc/hosts.allow sshd:192.168.0.1#允许192.168.0.1访问该主机的ssh服务 如果想拒绝某一个ip同样使用vi/etc/hosts.deny添加就Ok 注: 黑名单:vim/etc/hosts.deny 白名单:vim/etc/hosts.allow 假如在黑名单了,把IP写白名单里,同样是不受限制的。 本文参考: http://zalej.blog.51cto.com/6242002/1205491 以上为CentOS6上安装Denyhost防暴力破解ssh (责任编辑:IT) |