• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    用Shell做DEAMON后台来控制安全访问

    发布者: 网神之王 | 发布时间: 2025-6-27 16:14| 查看数: 32| 评论数: 0|帖子模式

    如何做一个后台DEAMON来控制安全访问?这就是贯穿这篇文章的中心概念。

    我的控制访问比较特殊,考虑到远程登陆点并非固定,所以无法设定固定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(=="Invalid")print }' |sed 's/::ffff://g' |sort -n |uniq -c |awk '{if(>=5)print }' >/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 "ALLrow_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、进程等各种需求,相当实用。



    来源:https://www.jb51.net/hack/5827.html
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表