网站首页 > 技术文章 正文
介绍:
Fail2Ban 是一个用于禁止多次认证错误的恶意登录的工具。通过扫描日志文件(例如 /var/log/auth.log),该工具可以识别并禁止过多失败登录尝试的 IP 地址。它通过更新系统的防火墙规则来实现这一功能,拒绝来自这些 IP 地址的新连接,尽管 Fail2Ban 可以降低错误认证尝试的频率,但它不能完全消除由弱认证带来的风险,建议设置仅使用两因素或公钥/私钥认证机制来更进一步保障安全。
环境要求:
- Python 版本 >= 3.5 或者 PyPy3
- python3 --version pypy3 --version
import setuptools
import distutils未报错即证明安装成功
安装方式:
# Debian or Ubuntu
sudo apt-get install python3-setuptools python3-distutils
# CentOS or RHEL
sudo yum install python3-setuptools - (注:一般情况下,在 CentOS 或 RHEL 系统中,distutils 通常已经在安装 Python 的时候自动安装了)
- (可选)pyinotify >= 0.8.3,可能需要:
- Linux 版本 >= 2.6.13
- (可选)systemd >= 204 并与 python 绑定:
- python-systemd 包
- (可选)dnspython
部署方法:
第一步:下载源代码
- 可以直接下载 tar 文件,然后解压:
- tar xvfj fail2ban-master.tar.bz2 cd fail2ban-master
git clone https://github.com/fail2ban/fail2ban.git
cd fail2ban第二步:运行安装脚本
在下载源代码的目录下,执行以下命令进行安装:
sudo python setup.py install这会将 Fail2Ban 安装到 python 的库目录中,将可执行脚本放置到 /usr/bin,将配置文件放置到 /etc/fail2ban。
第三步:检查 Fail2Ban 是否正确安装
fail2ban-client -h可以通过以下命令来查看安装的 Fail2Ban 的版本:
fail2ban-client version第四步:将 Fail2ban 设置为自动启动服务
将适合你的 Linux 发行版的脚本从 files 目录复制到 /etc/init.d。
例如,在 Debian 系统中:
cp files/debian-initd /etc/init.d/fail2ban
update-rc.d fail2ban defaults
service fail2ban start第五步:进行具体配置
可通过fail2ban-client -h来查看具体的配置教程
举例:配置 Fail2Ban 使得对10分钟内登录失败次数达到 3 次的 IP 进行永久封锁
- 创建 jail。这里将 jail 命名为 myjail,并使用 polling 作为后端:
- fail2ban-client add myjail polling
fail2ban-client set myjail addlogpath /var/log/auth.logfail2ban-client set myjail addfailregex '^Failed password for .* from <HOST>'fail2ban-client set myjail bantime -1fail2ban-client set myjail maxretry 3fail2ban-client set myjail findtime 600fail2ban-client start myjail完成以上步骤后,Fail2Ban 将开始监视 /var/log/auth.log 文件,如果在10分钟内有任何 IP 地址登录失败3次,那么该 IP 地址将被永久封禁。
相关地址:
GitHub地址:https://github.com/fail2ban/fail2ban
猜你喜欢
- 2024-10-14 Ubuntu19.10系统的软件安装与卸载命令
- 2024-10-14 VMware下安装VMware tools,安装文件没有出现问题的解决
- 2024-10-14 大白话 linux 教程-09-安装和卸载软件包
- 2024-10-14 ubuntu下安装ssh(ubuntu下安装windows10)
- 2024-10-14 蓝易云 - Ubutun开机黑屏解决方法
- 2024-10-14 银河麒麟系统密码忘记了,修改密码和微信安装方法
- 2024-10-14 ubuntu离线apt-get更新源(ubuntu 离线升级)
- 2024-10-14 树莓派安装opencv3.4.0遇到的坑(树莓派安装opencv完整过程)
- 2024-10-14 linux 系统 没有 ifconfig 命令,提示: ifconfig: command not found
- 2024-10-14 go get 命令一直下载不了源站的包解决方案
- 11-22西数硬盘低级格式化工具(西部硬盘格式化)
- 11-22组装电脑如何选配置(组装电脑怎样选配置)
- 11-22服务器ip地址在哪里看(服务器ip地址在哪里看 固定IP)
- 11-22如何关掉防火墙(电脑如何关闭防火墙)
- 11-22w8系统不激活会怎么样(win8.1不激活能用多久)
- 11-22宏基笔记本哪个系列好(宏基笔记本值得入手吗)
- 11-22笔记本cpu性能排行榜天梯图(笔记本cpu排行天梯图知乎)
- 11-22windows xp怎么升级到windows7
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (77)
- vector线程安全吗 (73)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)
