Centos Ubuntu防爆破ssh脚本

Centos 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

echo "is denied now."

手工运行测试
sudo bash checkBlackIp.sh

# echo > /var/log/wtmp;echo > /var/log/btmp;history -c;
# lastb |awk '/ssh/{print $3}' |sort |uniq -c |awk '{print $2"="$1}'

http://www.ctohome.com/FuWuQi/36/650.html
在这里插入图片描述

定时2分钟执行1次

#crontab -e
*/2 * * * * root sh /script/checkBlackIp.sh

在这里插入图片描述

在这里插入图片描述
如果被拒绝登陆了,需要在vi /etc/hosts.deny里面将拒绝ip删除,就可以登录 了;注释之后,就不会再添加进/etc/hosts.deny
在这里插入图片描述
在这里插入图片描述
已经被拒绝登陆
在这里插入图片描述
如何清空拦截记录
1、清空/删除history记录

echo > /var/log/wtmp;echo > /var/log/btmp;history -c;

2、清空wtmp

# echo > /var/log/wtmp              # 此文件默认打开时乱码的,里面可以看到ip等等信息
#last

3、删除 /etc/hosts.deny里面被拒绝的IP地址

#vi /etc/hosts.deny

在这里插入图片描述



扩展
crontab -e配置完成后,如何把保存并退出?

1.Ctrl+O 写入

2.出现“FIile name to Write…”,输入Enter

3.Ctrl+x 保存输出

提示“crontab:installing new crontab”表示成功。

(root权限下)

crontab启动:/etc/init.d/cron start ( service cron start )

crontab重启: /etc/init.d/cron restart (service cron restart )

crontab关闭: /etc/init.d/cron stop ( service cron stop )

在终端中,可以利用 ps -aux|grep cron查询crontab状态,默认情况下,是自启动的。

(系统级的)做系统级配置我们会直接配置 /etc/crontab

(用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。

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

/var/log/auth.log Ubuntu是这个文件
/var/log/secure CentOS是这个文件

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

  1. 前言

最近在学习远程连接Docker,需要开启TCP;都说容易被别人获取root权限,开始没以为然,慢慢我感觉远程操作服务器越来越缓慢,top命令后发现还真被挖矿了…第一次嘛没什么经验,简单的干掉可疑进程后重启了服务器,就没管了,结果两天后发现又被挖了…

  1. 思路
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这种格式的

参考链接 :

Centos Ubuntu防爆破ssh脚本 :
https://www.jianshu.com/p/e2daea9b93c2

CentOS 7上创建一个脚本以便使用SSH登录新用户是相对简单的。下面是一个简单的步骤: 1. 以root用户身份登录到CentOS 7系统。 2. 打开一个文本编辑器,并创建一个名为`create_user_ssh_login.sh`的新文件。 3. 在文件中输入以下内容: ```bash #!/bin/bash # 设置新用户的用户名 USERNAME="newuser" # 创建新用户 useradd $USERNAME # 设置新用户的密码 PASSWORD="newpassword" echo $PASSWORD | passwd --stdin $USERNAME # 为新用户创建.ssh目录并设置权限 mkdir /home/$USERNAME/.ssh chown $USERNAME:$USERNAME /home/$USERNAME/.ssh chmod 700 /home/$USERNAME/.ssh # 将公钥复制到新用户的authorized_keys文件中 cat /path/to/public_key.pub >> /home/$USERNAME/.ssh/authorized_keys chown $USERNAME:$USERNAME /home/$USERNAME/.ssh/authorized_keys chmod 600 /home/$USERNAME/.ssh/authorized_keys # 允许新用户通过SSH登录 sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config systemctl restart sshd ``` 4. 保存并关闭文件。 5. 使用以下命令将脚本文件设置为可执行: ```bash chmod +x create_user_ssh_login.sh ``` 6. 运行脚本以创建用户和配置SSH登录: ```bash ./create_user_ssh_login.sh ``` 7. 根据需要替换`USERNAME`和`PASSWORD`变量的值,并将公钥的路径替换为你的公钥路径。 注意:脚本中的默认用户名为`newuser`,默认密码为`newpassword`,请根据实际需要进行修改和替换。 这个脚本将创建一个新用户,指定的用户名和密码,并为该用户创建.ssh目录,将公钥添加到authorized_keys文件中,然后禁用密码身份验证,并重新启动SSH服务器以使更改生效。这样,新用户就可以使用SSH登录到系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值