美文网首页安全
Linux Contos Ubuntu防爆破ssh脚本

Linux Contos Ubuntu防爆破ssh脚本

作者: andrewkk | 来源:发表于2021-01-13 17:51 被阅读0次
    Contos 7方式
    黑名单IP
    touch /etc/black.txt
    
    ssh 防爆破脚本
    cat /etc/secure_ssh.sh 
    #!/bin/bash
        cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /etc/black.txt
        for i in `cat  /etc/black.txt`
        do
          IP=`echo $i |awk -F= '{print $1}'`
          NUM=`echo $i|awk -F= '{print $2}'`
           if [ $NUM -gt 3 ];then
              grep $IP /etc/hosts.deny > /dev/null
            if [ $? -gt 0 ];then
              echo "sshd:$IP:deny" >> /etc/hosts.deny
            fi
          fi
        done
    
    echo  "* * * * *  sh /etc/secure_ssh.sh" >> /etc/crontab
    
    
    
    chmod -x /etc/secure_ssh.sh 
    
    crontab /etc/crontab
    
    ubuntu方式
    mkdir /script
    
    touch /script/checkBlackIp.sh
    chmod 755 /script/checkBlackIp.sh /script
    
    chown root:root /script/checkBlackIp.sh
    
    vim /script/checkBlackIp.sh
    #!/bin/sh
    
    lastb |awk '/ssh/{print $3}' |sort |uniq -c |awk '{print $2"="$1}'  >/script/black.list
    
    
    
    for i in `cat /script/black.list`
    do
        IP=`echo $i |awk -F= '{print $1}'`
        NUM=`echo $i |awk -F= '{print $2}'`
        if [ ${#NUM} -ne 1 ]; then
            grep $IP /etc/hosts.deny >/dev/null
            if [ ! $? -eq 0 ]; then
                    echo "sshd:$IP:deny" >>/etc/hosts.deny
     
                    echo "$IP \c"
            fi
        fi
    done
    e
    echo "is denied now."
    
    手工运行测试
    sudo bash checkBlackIp.sh
    
    定时2分钟执行1次
    */2 * * * * root sh /script/checkBlackIp.sh
    
    注意,Ubuntu和CentOS的SSH日志文件路径不一样:
    /var/log/auth.log Ubuntu是这个文件
    /var/log/secure CentOS是这个文件
    
    外网服务器被黑挖矿。解决办法
    1. 前言
    
    最近在学习远程连接Docker,需要开启TCP;都说容易被别人获取root权限,开始没以为然,慢慢我感觉远程操作服务器越来越缓慢,top命令后发现还真被挖矿了…第一次嘛没什么经验,简单的干掉可疑进程后重启了服务器,就没管了,结果两天后发现又被挖了…
    
    2. 思路
    
    top查看进程,占高达90%CPU以上基本都是可疑的
    ls -l /proc/$PID/exe查看可疑进程所在目录
    kill $PID干掉可疑进程
    rm -rf $DIR删掉可疑进程所在目录
    service crond status 查看是否开启了定时任务
    如果开启了定时任务,就进入目录cd /var/spool/cron/,这里的文件记录着每个用户的定时任务
    rm -rf $FILE删掉可疑定时任务文件
    service crond stop关闭定时任务
    cat ~/.ssh/authorized_keys查看配置的公钥,可能会出现一到多个没见过的公钥,编辑文件删除可疑的公钥或者重新生成密钥
    cd /home/ && ls -all进入到此目录下查看可疑用户
    userdel [-r] $USERNAME删除可疑用户
    cat /etc/sudoers查看 sudo 文件中是否有可疑用户添加了 sudo 权限,编辑文件删除可疑用户的 sudo 权限,例如$USERNAME ALL=(ALL) ALL这种格式的
    

    出于本能,第一步要做的事情,就是找出这些文件,先删除,并且不让他再去下载。

    于是我将 curl 和 wget 改为只有 root 用户能够使用。

    chmod 700 /usr/bin/wget
    chmod 700 /usr/bin/curl
    然后便是查定时任务,因为之前有过被攻击的经验,这些 B 都喜欢在你机器上面添加定时任务。

    su - confluence
    crontab -l


    image.png image.png

    相关文章

      网友评论

        本文标题:Linux Contos Ubuntu防爆破ssh脚本

        本文链接:https://www.haomeiwen.com/subject/enhpaktx.html