针对 X-UI 的安全建议
昨天看了个视频,发现这个问题比较严重:人们对 X-UI 的使用方式通常是 http://IP ,HTTP 是不加密的,传输内容一览无余,中间人可以直接看到你的对称密码(可用来离线解密)、非对称私钥(可用来中间人攻击)等。
所以对于配置,各个 X-UI 面板应默认关闭外网访问,并引导用户使用 SSH 转发端口。
例如,所有的 x-ui 面板
LINK (https://search.censys.io/search?resource=hosts&sort=RELEVANCE&per_page=25&virtual_hosts=EXCLUDE&q=services.banner_hex%3D%22485454502f312e3120323030204f4b0d0a436f6e74656e742d456e636f64696e673a20677a69700d0a436f6e74656e742d547970653a20746578742f68746d6c3b20636861727365743d7574662d380d0a566172793a204163636570742d456e636f64696e670d0a446174653a20203c52454441435445443e0d0a5472616e736665722d456e636f64696e673a206368756e6b65640d0a%22)
例如,所有的 Marzban 节点
LINK (https://search.censys.io/search?q=services.tls.certificates.leaf_data.subject_dn%3D%22CN%3DGozargah%22&resource=hosts)
例如,所有在特定主机上使用 Marzban 面板基础配置的 Reality 服务器
LINK (https://search.censys.io/search?resource=hosts&sort=RELEVANCE&per_page=25&virtual_hosts=EXCLUDE&q=services.tls.certificate.names%3Ddiscordapp.com+and+autonomous_system.name%3D%60AEZA-AS%60)
这难道不是一个次要特征,可以让人识别出该 IP 地址被用作代理服务器吗?
这完全可以直接进行过滤。
这只是一些简单的例子,如果稍微努力一下,我还能找到成千上万个 IP 地址,它们被用作机场。
下面是解决方案,先连接上你的 SSH
1、将本地 XX 端口转发到你的 xui 端口,并输入 SSH 密码完成转发
ssh -fNT -L 0.0.0.0:转发端口:localhost:xui端口 -p ssh端口 localhost
2、用 iptables 禁用外网访问你的 xui 端口,并放行转发端口
# 允许外网访问 转发端口 sudo iptables -A INPUT -p tcp --dport 转发端口 -j ACCEPT # 禁止外网访问 xui端口 sudo iptables -A INPUT -p tcp --dport xui端口 -j DROP # 允许本地访问 xui端口 sudo iptables -I INPUT -p tcp -s 127.0.0.1 --dport xui端口 -j ACCEPT
3、保存规则(永久生效)
# Ubuntu/Debian sudo iptables-save | sudo tee /etc/iptables/rules.v4 # CentOS/RHEL sudo iptables-save | sudo tee /etc/sysconfig/iptables
4、验证规则
sudo iptables -L INPUT -v -n