岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> Linux频道 >> Linux编程 >> SHELL编程 >> Linux频道正文
用Shell写DEAMON后台来控制安全访问的方法
作者:未知 文章来源:本站整理 点击数: 更新时间:2007-12-18 18:18:51

  我的控制访问比较特殊,考虑到远程登陆点并非固定,所以无法设定固定IP通过SSH登陆服务器。这样N多IP会通过黑客软件试图破解您的用户名和密码(基本都是穷举,不怕一万只怕万一,因此我写了这个后台脚本)。

  安全:利用/etc/hosts.deny、/etc/hosts.allow来做tcp wrapper控制访问,配合iptables作进一步过滤。

  crontab最短执行周期是每隔1分钟执行一次,而以下这段代码的最短执行周期可以自定义(最短1秒)

  脚本名:sshd_monitor

  #!/bin/sh

  while true

  #使用while true来做循环,这样当脚本后台执行的时候总是会根据sleep时间的长短来执行任务

  do

  cat /var/log/secure* |awk '{if($6=="Invalid")print $10}' |sed 's/::ffff://g' |sort -n |uniq -c |awk '{if($1>=5)print $2}' >/root/lawless_ip

  #在secure日志中,获取登陆失败大于5次的ip并输入到lawless_ip文件中

  row=`cat /root/lawless_ip|wc -l`

  #记录lawless_ip文件中的ip记录条数

  a=0

  for z in `seq 1 $row`

  #从第一个ip开始写规则到lawless_ip_deny这个临时文件中,起结果会类似 ALL:123.123.123.123 ……

  do

  a=$[$a+1]

  row_ip=`cat /root/lawless_ip |sed -n -e ""$a"p"`

  echo -e "ALL:$row_ip" >> /root/lawless_ip_deny

  done

  cat /root/lawless_ip_deny > /etc/hosts.deny

  #然后将lawless_ip_deny文件中的内容写入到hosts.deny。

  rm /root/lawless_ip_deny

  #删除该临时文件

  sleep 10

  #每隔10秒执行while操作

  done

  为防止自己登陆失败超过5次被禁止,需要在/etc/hosts.allow中加入自己本机或许可某个IP总是能够登陆的匹配规则如: ALL:192.168.10.12。记住,一般allow的优先级总比deny高。此外,在/etc/rc.local加句sh /dir/sshd_monitor &,保证每次启动服务器时都能后台运行该脚本。

  以上方法只是抛砖引玉,这样的deamon可以写成监控ftp、http、进程等各种需求,相当实用。


  • 上一个Linux频道:
  • 下一个Linux频道:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:WebSyue@163.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    bet365 传奇服务端 魔域私服 劲舞私服 传奇世界私服 bet365 传世私服 传奇世界私服