我有一台运行 Ubuntu 12.04 LTS 的小型服务器。我想在上面设置支持 SSL 的 IRC。看来 ircd-hybrid 最受欢迎。我并不执着于使用它,所以欢迎使用其他选项。但是,我没有看到其他选项。
我已经使用 apt-get 进行了安装。这不是问题。问题是 apt-get 安装版本不启用 SSL。尝试使用 SSL 连接到 SSL 端口 6697,但它不起作用。因此,我必须自己构建它。如果您确实遵循 ircd-hybrid 包的源代码,则配置要求您对其进行编辑并添加“USE_OPENSSL = 1”选项。
由于 hybrid 默认不支持 OpenSSL,所以您必须手动修补才能使其正常工作。
无论如何,我按照说明(我在最后列出了几个说明)安装 ircd-hybrid 没有任何问题。它现在实际上正在运行。但是,我注意到 SSL 不起作用。端口从未被监听。深入挖掘后,我回顾了构建过程并注意到 OpenSSL 未被包含在内。
因此我一直在尝试构建并只是为了澄清,这里是 ./configure 输出:
Compiling ircd-hybrid 7.2.2
Installing into: /usr
Ziplinks ................ yes
**OpenSSL ................. no**
Modules ................. shared
IPv6 support ............ yes
Net I/O implementation .. sigio
EFnet server ............ no (use example.conf)
Halfops support ......... yes
Small network ........... no
G-Line voting ........... yes
我注意到./configure 脚本的输出中有几行似乎所有的加密算法都不可用!
checking for OpenSSL... /usr
checking for OpenSSL 0.9.6 or above... found
checking for RSA_free in -lcrypto... yes
checking for EVP_bf_cfb... no
checking for EVP_cast5_cfb... no
checking for EVP_idea_cfb... no
checking for EVP_rc5_32_12_16_cfb... no
checking for EVP_des_ede3_cfb... no
checking for EVP_des_cfb... no
如果您查看配置脚本,您会发现至少需要启用一个加密库。这只是我的猜测,因为我对此并不完全肯定。似乎 OpenSSL 已禁用 RC5 和其他几个算法。
我已经使用 enable-rc5 和其他标志重建并安装了 OpenSSL,但没有任何效果。
这是在 Ubuntu 12.04 上。有人帮忙吗?我想在我的个人服务器上启用 IRC 上的 SSL。不必是 ircd-hybrid。
谢谢!
编辑 我一直在和找到我上面发布的第一个链接上的解决方案的家伙聊天。他能够使用默认的 OpenSSL 包和修补过的 pircd-hybrid 包在干净的 12.04 安装上成功构建并运行 SSL。我使用的系统最初是使用 10.x 构建的。我想知道升级到 12.04 LTS 是否会在过程中破坏某些东西。例如,他运行 ircd-hybrid 配置会在设置的加密部分产生以下内容:
checking for OpenSSL... /usr
checking for OpenSSL 0.9.6 or above... found
checking for RSA_free in -lcrypto... yes
checking for EVP_bf_cfb... yes
checking for EVP_cast5_cfb... yes
checking for EVP_idea_cfb... no
checking for EVP_rc5_32_12_16_cfb... no
checking for EVP_des_ede3_cfb... yes
checking for EVP_des_cfb... yes
我正在运行最新的 Open SSL:
$ openssl version
OpenSSL 1.0.1 14 Mar 2012
不确定为什么配置脚本没有看到这些密码算法。
编辑2:刚刚在我的 ESXi 机器上安装了一个 VM。全新 32 位安装 12.04 LTS。同样的问题。通过 apt-get 安装正常,但 SSL 有问题不是已启用。尝试了补丁,但它也缺少我上面列出的算法。
答案1
您自己构建这些软件包有什么原因吗?Ubuntu 已经为您预先制作了这些软件包。
apt-get install ircd-hybrid
或者如果你想看看还有哪些其他选择:
apt-cache search ircd
答案2
经过一番折腾,我终于成功了。遗憾的是,我认为我无法提供“如何操作”,但我打算提交错误报告。另外,我的理解不够准确,所以如果我使用了错误的术语,请原谅。
基本上,问题在于ircd-hybrid
和之间不兼容libssl1.0.0
。在 中查找 之类的密码时EVP_bf_cfb
,libssl1.0.0
需要使用EVP_bf_cfb64
等。我做了一些调整,让它与检测到的密码一起编译,但它仍然无法连接到其他服务器。
遗憾的是,虽然libssl0.9.8
Ubuntu 12.04 LTS 中提供了此功能,但libssl-dev
只有该版本才提供此1.0.0
功能。我安装了0.9.8
10.04 LTS 中的软件包(我确信不推荐),但随后出现了ircd-hybrid
与另一个问题相关的各种编译问题。我已修复这些问题,并最终ircd-hybrid
在 64 位 12.04 LTS 上运行正常。
我的猜测是,由于 SSL 在默认情况下未启用ircd-hybrid
,因此当其他事情发生变化并中断时仅有的SSL 构建,它没有被包维护者发现。
正如我所说,我现在将尝试针对 12.04 LTS 提交错误报告,看看是否有任何进展。