ssh 脚本屏蔽IP

  • 2016-07-01
  • 1,210
  • 0

TCP Wrapper

  如果想定时的屏蔽ssh登录失败过多的IP,可以用 计划任务+脚本 完成。对于ssh服务,屏蔽IP较多的情况下,用 tcp wrapper 是比较理想的,其配置文件是 /etc/hosts.{deny|allow},这里需要使用 /etc/hosts.deny 来屏蔽掉恶意访问的IP,其格式为:


  另外,当 hosts.deny 和 hosts.allow 两个文件中都有某个IP时,是以 hosts.allow 条目更优先的,因此为避免误拦截,可以将自己常用的IP先在 hosts.allow 中放行。

  在Centos6或更高版本中,保存 hosts.{deny|allow} 文件后立即生效。

  还需注意的是,并不是所有的服务,都可以使用 tcp wrapper,这跟服务本身有关,这一点可以参考鸟哥基础篇的详细说明。
命令 ldd $(which sshd) | grep libwrap 如果可以得到这样的反馈 libwrap.so.0 => /lib64/libwrap.so.0,才说明这个服务是可以在 hosts.{deny|allow} 中使用的。
 

操作步骤

1. 创建一个脚本 /root/ssh_cron.sh,脚本内容见下方

 
2. crontab -e 编辑任务计划,添加比如每天凌晨2点整,静默执行一次


  如发现当前就有被爆破的情况,比如本机root登陆页面大量login failed,或者 /var/log/secure 日志增长很快,且有大量登陆失败记时,可以手动运行这个脚本,或将计划任务的频率调得更高一些。

评论

还没有任何评论,抢个沙发?

发表评论