centos7 SSH防暴力破解五种方法_centos 防止被人套密码 ssh

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

不使用root用户登录:

原:root❌0:0:root:/root:/bin/bash
改:root❌0:0:root:/sbin/nologin #不让root登录系统

更改指定用户为超级管理:

原:test❌1002:1002::/home/test:/bin/bash
改:test❌0:0::/home/test:/bin/bash #更改改ID为0,用户变成root身份

测试登录(端口不是22要加端口):ssh test@192.168.1.46:99
本地测试重启直接用户登录:
在这里插入图片描述
4. 编写脚本检查/var/log/secure访问日志文件
思路:通过统计日志文件中的登陆失败的ip,并将达到阈值的ip添加到/etc/hosts.deny来拒绝某个ip的再次访问。
方法一:
使用crontabp实时任务,每分钟执行一次:*/1 * * * * /bin/bash /root/protectssh/protectssh.sh

#!/bin/bash
#protectssh.sh
#Prevent SSH from being hacked
#SSH配置文件所在位置
SSH_config=‘/etc/hosts.deny’
#ssh 日志文件位置
SSH_log=‘/var/log/secure’
#记录尝试登陆超过15次且未登陆成功的ip,以及添加进黑名单的时间日志
Deny_log=‘/var/lib/ssh_shell/ssh_deny.log’
#储存所有ip及访问次数文件
Visit_ip=‘/var/lib/ssh_shell/ssh_visit.txt’
#超过设置下面次数将被添加进黑名单
Visit_number=60
#检查ssh日志文件是否存在
if [ ! -e $SSH_log ]
then
echo -e “\033[41;37m ssh 日志文件不存在 请检查原因 \033[0m”
exit 1
fi

if [ ! -e “$SSH_config.bak” ]
then
cp $SSH_config $SSH_config.bak
if [ ? − e q 0 ] t h e n e c h o " 备份文件成功 " > > ? -eq 0 ] then echo " 备份文件成功" >> ?eq0]thenecho"备份文件成功">>Deny_log
else
echo -e"\033[41;37m ssh备份文件不成功 \033[0m"
exit 2
fi
else
echo " 已有备份文件 " >>$Deny_log
fi
cat $SSH_log |awk ‘/Failed/{print $(NF-3)}’|sort|uniq -c|awk ‘{ print $2"==="$1}’ > V i s i t i p e c h o " − − − − − − − − − Visit_ip echo "--------- Visitipecho"(date +%F_%T)------------" >>$Deny_log

for VI in $(cat V i s i t i p ) d o N u m b e r = Visit_ip) do Number= Visitip)doNumber=(echo $VI |awk -F=== '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲') IP=(echo $VI |awk -F=== ‘{print $1}’)
if [ $Number -gt $Visit_number ]
then
grep I P " IP " IP"SSH_config" >/dev/null
if [ ? − n e 0 ] t h e n e c h o " s s h d : ? -ne 0 ] then echo " sshd: ?ne0]thenecho"sshd:IP:deny" >> S S H c o n f i g e c h o " SSH_config echo " SSHconfigecho"IP " >>$Deny_log
fi
fi
done

方法二:
使用crontabp实时任务,每分钟执行一次:*/1 * * * * /bin/bash /root/Denyhosts/Denyhosts.sh

#!/bin/bash
#Denyhosts SHELL SCRIPT
cat /var/log/secure|awk ‘/Failed/{print $(NF-3)}’|sort|uniq -c|awk ‘{print $2"=" $1;}’ >/root/Denyhosts/Denyhosts.txt
DEFINE=“5”
for i in cat /root/Denyhosts/Denyhosts.txt
do
IP=echo $i|awk -F= '{print $1}'
NUM=echo $i|awk -F= '{print $2}'
if [ $NUM -gt $DEFINE ]
then
ipExists=grep $IP /etc/hosts.deny |grep -v grep |wc -l
if [ i p E x i s t s − l t 1 ] t h e n e c h o " s s h d : ipExists -lt 1 ] then echo "sshd: ipExistslt1]thenecho"sshd:IP" >> /etc/hosts.deny
fi
fi
done

  1. 使用fail2ban
    fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员!
    fail2ban运行机制:简单来说其功能就是防止暴力破解。工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关IP利用iptables加入到dorp(丢弃)列表一定时间。
    fail2ban 官方网址:http://www.fail2ban.org
    文章的主要内容: 1. 安装fail2ban 2. 配置fail2ban 3. fail2ban的常用命令以及详解  4.邮件预警 5.注意事项

安装fail2ban:(这里就不说源码安装,使用yum安装也一样)
安装命令:yum install fail2ban
fail2ban的配置文件路径:/etc/fail2ban
fail2ban安装目录:/usr/share/fail2ban
日志文件:/var/log/fail2ban.log
达到阈值之后的执行的动作的配置文件: action.d/
包含所有的过滤规则:filter.d/
开始运行fail2ban:fail2ban-client start

配置fail2ban并实现防暴力破解 ,想了解更多,到官方文档查看。
配置fail2ban:
编辑配置文件 jail.local 并实现防暴力破解 vim /etc/fail2ban/jail.d/jail.local
输入文件内容:

#defalut这里是设定全局设置,如果下面的监控没有设置就以全局设置的值设置。
[DEFAULT]

用于指定哪些地址ip可以忽略 fail2ban 防御,以空格间隔。

ignoreip = 127.0.0.1/8

客户端主机被禁止的时长(默认单位为秒)

bantime = 3600

过滤的时长(秒)

findtime = 600

匹配到的阈值(次数)

maxretry = 3

[ssh-iptables]

是否开启

enabled = true

过滤规则

filter = sshd

动作

action = iptables[name=SSH, port=ssh, protocol=tcp]

日志文件的路径

logpath = /var/log/secure

匹配到的阈值(次数)

maxretry = 3

注:action设置的时候,port=ssh,如果我们更改了sshd服务的端口号,我能需要在这里设置对应的端口号,否则配置不生效。
执行配置生效:fail2ban-client reload
防暴力破解测试:
在这里插入图片描述
查看当前被禁止登陆的ip: fail2ban-client status ssh-iptables
在这里插入图片描述
fail2ban常用的命令:
启动暂停查看状态:systemctl start/restart/stop/status fail2ban
fail2ban-client使用命令:
start——启动fail2ban server和监狱
reload——重新加载配置文件
stop——暂停fail2ban和监狱
status——查看运行的监控服务数量和列表
set loglevel——设置日志等级,有 CRITICAL, ERROR, WARNING,NOTICE, INFO, DEBUG
get loglevel——获取当前日志的等级
set idle on|off——设置某个监控(监狱)的状态。
set addignoreip ——设置某个监控(监狱)可以忽略的ip
set delignoreip ——删除某个监控(监狱)可以忽略的ip
set banip ——将ip加入 监控(监狱)
set unbanip ——将ip从监控(监狱)移除

fail2ban-regex测试筛选规则设否匹配当前的日志格式:fail2ban-regex /var/log/secure /etc/fail2ban/filter.d/sshd.conf

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
。**

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-jBlgeUlV-1713119180100)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 11
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值