DenyHosts防ssh暴力破解

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

如果你在SSH下看到好多SSH进程,说明有人破解SSH,那么可以用这个阻止

 

 

 

========================yum 安装
1、下载和安装EPEL RPM

cd /tmp
wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
rpm -Uhv epel-release-5-3.noarch.rpm

2、使用yum命令安装denyhosts

yum install denyhosts
主要配置文件/etc/denyhosts.conf ,您可以看看,确保配置合适你的环境
3、添加系统启动自动运行
chkconfig –add denyhosts
chkconfig denyhosts on
4启动
service denyhosts start

============================================源码安装 :测试成功

我的服务器每天都会有无数的SSH失败尝试记录,有些无聊的人一直不停的扫描,这些人真够无聊的,没事吃饱了撑着,老找些软件在那里穷举扫描,所以大家第一要记的设置一个好的够复杂的密码。

怎么样防,如果要一条一条将这些IP阻止显然治标不治本,还好有DenyHosts软件来代替我们手搞定他。

DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件,当发现重复的攻击时就会记录IP到/etc/hosts.deny文件,从而达到自动屏IP的功能。

DenyHosts官方网站为:http://denyhosts.sourceforge.net

以下是安装记录(以CentOS 4.3, DenyHosts 2.5 为例)

安装

# cd /usr/local/src

            # wget http://mesh.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.5.tar.gz

            # tar -zxvf DenyHosts-2.5.tar.gz

            # cd DenyHosts-2.5

            # python setup.py install

默认是安装到/usr/share/denyhosts目录的。

配置

# cd /usr/share/denyhosts/

            # cp denyhosts.cfg-dist denyhosts.cfg

            # vi denyhosts.cfg

根据自己需要进行相应的配置(解释见下文件的配置文件)

设置启动脚本

# cp daemon-control-dist daemon-control

            # chown root daemon-control

            # chmod 700 daemon-control

完了之后执行daemon-contron start就可以了。

# ./daemon-control start

 


如果要使DenyHosts每次重起后自动启动还需做如下设置:
# cd /etc/init.d

            # ln -s /usr/share/denyhosts/daemon-control denyhosts

            # chkconfig –add denyhosts

            # chkconfig –level 2345 denyhosts on

或者修改/etc/rc.local文件:
# vi /etc/rc.local
加入下面这条命令
/usr/share/denyhosts/daemon-control start

---------------DenyHosts配置文件:

vim /usr/share/denyhosts/denyhosts.cfg

           

            SECURE_LOG = /var/log/secure 
            #ssh 日志文件,它是根据这个文件来判断的。

            
            HOSTS_DENY = /etc/hosts.deny 
            #控制用户登陆的文件

            PURGE_DENY = 1d

            #过多久后清除已经禁止的 

            'm' = minutes
            'h' = hours
            'd' = days
            'w' = weeks
            'y' = years

            

            BLOCK_SERVICE  = sshd
            #禁止的服务名

 

            DENY_THRESHOLD_INVALID = 100
            #允许无效(非法)用户失败的次数
/usr/share/denyhosts/data/users-invalid

显示test:18:Wed Apr 13 14:49:57 2011  表示用户test非法登录了18次


            DENY_THRESHOLD_VALID = 100
            #允许普通(合法)用户登陆失败的次数
/usr/share/denyhosts/data/users-valid

/usr/share/denyhosts/data/hosts-valid

 

            DENY_THRESHOLD_ROOT = 100

            #允许root登陆失败的次数

 

           DENY_THRESHOLD_RESTRICTED = 100
            这个选项用来确定受限用户登陆次数限制

 

          WORK_DIR = /usr/share/denyhosts/data

           这个选项用来确定数据存储文件夹,DenyHosts会定期检查该文件下数据,分析非法数据并定期加入host.deny。

 

          LOCK_FILE = /var/lock/subsys/denyhosts

          这个选项用来确定防止系统运行多个检测程序。

 

         AGE_RESET_VALID=5d

         AGE_RESET_ROOT=25d

         AGE_RESET_RESTRICTED=25d

         AGE_RESET_INVALID=10d

         以上这四条选项可以用来配置屏蔽的时间长短,‘d’表示天数,对于非法用户可以相对设置时间长一些


          HOSTNAME_LOOKUP=NO
          #是否做域名反解


          ADMIN_EMAIL = test@163.com
          #管理员邮件地址,它会给管理员发邮件,若不需要邮件通知,请把smtp注释掉

          DAEMON_LOG = /var/log/denyhosts
          #自己的日志文件

然后就可以启动了:

/usr/share/denyhosts/daemon-control start


