昨天安装了一个MeTube容器,以后下载喜欢的油管视频方便多了,但是这个开源工具非常简单,没有登录功能,太不安全了。
安装了HTTP Basic Auth,优点是多了一层防护,最明显的缺点有两个,第一,它缺乏防暴力破解机制,应对方法就是下面提到的用Fail2ban防止暴力破解;第二,这个工具是密码明文传输,应对方法是开启ssl证书。

下面我说一下如何利用HTTP Basic Auth给MeTube加把安全锁。
第一,设置HTTP Basic Auth
1,设置用户名和密码,用如下代码在ssh运行一下∶
mkdir -p /www/server/pass && printf "登录名:$(openssl passwd -crypt '这里改成你的密码')\n" > /www/server/pass/metube.conf
2,打开宝塔面板 反向代理 的 “配置文件”,找到 location / 这一块,在内部追加下面两行
auth_basic "Restricted Access";
auth_basic_user_file /www/server/pass/metube.conf;
第二,Nginx Basic Auth防爆破配置
1,建立日志
在ssh端运行下面代码,域名写自己的。
touch /www/wwwlogs/域名.error.log
2,配置正则匹配规则
编辑/etc/fail2ban/filter.d/nginx-basic-auth.conf文件,把原来的代码换成下面的代码。
[Definition]
failregex = ^.*user ".*": password mismatch, client: <HOST>,
^.*user ".*" was not found in ".*", client: <HOST>,
ignoreregex =
3,在宝塔面板中追加 Jail 防护规则
编辑 /etc/fail2ban/jail.local 文件,把下面代码放在最后。
[nginx-basic-auth]
enabled = true
port = http,https
filter = nginx-basic-auth
logpath = /www/wwwlogs/dk.tlmm123.com.error.log
maxretry = 5
findtime = 300
bantime = 86400
上面设置好,最后运行下面代码让上面的配置生效∶
fail2ban-server -x -b -s /www/server/panel/plugin/fail2ban/fail2ban.sock -p /var/run/fail2ban/fail2ban.pid -c /etc/fail2ban
最后验证HTTP Basic Auth拦截规则是否生效,用如下代码∶
fail2ban-client -s /www/server/panel/plugin/fail2ban/fail2ban.sock status nginx-basic-auth

设置完毕,大家可以在浏览器试着输入几次错误密码,上面代码有数字变动,说明我们设置成功。
通过以上设置,没有登录功能的MeTube多了一把安全锁,安全性大大提高了。以后大家遇到这种情况,也可以试试HTTP Basic Auth。