我是darkness.su的XMPP服务器的运营商。服务器运行在Centos 6上。
我安装了TOR,并configuration它提供了一个隐藏的服务访问服务器。它一开始工作正常,但自从几个月前的更新,它开始给我这些错误:
799 May 25 14:19:37.060 [warn] Permissions on directory /var/lib/tor/hidden_service are too permissive. 800 May 25 14:19:37.060 [warn] Failed to parse/validate config: Failed to configure rendezvous options. See logs for details. 801 May 25 14:19:37.060 [err] Reading config failed--see warnings above.
我试图检查日志,但我找不到他们,设置一个似乎并不工作。我试图删除TOR并擦除所有的文件夹,然后重新安装它。
我从TOR Project的仓库通过yum进行安装。
在隐藏的服务目录(由TOR拥有)上使用chmod 700:
Jul 24 21:39:05.573 [warn] Directory /var/lib/tor/hidden_service/ cannot be read: Permission denied Jul 24 21:39:05.573 [warn] Failed to parse/validate config: Failed to configure rendezvous options. See logs for details. Jul 24 21:39:05.573 [err] Reading config failed--see warnings above
将目录所有者更改为root后:
Jul 24 22:11:36.236 [warn] /var/lib/tor/hidden_service/ is not owned by this user (_tor, 496) but by root (0). Perhaps you are running Tor as the wrong user? Jul 24 22:11:36.236 [warn] Failed to parse/validate config: Failed to configure rendezvous options. See logs for details. Jul 24 22:11:36.236 [err] Reading config failed--see warnings above.
你需要检查三件事情:
文件所有权应该是正确的。
如果你从torproject.org使用Tor,这应该是_tor 。 如果你使用EPEL或Fedora的Tor,应该是toranon 。
chown -R _tor:_tor /var/lib/tor
要么
chown -R toranon:toranon /var/lib/tor
权限应该是正确的。
隐藏的服务目录只能由Tor用户读取。
find /var/lib/tor/hidden_service -type d | xargs chmod u+rwx,go= find /var/lib/tor/hidden_service -type f | xargs chmod u+rw,go=
SELinux上下文必须正确设置。 在最近的RHEL / CentOS发行版中,Tor对其应用了SELinux策略。
修复损坏的SELinux标签:
restorecon -r -v /var/lib/tor
您的问题可能与SELinux。 不,我不打算说permissive (我讨厌默认的答案)。 它与子目录和init.d脚本执行的上下文(我认为)有关。 你可以通过创build一个真正的systemd入口来解决这个问题,而不是100%的确定。
我有这个问题,我select了简单的解决scheme,因为我只有一个隐藏的服务。 不知道这是否会导致与倍数问题(我怀疑它可能)。 或者,您可以花时间debugging上下文问题。 这将是最好的解决scheme,但是如果你只有一个服务,你可以:
更改:
/var/lib/tor/hidden_service/
至:
/var/lib/tor/
并做好。