可以看看/etc/hosts.deny内是否有禁止的IP,有的话说明已经成功了。

 

 

 如果有被禁止的ip连接,会提示

 server responded "connection close by remote host"

 

 

 

 

安装注意:

首先要看系统 /var/log 下有那种可供读取的日志     193 #
    194 # Redhat/Fedora:
    195 LOCK_FILE = /var/lock/subsys/denyhosts
    196 #
    197 # Debian
    198 #LOCK_FILE = /var/run/denyhosts.pid
    199 #
    200 # Misc
    201 #LOCK_FILE = /tmp/denyhosts.lock

其次   还要选择操作系统

 

 

 

 

 



====================================


Denyhost安装

Linux 2010-05-02 19:44:38 阅读48 评论0   字号:大中小 订阅
1、检查安装环境
检查Sshd是否支持Tcpwrap
ldd /usr/sbin/sshd |grep wrap
2、检查python版本
python –V
3、安装Denyhost
官方地址:http://denyhost.sourceforge.net
python setup.py install
   程序脚本自动安装到联盟/usr/share/denyhostsEqRLinux
   库文件自动安装到联盟/usr/lib/python2.3/site-packages/DenyHostsEqRLinux
   denyhosts.py自动安装到/usr/bin
设置启动脚本
联盟SECURE_LOG = /var/log/secure EqRLinux
#RedHat/Fedora Core分析该日志文件EqRLinux联盟
#其它版本linux根据denyhosts.cfg-dist内提示选择。EqRLinux联盟联盟联盟
EqRLinux
PURGE_DENY = 30mEqRLinux
#过多久后清除EqRLinux联盟联盟联盟
EqRLinux
DENY_THRESHOLD_INVALID = 1EqRLinux
#允许无效用户(/etc/passwd未列出)登录失败的次数EqRLinux联盟联盟联盟
EqRLinux
DENY_THRESHOLD_VALID = 5EqRLinux
#允许有效(普通)用户登录失败的次数EqRLinux联盟联盟联盟
EqRLinux
DENY_THRESHOLD_ROOT = 3EqRLinux
#允许root登录失败的次数EqRLinux联盟联盟联盟
EqRLinux
HOSTNAME_LOOKUP=NOEqRLinux
#是否做域名反解EqRLinux联盟

把Denyhost加入到开机启动中
echo '/usr/share/denyhosts/daemon-control start'>>/etc/rc.d/rc.local
启动Denyhost的进程
/usr/share/denyhosts/daemon-control start
可以查看到Denyhost在运行中
ps -ef | grep deny
Ssh连接记录的日志文件
tail /var/log/secure –f
Denyhost日志文件
tail /var/log/denyhosts –f
Denyhost将恶意连接的IP记录到Hosts.deny文件中,过一定时间后再从该文件中清除(Denyhost.cfg中设定的时间)
vi /etc/hosts.deny



============================

我的Nagios外网监控服务器,刚开始测试时取的密码是redhat,放进公网一天就被人改了,郁闷死了;
后来环境部署成熟以后发现仍然有不少外网ip在扫描和试探,看来不用点工具不行啊;
呵呵,我尝试使用大家都推荐使用的DenyHosts,它是用Python2.3写的一个程序,
它会分析/var/log/secure等日志文件,当发现同一IP在进行多次SSH密码尝试时就会记
录IP到/etc/hosts.deny文件,从而达到自动屏蔽该IP的目的。DenyHosts官方网站为:
http://denyhosts.sourceforge.net

①检查安装条件

1、首先判断系统安装的sshd是否支持tcp_wrappers(默认都支持)


# ldd /usr/sbin/sshd
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x0046e000)
2、判断默认安装的Python版本

# python -V
Python 2.3.4
3、已安装Python2.3以上版本的情况可以直接安装DenyHosts

# cd /usr/local/src
# wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
# tar zxf DenyHosts-2.6.tar.gz
# cd DenyHosts-2.6
# python setup.py install
程序脚本自动安装到/usr/share/denyhosts

库文件自动安装到/usr/lib/python2.3/site-packages/DenyHosts

denyhosts.py自动安装到/usr/bin

②设置启动脚本

# cd /usr/share/denyhosts/
# cp daemon-control-dist daemon-control
# chown root daemon-control
# chmod 700 daemon-control
# grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
# vi denyhosts.cfg
根据自己需要进行相应的修改

denyhosts.cfg

