预防利用ssh暴力破解linux用户

前言

之前买的腾讯云服务器,总是收到提醒被其它的ip攻击试图破解。老夫实在是忍无可忍,自己在网上参考了一篇教程,就总结了下,防止ssh暴力破解linux用户,将试图入侵的ip达到一定次数就放入黑名单中。还是提醒一句吧,这里是基于root用户登录讲解的。当然了你自己的云服务器,肯定是用root用户登录的。

分配文件基本权限时核心原则:在最小权限情况下能实现要求即可

区别:root用户登录的是#符号,普通用户登录的用户是$符号。

延伸阅读
linux系统管理之系统资源查看
linux系统管理之系统定时任务

正文

一、首先看一下awk命令记录黑名单

cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort|uniq -c
| awk '{print $2"="$1;}' > /opt/black_ip/black.list

二、编辑脚本通过for循环过滤出登录错误超过指定次数的ip

编辑你的脚本:vim /usr/local/bin/secure_ssh.sh

#! /bin/bash
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort|uniq -c
| awk '{print $2"="$1;}' > /opt/black_ip/black.list
# DEFINE=1,代表你设置的允许尝试登录次数为1次,根据自己的需求设置
DEFINE="1"
for i in `cat /opt/black_ip/black.list`
do
   IP=`echo $i|awk -F= '{print $1}'` # 过滤的ip地址
   NUM=`echo $i|awk -F= '{print $2}'` # 过滤的ip尝试登录的次数
   if [[ ${NUM} -gt ${DEFINE} ]]; then
        grep $IP /etc/hosts.deny > /dev/null 
        if [ $? -gt 0 ];then
        	 # 你可以把你常用的ip放入host.allow文件白名单,hosts.deny对应的就是黑名单
             echo "sshd:$IP:deny" >> /etc/hosts.deny 
        fi
    fi
done

思来想去还是加上一些注释,便于理解。

三、赋予执行权限

权限目录的作用

  • r:查询目录下的文件(ls目命令)
  • w:修改目录的权限。例如:新建,删除,重命名,剪切,复制文件和目录(touch,rm,mv,cp
  • x:进入目录(cd

chmod 777(慎重赋予最高权限) 【文件】,这里就不详细讲基本权限了,后续会出相关的文章。
每一位对应的含义

  • 第1个7代表所有者
  • 第2个7代表所属组
  • 第3个7代表other

使用chmod 755 secure_ssh.sh 命令赋予读与执行的权限。

对文件来讲:最高权限为x(执行);对目录来讲:最高权限为w(写)。

这里再啰嗦一遍,分配文件基本权限时核心原则:在最小权限情况下能实现要求即可

四、循环执行脚本

先看看*代表的意义

* * * * * 执行的任务 ," * "的含义如下表所示:

内容 含义 范围
第一个“ * ”号 一小时当中的第几分钟 0-59
第二个“ * ”号 一天当中的第几小时 0-23
第三个“ * ”号 一个月当中的第几天 1-31
第四个“ * ”号 一年当中的第几个月 1-12
第五个“ * ”号 一周当中的星期几 0-7(0和7都代表星期日)

再看看一些符号代表的含义

  • “ * ” :代表任意时间 例如:第一个“ * ” 每分钟执行一次命令
  • “ , ”: 代表不连续的时间 例如:“ 0 9,12,15 * * * 命令” 每天的9:00,12:00,15:00都执行一次命令
  • “ - ": 代表连续的时间范围 例如:“0 8 * * 1-6 命令” 每周一到周六的上午8点执行命令
  • “ * /n ”:代表每隔多久执行一次 例如:“*/7 * * * *命令” 每隔7分钟执行一遍命令

设置每分钟执行一次

*/1 * * * *   /usr/local/bin/secure_ssh.sh

第一种方式:使用crontab -e设置循环执行脚本
crontab -e,设置每隔1分钟执行一次

*/1 * * * *   /usr/local/bin/secure_ssh.sh

第二种方式:编辑rc.local,将命令写入:

vim /etc/rc.local
*/1 * * * *   /usr/local/bin/secure_ssh.sh

尾声

上面的方法虽然可行的,但是不推荐第一种方式。建议使用第二种方式将命令放入rc.local文件里面,随着服务器的启动命令跟着执行。好了,到此为止就是此篇文章的全部内容了,能看到这的都是帅哥靓妹啊!!!祝在座的各位客官们鼠年大吉,“鼠”不尽的快乐!“鼠”不尽的收获!“鼠”不尽的钞票!“鼠”不尽的笑容!“鼠”不尽的幸福!“鼠”不尽的甜蜜!“鼠”不尽的激情!“鼠”不尽的活力!“鼠”不尽的健康!“鼠”不尽的帅哥!“鼠”不尽的美女!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章