前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux---CentOS-Ubuntu防爆破SSH脚本

Linux---CentOS-Ubuntu防爆破SSH脚本

作者头像
院长技术
发布2021-02-19 14:19:05
1.2K0
发布2021-02-19 14:19:05
举报
文章被收录于专栏:院长运维开发

CentOS 7方式

黑名单IP

代码语言:javascript
复制
touch /etc/black.txt

SSH 防爆破脚本

vim /etc/secure_ssh.sh

代码语言:javascript
复制
#!/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
代码语言:javascript
复制
chmod +x /etc/secure_ssh.sh 
代码语言:javascript
复制
echo  "* * * * *  sh /etc/secure_ssh.sh" >> /etc/crontab
crontab /etc/crontab

Ubuntu方式

代码语言:javascript
复制
mkdir /script
touch /script/checkBlackIp.sh
chmod 755 /script/checkBlackIp.sh /script
chown root:root /script/checkBlackIp.sh

创建脚本

vim /script/checkBlackIp.sh

代码语言:javascript
复制
#!/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
echo "is denied now."

手工运行测试

代码语言:javascript
复制
sudo bash checkBlackIp.sh

定时2分钟执行1次

代码语言:javascript
复制
*/2 * * * * root sh /script/checkBlackIp.sh

注意,Ubuntu和CentOS的SSH日志文件路径不一样:

代码语言:javascript
复制
/var/log/auth.log Ubuntu是这个文件
/var/log/secure CentOS是这个文件

外网服务器被黑挖矿,解决办法

  1. 前言
代码语言:javascript
复制
最近在学习远程连接Docker,需要开启TCP;都说容易被别人获取root权限,开始没以为然,慢慢我感觉远程操作服务器越来越缓慢,top命令后发现还真被挖矿了…第一次嘛没什么经验,简单的干掉可疑进程后重启了服务器,就没管了,结果两天后发现又被挖了…
  1. 思路
代码语言:javascript
复制
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这种格式的
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CentOS 7方式
    • 黑名单IP
      • SSH 防爆破脚本
      • Ubuntu方式
        • 创建脚本
        • 外网服务器被黑挖矿,解决办法
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档