在Centos上运行TOR 6

我是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. 

你需要检查三件事情:

  1. 文件所有权应该是正确的。

    如果你从torproject.org使用Tor,这应该是_tor 。 如果你使用EPEL或Fedora的Tor,应该是toranon

     chown -R _tor:_tor /var/lib/tor 

    要么

     chown -R toranon:toranon /var/lib/tor 
  2. 权限应该是正确的。

    隐藏的服务目录只能由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= 
  3. 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/ 

并做好。