加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux 上Fail2ban阻止SSH暴力攻击 保护你的服务器不被暴力破解

发布时间:2020-12-13 17:55:20 所属栏目:Linux 来源:网络整理
导读:查看尝试登录的IP和次数: #?ubuntu?cat?/var/log/auth.log?|?awk?'/Failed/{print?$(NF-3)}'?|?sort?|?uniq?-c?|?awk?'{print?$2"?=?"$1;}'#?centoscat?/var/log/secure?|?awk?'/Failed/{print?$(NF-3)}'?|?sort?|?uniq?-c?|?awk?'{print?$2"?=?"$1;}' 结果

查看尝试登录的IP和次数:

#?ubuntu?
cat?/var/log/auth.log?|?awk?'/Failed/{print?$(NF-3)}'?|?sort?|?uniq?-c?|?awk?'{print?$2"?=?"$1;}'

#?centos
cat?/var/log/secure?|?awk?'/Failed/{print?$(NF-3)}'?|?sort?|?uniq?-c?|?awk?'{print?$2"?=?"$1;}'

结果如下

95.99.151.150?=?2
96.116.62.121?=?2
96.126.108.130?=?1
96.234.157.43?=?1
96.239.137.66?=?2
96.242.27.57?=?1
96.255.29.134?=?1
96.30.68.34?=?6
96.45.70.192?=?21
96.53.113.134?=?1946
96.57.104.194?=?2
96.57.82.166?=?3
96.64.177.108?=?2
96.66.198.178?=?10
96.67.205.235?=?7
96.68.174.209?=?8
96.68.99.234?=?2
96.70.240.38?=?1
96.70.80.177?=?4
96.70.94.73?=?2

介绍:

fail2ban是一款实用软件,可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作。

功能和特性编辑

1、支持大量服务。如sshd,apache,qmail,proftpd,sasl等等

2、支持多种动作。如iptables,tcp-wrapper,shorewall(iptables第三方工具),mail notifications(邮件通知)等等。

3、在logpath选项中支持通配符

4、需要Gamin支持(注:Gamin是用于监视文件和目录是否更改的服务工具)

5、需要安装python,iptables,shorewall,Gamin。如果想要发邮件,那必需安装postfix或sendmail

官网:

http://www.fail2ban.org/

安装:

ubuntu

sudo?apt-get?update
sudo?apt-get?upgrade
sudo?apt-get?install?fail2ban

centos

yum?-y?install?epel-release
yum?-y?install?fail2ban

文件结构

/etc/fail2ban? ? ? ? ? ? ? ? ? ## fail2ban 服务配置目录

/etc/fail2ban/action.d? ? ?## iptables 、mail 等动作文件目录

/etc/fail2ban/filter.d? ? ? ?## 条件匹配文件目录,过滤日志关键内容

/etc/fail2ban/jail.conf? ? ?## fail2ban 防护配置文件

/etc/fail2ban/fail2ban.conf? ?## fail2ban 配置文件,定义日志级别、日志、sock 文件位置等

配置

1.打开配置文件

vim?/etc/fail2ban/jail.conf

配置信息

[DEFAULT]
#?忽略的IP列表,不受设置限制
ignoreip?=?127.0.0.1/8?

#?被封IP禁止访问的时间,单位是秒
bantime?=?86400

#?检测时间,在此时间内超过规定的次数会激活fail2ban,单位是秒?
findtime?=?300

#?允许错误登录的最大次数
maxretry?=?3

#?日志修改检测机制(gamin、polling和auto这三种)
backend?=?auto?

#?定义日志级别,默认
loglevel?=?3?

#?定义?fail2ban?日志文件
logtarget?=?/var/log/fail2ban.log?

#?sock?文件存放位置,默认
socket?=?/var/run/fail2ban/fail2ban.sock?

#?pid?文件存放位置,默认
pidfile?=?/var/run/fail2ban/fail2ban.pid?

#?邮件通知参数
sendmail-whois[name=SSH,?dest=you@example.com,?sender=fail2ban@example.com,?sendername="Fail2Ban"]
??????????????????????????##?收件人地址???????????##?发件人地址?

[sshd]
#?激活
enabled?=?true
#?规律规则名,对应filter.d目录下的sshd.conf
filter?=?sshd?
banaction?=?firewallcmd-new
#?检测的系统的登陆日志文件。这里要写sshd服务日志文件
logpath?=?/var/log/secure?
#?禁止用户IP访问主机1小时
bantime?=?3600?
#?在5分钟内内出现规定次数就开始工作
findtime?=?300?
#?3次密码验证失败
maxretry?=?3?

[sshd-ddos]
enabled?=?true
port?=?8888

fail2ban启动

>>??service?fail2ban?start??#?启动fail2ban服务
?*?Starting?authentication?failure?monitor?fail2ban??[?OK?]?
>>?fail2ban-client?status???#?查看fail2ban服务
Status
|-?Number?of?jail:	1
`-?Jail?list:		ssh
>>?service?fail2ban?restart?#?重启

启动fail2ban并设置开机启动:

centos

systemctl?enable?fail2ban
systemctl?start?fail2ban

ubuntu


查看日志

tail?-100?/var/log/fail2ban.log??#?查看最近100条记录

查看SSH服务监护状态,能看到当前被禁IP。

>>?fail2ban-client?status?ssh

|-?filter
|??|-?File?list:	/var/log/auth.log?
|??|-?Currently?failed:	56
|??`-?Total?failed:	6307
`-?action
???|-?Currently?banned:	0
???|??`-?IP?list:	
???`-?Total?banned:	0

在SSH监护服务白名单中添加/删除IP:

fail2ban-client?set?sshd?addignoreip?1.2.3.4
fail2ban-client?set?sshd?delignoreip?1.2.3.4


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读