首页 > 其他分享 >fail2ban 防ssh爆破或攻击

fail2ban 防ssh爆破或攻击

时间:2022-12-01 16:48:05浏览次数:46  
标签:sshd 爆破 filter fail2ban conf action local ssh

目的:防止ssh爆破

fail2ban

> Fail2ban是一个根据系统日志动态调整防火墙规则的安全工具,它具有响应迅速、使用方便的特性。  

0x00 环境说明

centos7.9

0x01 安装

yum -y install epel-release
yum install -y fail2ban-firewalld #centos7以上默认是firewall防火墙,如果系统是iptables防火墙 yum install -y fail2ban

0x02 结构

配置文件位置:/etc/fail2ban/fail2ban.conf

jail配置文件:jail.conf 一般拷贝一份.local

cp jail.conf jail.local
#因为.local可覆盖.conf配置,因此无需修改.conf 直接更改.local即可

自定义过滤规则目录:/etc/fail2ban/filter.d

自定义动作配置目录:/etc/fail2ban/action.d

0x03 jail.local配置

vi /etc/fail2ban/jail.local
#默认配置
[DEFAULT]
ignoreip = 127.0.0.1/8
bantime  = 86400
findtime = 600
maxretry = 5
#这里banaction必须用firewallcmd-ipset,这是fiewalll支持的关键,如果是用Iptables请不要这样填写
banaction = firewallcmd-ipset
action = %(action_mwl)s
ignoreip:IP白名单,白名单中的IP不会屏蔽,可填写多个以(,)分隔
 bantime:屏蔽时间,单位为秒(s)  findtime:时间范围  maxretry:最大次数  banaction:屏蔽IP所使用的方法,上面使用firewalld屏蔽端口

 

# 默认配置
[DEFAULT]
# 被ban时间
bantime  = 15m
# 检索时间
findtime  = 10m
# 最大尝试数,即失败5次就被ban15分钟
maxretry = 5
maxmatches = %(maxretry)s
# 后端服务依赖systemd
backend = systemd
# 日志警告信息可以使用DNS记录访问主机地址
usedns = warn
# 日志编码使用utf-8
logencoding = utf-8
# 启用监管
enabled = ture
# 默认为普通模式
mode = normal
# 过滤模块
filter = %(__name__)s[mode=%(mode)s]
# 防火墙调用firewallcmd,默认为iptables
banaction = firewallcmd-ipset[actiontype=<multiport>]
banaction_allports = firewallcmd-ipset[actiontype=<allports>]

# 管理SSHD
[sshd]
enabled = true
filter  = sshd
port    = 22
logpath = /var/log/secure #%(sshd_log)s 也可以

另一种简单设置:

enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
bantime = 180
findtime = 180
maxretry = 3
[sshd]:名称,可以随便填写
 filter:规则名称,必须填写位于filter.d目录里面的规则,sshd是fail2ban内置规则

 port:对应的端口

 action:采取的行动

 logpath:需要监视的日志路径
 

重启fail2ban

systemctl restart fail2ban.service

查看状态

fail2ban-client status sshd
#此时的sshd是jail.loal中设置的规则项
#手动ban掉指定IP
fail2ban-client set 规则项 banip x.x.x.x
fail2ban-client set 规则项 unbanip x.x.x.x
fail2ban-client set 规则项 delignoreip x.x.x.x

利用ssh 故意输错密码

 

 

 

 0x04 常用配置

防护Wordpress

# 在指定目录下建立wordpress配置文件,指定监控wordpress的访问地址
vi /etc/fail2ban/filter.d/wordpress.conf

[Definition]
failregex = ^ -.* /wp-login.php.* HTTP/1\.."
ignoreregex =
# 在jail.conf中加入如下配置,让fail2ban监视指定日志文件,根据日志记录进行拦截
[wordpress]
enabled = true
port = http,https
filter = wordpress
action = %(action_mwl)s
maxretry = 20
findtime = 60
bantime = 3600
logpath = /usr/local/nginx/logs/access.log

防止半连接攻击

# 需要先新建一个nginx日志匹配规则
vi /etc/fail2ban/filter.d/nginx-cc.conf
#填写如下内容 新建filter.d下的规则
[Definition]
failregex =  -.*- .*HTTP/1.* .* .*$
ignoreregex =
# 加入如下配置
[nginx-cc]
enabled = true
port = http,https
filter = nginx-cc
action = %(action_mwl)s
maxretry = 20
findtime = 60
bantime = 3600
logpath = /usr/local/nginx/logs/access.log

参考文章:https://www.cnblogs.com/ipyanthony/p/9336142.html

标签:sshd,爆破,filter,fail2ban,conf,action,local,ssh
From: https://www.cnblogs.com/DevilCisco/p/16941847.html

相关文章

  • linux ssh安全设置
    描述强制用户不重用最近使用的密码,降低密码猜测攻击风险检查提示--加固建议在/etc/pam.d/password-auth和/etc/pam.d/system-auth中passwordsufficientpam_unix.so这行......
  • 如何让 vscode remote-ssh 连接上 virtualbox ubuntu?
    首先第一部分:让宿主机win10和虚拟机ubuntu能互相ping通,且虚拟机能够访问互联网参考教程1:https://amit-dhawan.medium.com/ping-virtual-box-guest-from-windows-host-361d......
  • 开启linux的网络服务, FTP、SSH和NFS服务
    在使用linux中开发的时候,我们可以选择启用一些网络服务方便我们进行开发,加快开发的进度。 现在很多用linux进行开发的工程师,他们大多都是在windows系统上安装虚拟机,然后在......
  • SSH 命令的三种代理功能(-L/-R/-D)
    日常开发中,数据库没有对外授权,只对特定服务器(服务器A,B,C)进行了授权,因此只能通过服务器A,B,C作为跳板访问数据库;但是通过在服务器A/B/C上进行端口映射,就可以变相实现外部......
  • win10 git报错:Unable to negotiate with port: no matching host key type found. The
    现象已经生成id_rsa的密钥,并且在git上进行了配置。但是用gitclone失败。报错:Unabletonegotiatewithport:nomatchinghostkeytypefound.Theiroffer:ssh-rsa。......
  • eclipse搭建ssh后台
    SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题。下面我介绍一下SSH框架搭建的全过程。 第一步:准备工作。  下载好eclipse,Struts2,Spring,......
  • mac使用ssh连接linux(ubuntu)GUI图形界面
    mac使用ssh连接linux(ubuntu)GUI图形界面1.linux服务端1.首先需要在linux服务端打开X11转发以ubuntu为例编辑/etc/ssh/sshd_config配置文件命令vim/etc/ssh/sshd_c......
  • centos7 升级 openssh (用来避坑)
    是的,踩坑了,导致服务器远程登录不上去,最后只能想其他办法了。所以有必要记下来具体的操作。环境centos7.9,自带的openssh为7.4,准备升级到7.9p1.编译openssh先编......
  • Git SSH密钥删除与创建
    1、首页:查看本地是否有.ssh文件找到GitBash打开后运行cd~/.ssh查看是否有该文件如果本地有ssh密钥的话会有id_rsa、id_rsa.pub、known_hosts等文件。如果没有的话运......
  • openssh快速安装(win10)
    背景不时会有安装openssh的需求。故简要记录下,以做备忘。OSwindows10LSTC方法方法1-自动安装如果目标机器能上网,可以自动安装:通过搜索,"添加可选功能“,选择openssh服......