SECURE_LOG = /var/log/secure
#RedHat/Fedora Core分析该日志文件
#其它版本linux根据denyhosts.cfg-dist内提示选择。
PURGE_DENY = 30m
#过多久后清除
DENY_THRESHOLD_INVALID = 1
#允许无效用户(/etc/passwd未列出)登录失败的次数
DENY_THRESHOLD_VALID = 5
#允许有效(普通)用户登录失败的次数
DENY_THRESHOLD_ROOT = 3
#允许root登录失败的次数
HOSTNAME_LOOKUP=NO
#是否做域名反解
如果需要DenyHosts随系统重启而自动启动,还需做如下设置:

# vi /etc/rc.local
加入下面这条命令

/usr/share/denyhosts/daemon-control start
③启动

# /usr/share/denyhosts/daemon-control start
如果要使DenyHosts每次重起后自动启动还需做如下设置:

# cd /etc/init.d
# ln -s /usr/share/denyhosts/daemon-control denyhosts
# chkconfig --add denyhosts
# chkconfig --level 345 denyhosts on
然后就可以启动了:

service denyhosts start
DenyHosts配置文件:

vi /etc/denyhosts.cfg

SECURE_LOG = /var/log/secure #ssh日志文件,它是根据这个文件来判断的。
HOSTS_DENY = /etc/hosts.deny #控制用户登陆的文件
PURGE_DENY = 5m#过多久后清除已经禁止的
BLOCK_SERVICE   = sshd#禁止的服务名
DENY_THRESHOLD_INVALID = 1#允许无效用户失败的次数
DENY_THRESHOLD_VALID = 10#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT = 5#允许root登陆失败的次数
HOSTNAME_LOOKUP=NO#是否做域名反解
DAEMON_LOG = /var/log/denyhosts#自己的日志文件
ADMIN_EMAIL = yuhongchun027@163.com#管理员邮件地址,它会给管理员发邮件
下面这个是全自动下载安装的小脚本(推荐),当然安装后还得手动调整配置文件。install_denyhosts.sh脚本内容如下:

#!/bin/bash
cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz
tar zxf DenyHosts-2.6.tar.gz
cd DenyHosts-2.6
python setup.py install
cd /usr/share/denyhosts/
cp daemon-control-dist daemon-control
chown root daemon-control
chmod 700 daemon-control
grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg
echo "/usr/share/denyhosts/daemon-control start" >>/etc/rc.local
cd /etc/init.d
ln -s /usr/share/denyhosts/daemon-control denyhosts
chkconfig --add denyhosts
chkconfig --level 345 denyhosts on
service denyhosts start
下面是hostsdeny的示例:

Connection to 192.168.0.154 closed.
[root@autolemp ~]# ssh 192.168.0.154
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied, please try again.
root@192.168.0.154's password:
Permission denied (publickey,gssapi-with-mic,password)
出现最后这行表示生效。

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 以下是简化后的内容: 程序集变量 计数器:整数型 文本发送计次:整数型 子程序 __启动窗口_创建完毕 _手动发送数据_被单击 停止发送 发送预处理 判断端口是否启动成功,失败则提示并返回 根据组合框选择的进制类型,将编辑框内容转换后发送 发送失败则提示并返回 进制转换(被转换文本,被转换进制,转换的进制) 检查进制范围,错误则返回提示 规范参数,逐字符检查是否符合进制要求,不符合则返回错误提示 若进制相同直接返回原文本 否则进行进制转换并返回结果 _退出_被单击销毁 _组合框_端口号_列表项被选择 停止发送 设置端口号 _组合框_波特率_列表项被选择 停止发送 设置波特率 _组合框_数据位_列表项被选择 停止发送 设置数据位数 _组合框_校验_列表项被选择 停止发送 设置奇偶校验方案 _组合框_停止位_列表项被选择 停止发送 设置停止位数 发送预处理 停止发送 设置波特率、端口号、数据位数、奇偶校验方案、停止位数 根据奇偶校验方案设置校验标志 _选择框_DTR_被单击 根据选中状态设置信号操作 _选择框_RTS_被单击 根据选中状态设置信号操作 _选择框_Break_被单击 根据选中状态设置信号操作 _编辑框_发送周期_内容被改变 若时钟标志选中,设置时钟周期 _选择框_时钟标志_被单击 若选中,设置发送方式为时钟模式,启动发送并设置时钟周期 否则,停止发送,设置时钟周期为0 _组合框_发送方式_列表项被选择 根据选择设置时钟标志和时钟周期 _端口_发送数据_收到信号 _端口_接收数据_收到信号 _端口_接收数据_数据到达 根据接收数据的进制选择,将数据转换后显示在编辑框中 _时钟1_周期事件 根据发送方式和进制选择,周期性发送数据 打开并读入文件 打开文件,读取内容到编辑框 _打开
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值