几天来,我一直在经历 oidentd 的这个问题,但似乎还没能找到解决办法。每次我想让 oidentd 在不同的服务器上工作时,它似乎总会让我头疼。
我必须提到我已经使用 rpm 包(更确切地说是 oidentd-2.0.8-8.el6.i686)安装了 oidentd,因为yum install oidentd
出于某些未知原因直接输入不起作用。我想使用它来让服务器上的 ZNC 使用每个用户名的标识来回复标识请求。
最终安装完成后,我完成了配置和其他工作(与我对其他服务器所做的配置完全相同,看起来运行良好):
$ nano /etc/oidentd.conf
更改为:
default {
default {
allow spoof
deny spoof_all
deny spoof_privport
allow random_numeric
allow numeric
allow hide
}
}
user root {
default {
force reply "UNKNOWN"
}
}
使用源码包安装了 ZNC 1.0。我创建了一个名为 的用户znc
,然后从中运行 ZNC。然后我转到我的客户端并启用了模块identfile
。将每个用户配置的欺骗文件设置为~/.oidentd.conf
并将格式设置为global { reply "%ident%" }
。确保用户对~/.oidentd.conf
文件具有 chmod 访问权限。一切都很完美,就像在其他服务器上配置的那样。
一切都很顺利,没有错误,*identfile 甚至告诉我格式会扩展为为什么,我很高兴和兴奋地看到一切都没有出错。
直到我重新连接到服务器。
它给出了一个 ident 响应(表明 oidentd 正在工作?)但问题是它总是使用我运行 ZNC 的用户名回复(即znc
)
这里有一个小输出,可以使一切都清楚:
[msg: *identfile]: getfile
(*identfile) File is set to: ~/.oidentd.conf
[msg: *identfile]: getformat
(*identfile) Format is set to: global { reply "%ident%" }
(*identfile) Format would be expanded to: global { reply "Tarmac" }
Please wait while we process your connection.
*** Checking Ident
*** Got Ident response
然后我对我的昵称进行了 WHOIS 查询:
WHOIS Tarmac
[whois: Tarmac] (registered nick)
name: bri
address: [email protected]
我尝试重新启动 oidentd 和 ZNCn次,但无结果。仍是同样的回复。
我真的不知道这里出了什么问题,但看起来要么是 ZNC 有问题,要么是 oidentd 有问题。到目前为止,我唯一的怀疑是 oidentd 可能没有正常工作,或者 *identfile 模块没有正确地将格式写入欺骗文件。
我现在很困惑,所以任何关于解决这个问题的建议我都非常感谢。谢谢!
编辑:另一个提示,他们似乎oidentd
从软件包中删除了这些内容?我不知道为什么……如果我安装 rpm,linux 内核会那么重要吗?我尝试过不同的 rpm,但似乎都没有结果……
编辑2:我尝试从源代码安装 oidentd。安装顺利,没有任何问题。
我尝试禁用 *identfile,但我认为这是问题所在,并进行了编辑/home/znc/.oidentd.conf
,global reply { "testident" }
但它仍然回复,znc
除非我将其添加到/etc/oidentd.conf
:
user "znc" {
default {
force reply "testident"
}
}
因此,我基本上进行了编辑,/etc/oidentd.conf
以强制使用用户的特定标识进行回复znc
...它似乎有效,但是当我转到每个用户的配置并尝试同样的事情时,它却不起作用。我甚至不知道……!
似乎有问题阅读每个用户的配置...但不确定是什么?我已将 chmodes 和其他内容设置为正确的设置,但它仍无法正常工作。
再次感谢。
答案1
看起来我不得不删除它/home/znc/.oidentd.conf
并让它自己生成一个新的...我甚至不知道这是如何解决问题的,因为我之前尝试过同样的事情并~/.oidentd.conf
在安装 ZNC 后让它自己生成,但是...我很高兴它现在终于可以工作了哈哈!
答案2
我认为你在进行更改后没有重新启动 oidentd /etc/oidentd.conf
,当你重新安装 oidentd 时,它会重新启动,因此它开始工作,通过重新启动你使用 /etc/init.d/oidentd restart
,如果你使用的是 ipv6,你需要oidentd -a ::
使用 root 访问权限