跳转到主要内容

跟踪认证尝试和防止暴力攻击模块

项目描述

License

跟踪认证尝试和防止暴力攻击

本模块记录用户尝试认证Odoo时发出的每个请求。如果认证失败,将针对给定的远程IP增加计数器。在定义的尝试次数后,Odoo将禁止远程IP并忽略新请求。此模块通过隐蔽性实现安全性(https://en.wikipedia.org/wiki/Security_through_obscurity),当用户被禁止时,请求现在被视为攻击。因此,UI将 不会 告诉用户其IP已被禁止,并显示常规消息“错误的登录/密码”。

本模块实现了一个对Web API(http://ip-api.com)的调用,以尝试获取有关远程IP的额外信息。

已知问题/路线图

用于识别远程请求的ID是请求中提供的IP(键‘REMOTE_ADDR’)。根据服务器和/或用户网络配置,用户的识别可能会出错,主要在以下情况下

  • 如果Odoo服务器位于Apache / NGinx代理后面,但没有重定向,则所有请求都将为REMOTE_ADDR键具有值‘127.0.0.1’;

  • 如果某些用户位于同一互联网服务提供商后面,如果某个用户被禁止,则所有其他用户也将被禁止;

配置

安装后,您可以通过更改ir.config_parameter键的值(默认为10)来更改‘auth_brute_force.max_attempt_qty’,该值定义了在用户被禁止之前允许的最大尝试次数。

您还可以为密钥“auth_brute_force.environ_log”添加一个ir.config_parameter值,允许记录特定的请求环境变量。

格式为变量名逗号分隔的列表,例如:REMOTE_ADDR,REMOTE_PORT

或者您可以使用通配符“*”来记录或发现所有变量,大多数变量名取决于WSGI规范和反向代理配置。

用法

管理员用户有权解锁被禁止的IP。

日志记录

该模块在以下三种情况下生成一些警告日志:

  • 远程“127.0.0.1”认证失败。尝试登录:“admin”。尝试次数 1 / 10。

  • 远程“127.0.0.1”认证失败。远程已被禁止。尝试登录:“admin”。

  • 从远程“127.0.0.1”尝试认证。由于远程在10次尝试未成功后已被禁止,请求已被忽略。尝试登录:“admin”。

屏幕截图

尝试列表

/auth_brute_force/static/description/screenshot_attempts_list.png

被禁止IP的详细信息

/auth_brute_force/static/description/screenshot_custom_ban.png Try me on Runbot

有关更多信息,请访问

错误跟踪器

错误在GitHub Issues上跟踪。如果有问题,请检查是否已报告您的问题。如果您是第一个发现它的人,请通过提供详细和受欢迎的反馈来帮助我们解决它此处

致谢

贡献者

维护者

Odoo Community Association

此模块由OCA维护。

OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。

要为此模块做出贡献,请访问http://odoo-community.org

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

本版本没有提供源代码发行版文件。请参阅 生成发行版存档的教程

构建发行版

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面