218  
查询码:00000224
Linux服务器---Ip过滤器fail2ban
作者: 赵朴方 于 2021年04月23日 发布在分类 / 人防组 / 人防后端 下,并于 2021年04月23日 编辑
fail2ban linux

Linux服务器新增IP过滤器


背景:2021/4/23 下午 公司多台服务器 CPU突增至100%,大概率是挖矿进程占用CPU进程。


病毒排查:

解决步骤:

第一步:使用top命令查看当前进程占用情况(目的:快速定位高占CPU的进程)


top

第二步:先停止对应恶意PID进程,为服务器CPU降压(注:这里不推荐直接删除进程,因为挖矿往往存在定时任务,删除后还会自动生成,但停止恶意进程会使其陷入一个执行的空窗期,为我们的清理排查赢得时间)

kill stop  888(进程Id)

第三步:查看定时任务(目的:挖矿进程常有写入定时任务的习惯,所以从定时任务中去定位挖矿文件往往效率较高)

crontab -l

粘贴图片


发现可疑定时任务

rm -rf /root/.cache/upd  删除定时任务指向的文件

crontab -e  编辑删除定时任务


发现在定时任务指向目录下有可疑文件

粘贴图片


分析后该病毒为挖矿病毒,通过占用Cpu为其他服务器提供算力,开启定时任务需要root权限,之前服务器密码设置简单已更改。


上热菜


Fail2Ban 其实最重要的就是如何根据日志制定有效的监狱规则,看过站点日志都知道,站 点经常收到很多返回码是 404 的请求,但是大多数目录和文件不存在,这些看似“正常”的无效访问,如果数量再大一些频率再高一些会影响服务器带宽和流量的,Fail2Ban通过我们配置的监狱规则文件筛选请求的Ip地址,进行封禁


Fail2Ban

安装

yum install fail2ban -y

yum install fail2ban -y yum install fail2ban-firewalld -y

配置

vi  /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 

# 动作 port自定义83 

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

# 日志文件的路径 

logpath = /var/log/secure 

# 匹配到的阈值(次数) 

maxretry = 3

启动服务

systemctl start fail2ban .service

开机自启

systemctl enable fail2ban .service

查看被封禁的Ip

fail2ban-client status ssh-iptables


也可以在宝塔面板上直接配置

粘贴图片


搞定收工,点赞关注不迷路哈哈哈哈哈哈~嗝





 推荐知识

 历史版本

修改日期 修改人 备注
2021-04-23 16:46:57[当前版本] 赵朴方 创建版本

 附件

附件类型

PNGPNG

知识分享平台 -V 4.8.7 -wcp