Transmission3.0 Web Control经常性报403: Forbidden-Too many unsuccessful login attempts. Please restart transmission-daemon.解决方法

书接上文,因为我图个方便,将Transmission的前端Web面板放在了公网通过域名访问。

但是很奇怪的问题来了,在我使用了3.0版本的Transmission后,前端面板经常性403: Forbidden-Too many unsuccessful login attempts. Please restart transmission-daemon.

在翻阅了Transmission3.0的更新日志后发现作者在3.0中加入了RPC登录尝试次数上限的设定,但默认的次数为100次,一般来说是不会被触发的。后来通过查阅Nginx的响应日志后发现是公网里横行的网站目录扫描器造成的大量认证失败。

那么知道问题所在解决起来就很容易了,Nginx本身是带有个auth_basic参数的,通过设定此参数即可在Nginx层面上增加一层认证,这层认证可以防止扫描器造成的大量认证失败。

首先通过openssl对密码进行加密

cd /etc/nginx/conf.d
指定用户名
echo -n "test:" > passwd
指定密码  
openssl passwd abc123456 >> passwd

然后在Nginx配置文件的server段增加两行设置

auth_basic "请进行登录认证";      ##输入用户名密码提示框
auth_basic_user_file /etc/nginx/conf.d/passwd;  ##配置用户名密码验证文件路径

2022/3/18补充

作者似乎已在2020年11月15日的主线合并中增加了两个设置项以修复此问题,根据commit cfce6e2 所增加的代码内容,现在可以尝试在setting.json中添加以下配置:

{
"anti-brute-force-threshold":100,
"anti-brute-force-enabled":true,
}
  • anti-brute-force-threshold为登录失败次数,默认值为100,可以修改为其他数值。
  • anti-brute-force-enabled 为是否开启暴力破解防护,默认值为开启true,将值设置为false来关闭。

2021/8/31补充

看起来这是个历史遗留性问题,设计并提交这个功能的人是在2017年提交的PR,而后面有另一位提出增加设置项的开发者与Transmission主开发者意见不合导致RPC登录限制功能目前是被主开发者写死在Transmission的底层的,无法通过setting.json进行修改

此问题现在是处于被搁置的状态,主开发者究竟什么时候才会补全功能我就不得而知了。

可参考的PR及issue记录

参考资料

© 版权声明
THE END
喜欢就支持一下吧
点赞13赞赏 分享
评论 共12条
头像
说点什么?
提交
头像

昵称

取消
昵称表情代码图片
    • Rain的头像-Rain's BlogRain作者0
    • Rain的头像-Rain's BlogRain作者1
    • Rain的头像-Rain's BlogRain作者0
    • Rain的头像-Rain's BlogRain作者0