首页 » VPS 知识 » 浏览内容

sshd被攻击的自动防御方法v1


2012-12-29 22:19:00 1,555 0 发表评论 字体: 作者:C.K.

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

本文来自:http://haoyun.blog.51cto.com/2038762/1045339

你是否遇到过sshd服务被暴力破解的纠结一幕呢?有人可能会说我只允许我们公司的ip登陆不就行了吗,但是当公司使用的是ADSL拨号方式上网的时候就显的力不从心了,无法确定ip来源了。当然了如果公司使用的是固定ip,就忽略之。

本文只是提供一个方法,具体适用于谁,适用于什么环境,还是自己斟酌吧!

我的系统是CentOS5.4,借助swatch这个工具来实现自动防御,完全实现自动化,自动封锁攻击ip,并在指定时间后解封,这个过程完全自动化。

1、安装swatch

# yum --enablerepo=bjtu install swatch

版本应该>=3.2.3
之前用3.1.1版本,有点问题

2、创建配置文件

# touch ~/.swatchrc
  • # vim ~/.swatchrc
  • 因为sshd服务的日志文件为/var/log/secure,加入要监控的配置项,如下

    #
  • # bad login attempts
  • watchfor /sshd.+ Failed password for .+ from ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
  •         echo magenta
  •         bell 1
  •         exec "/root/swatch.sh $1"
  • 保存退出

    3、创建攻击检测到后的处理脚本

    # touch /root/swatch.sh
  • # vim /root/swatch.sh
  • 加入如下脚本:

    #!/bin/sh
  • IP=$1
  • echo $IP >> /root/sshd_blocked_ip_list
  • /sbin/iptables -I INPUT -s "$IP" -p tcp --dport 22 -j DROP
  • /usr/bin/at "now + 1 hours" <<< "/sbin/iptables -D INPUT -s $IP -p tcp --dport 22 -j DROP"
  • 修改脚本文件权限

    # chmod u+x /root/swatch.sh

    4、运行swatch

    # /usr/bin/swatch -t /var/log/secure --daemon

    Note:
    攻击者的ip被记录到sshd_blocked_ip_list里了
    另外可以通过查看防火墙规则看到正在被封锁的ip

    # iptables -L -n

    以及自动清除的计划任务

    # atq

    至此便完成了一个sshd暴力破解自动防御系统,由于监控日志时swatch可能有延迟,所以防火墙规则里可能会有多于一条的相同规则,但是不影响功能。

      网站统计 Statistics

      • 创建时间: 2005年1月3日 距今5013 天
      • 日志总数: 2461
      • 评论总数: 630
      • 标签总数: 654
      • 链接总数: 273
      • 最后更新: 2018-8-31 17:57:04
      • 您是本站第 13945212 位访客

      广告区 Guǎng Gào