1 个稳定版本
1.0.0 | 2021 年 4 月 14 日 |
---|
#13 在 #xmpp
24KB
412 行
xmpp-proxy
xmpp-proxy 是 XMPP 服务器的反向代理,提供 STARTTLS 和 TLS,在纯文本 XMPP 连接上,并且不需要 XML 解析器即可限制 stanza 的大小。
xmpp-proxy 可以监听任意数量的接口/端口,接受任何 STARTTLS 或 直接 TLS c2s 或 s2s 连接,终止 TLS,并将它们连接到一个真实的 XMPP 服务器,限制 stanza 的大小,如配置所示。
安装
cargo安装 xmpp-proxy
- 从 xmpp-proxy 或 xmpp-proxy (github 镜像) 下载静态二进制文件
- 您的首选包管理器
配置
mkdir/etc/xmpp-proxy/ &&cp xmpp-proxy.toml/etc/xmpp-proxy/
- 根据需要编辑
/etc/xmpp-proxy/xmpp-proxy.toml
,文件已用注释清晰地说明 - 将您的 TLS 密钥/证书放入
/etc/xmpp-proxy/
,如果您的密钥包含 "RSA PRIVATE KEY",则将其更改为 "PRIVATE KEY":sed -'s/RSA PRIVATE KEY/PRIVATE KEY/' /etc/xmpp-proxy/le.key
- 提供的 xmpp-proxy.service 中的示例 systemd 单元将其锁定为最低权限。需要正确设置权限:
chown -'systemd-network:' /etc/xmpp-proxy/
- 启动 xmpp-proxy:
用法: xmpp-proxy [/path/to/xmpp-proxy.toml (默认 /etc/xmpp-proxy/xmpp-proxy.toml]
我如何将我的运行中的 Prosody 配置修改为使用这个替代方案?
将这些添加到 modules_enabled
"secure_interfaces";
"net_proxy";
在 prosody-modules 更新之前,使用我的补丁版本的 mod_secure_interfaces.lua,它也适用于 s2s。
添加此配置
-- trust connections coming from these IPs
secure_interfaces = { "127.0.0.1", "::1" }
-- handle PROXY protocol on these ports
proxy_port_mappings = {
[15222] = "c2s",
[15269] = "s2s"
}
-- don't listen on any normal c2s/s2s ports (xmpp-proxy listens on these now)
-- you might need to comment these out further down in your config file if you set them
c2s_ports = {}
legacy_ssl_ports = {}
-- you MUST have at least one s2s_ports defined if you want outgoing S2S to work, don't ask..
s2s_ports = {15269}
将prosody的TLS密钥复制到/etc/xmpp-proxy/le.key
,并将TLS证书复制到/etc/xmpp-proxy/fullchain.cer
,并直接使用提供的xmpp-proxy.toml
配置。
许可证
GNU/AGPLv3 - 详细信息请查看LICENSE.md
依赖项
约11-22MB
约398K SLoC