前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【实用】防暴力破解服务器ssh登入次数

【实用】防暴力破解服务器ssh登入次数

作者头像
释然
发布2022-10-27 19:20:20
1.7K0
发布2022-10-27 19:20:20
举报
文章被收录于专栏:释然IT杂谈释然IT杂谈

感谢广川来稿

近日测试服务器被爆破成功 心情非常的郁闷,

不行,捺不住自己体内的洪荒之力了......哈撒king~

于是乎写出了这个防范措施。防暴力破解服务器ssh登入次数,账号锁定,IP拉黑,日志查看。

一、Centos 7账号锁定教程

1、修改配置文件

代码语言:javascript
复制
vi /etc/pam.d/sshd

# 在文末增加以下内容

代码语言:javascript
复制
Centos 7 
auth required pam_tally2.so deny=3 unlock_time=60 even_deny_root root_unlock_time=60

文件参数说明:

代码语言:javascript
复制
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;

保存退出

解除锁定方法

代码语言:javascript
复制
在服务器端以root用户登录
执行命令:
pam_tally2 -u root -r
或者
pam_tally2 --user 用户名 --reset
清空指定用户的错误登录次数

二、Centos7和Centos8 设置ssh端口、登入次数

修改SSH的端口号

代码语言:javascript
复制
vi /etc/ssh/sshd_config
Port 22  修改为  5795     // 就是把端口22改为5795,去掉前面的#号

限制登入次数

代码语言:javascript
复制
vi /etc/ssh/sshd_config 
MaxAuthTries=6  修改为 MaxAuthTries=3  // 就是把登入6次改为登入3次就断开 ,去掉前面的#号

三、Centos8账号锁定教程

pam_tally2模块在centos8后已淘汰掉,centos8用pam_faillock 模块替换

1、修改配置文件

代码语言:javascript
复制
vi /etc/pam.d/system-auth 
添加如下代码到指定行数,必须按顺序添加 
auth        required      pam_faillock.so even_deny_root preauth silent audit deny=3 unlock_time=300   //even_deny_root这个参数是代表root用户数错3次也会被锁定 
auth        sufficient    pam_unix.so nullok try_first_pass 
auth        [default=die]  pam_faillock.so even_deny_root authfail  audit  deny=3  unlock_time=300    //even_deny_root这个参数是代表root用户数错3次也会被锁定 
account  required  pam_faillock.so
代码语言:javascript
复制
vi /etc/pam.d/password-auth 
添加如下代码到指定行数,必须按顺序添加 
auth        required      pam_faillock.so even_deny_root preauth silent audit deny=3 unlock_time=300   //even_deny_root这个参数是代表root用户数错3次也会被锁定 
auth        sufficient    pam_unix.so nullok try_first_pass 
auth        [default=die]  pam_faillock.so even_deny_root authfail  audit  deny=3  unlock_time=300    //even_deny_root这个参数是代表root用户数错3次也会被锁定 
account  required  pam_faillock.so

查看所有用户的尝试失败登录次数

代码语言:javascript
复制
faillock

主要看faillock命令,显示的valid值,v表示有效,i表示无效。

只查看admin用户

代码语言:javascript
复制
faillock --user admin

解锁一个用户账户

代码语言:javascript
复制
faillock --user 用户名 --reset

解锁所有用户

代码语言:javascript
复制
 faillock --reset

四、防火墙拉黑攻击IP地址

查看登入成功的用户日志:last -f /var/run/utmp 或者 last

查看登入失败的用户日志:last -f /var/log/btmp 或者 lastb

IP 封禁 (这个是我们平时用得最多的)

代码语言:javascript
复制
# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject"  单个IP 
# firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.0/24' reject" IP段
# firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80  protocol=tcp  accept" 单个IP的某个端口

这个是我们用得最多的。封一个IP,和一个端口 reject 拒绝 accept 允许

重新载入以生效

代码语言:javascript
复制
firewall-cmd --reload

查看封禁IP

代码语言:javascript
复制
firewall-cmd --list-rich-rules

使用 last -f /var/log/btmp 查看登入失败的IP 拦截效果,拦截了20w+的密码爆破

查到这些IP后使用IP封禁命令进行封禁

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 释然IT杂谈 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档