Я пытаюсь настроить скрытый сервис Tor в CentOS 7 (с systemd), используя пакет tor
из репозитория EPEL.
Раньше это работало нормально, пока несколько дней назад не перестало работать. Ничто в системе не было перезапущено в это время, хотя автоматические обновления включены через yum-cron, так что возможно что-то обновлено.
Тем не менее, несмотря ни на что, я также видел эту проблему на стандартной установке Fedora Server и на рабочей станции Fedora.
Теперь, когда я пытаюсь запустить службу tor со скрытыми служебными строками в /etc/tor/torrc
, она не запускается.
Я проверял сообщения об ошибках с помощью journalctl -xn
, и они не согласованы - однако основные ошибки выглядят так:
Nov 09 22:05:18 hostname tor[7561]: Nov 09 22:05:18.245 [warn] Directory /var/lib/tor/sshservice/ cannot be read: Permission denied
и иногда:
Nov 09 22:12:33.119 [warn] /var/lib/tor/sshservice/ is not owned by this user (root, 0) but by toranon (997). Perhaps you are running Tor as the wrong user
Я обеспечил следующее относительно всего пути /var/lib/tor
, но безуспешно:
- Каталог принадлежит пользователю / группе
toranon
(по умолчанию для пользователя для пакета EPEL) - Разрешения установлены соответствующим образом (я пробовал 700, 770, 600, 660) для каталога.
- Контексты SELinux установлены соответствующим образом для каталога, и я проверил это с помощью
restorecon
.
Другая информация:
- Если я поменяю владельца каталога на root, я получу то же сообщение "неправильный пользователь", что и раньше, но с обратными именами пользователей.
- Я попытался полностью отключить SELinux и убедился, что служба tor по-прежнему не запускается.
- Скрытый каталог службы уже заполнен файлами закрытых ключей и имен хостов, и они были созданы демоном tor в этой системе. Эта конфигурация ранее полностью работала.
- Если я полностью удаляю строки
HiddenServiceDir
иHiddenServicePort
из конфигурации, Tor запускается, как и ожидалось.
Некоторые потенциально полезные результаты из /etc/tor/torrc
:
# Do not run as client
SocksPort 0 #Run Tor only as a relay and do not create a local SOCKS proxy
SocksPolicy reject *
# Define hidden service for SSH
HiddenServiceDir /var/lib/tor/sshservice/
HiddenServicePort 44674 127.0.0.1:22 #Redirect local SSH port to a nonstandard public port
ls -Z
из /var/lib/tor
:
[root@sagan tor]# ls -Z
-rw-------. toranon toranon system_u:object_r:tor_var_lib_t:s0 cached-certs
-rw-------. toranon toranon system_u:object_r:tor_var_lib_t:s0 cached-microdesc-consensus
-rw-------. toranon toranon unconfined_u:object_r:tor_var_lib_t:s0 cached-microdescs
-rw-------. toranon toranon unconfined_u:object_r:tor_var_lib_t:s0 cached-microdescs.new
-rw-------. toranon toranon unconfined_u:object_r:tor_var_lib_t:s0 lock
drwx------. toranon toranon system_u:object_r:tor_var_lib_t:s0 sshservice
-rw-------. toranon toranon unconfined_u:object_r:tor_var_lib_t:s0 state
Не уверен, что может быть причиной этой проблемы, но я подозреваю, что это связано с точной настройкой systemd. Я экспериментировал с комментированием и удалением некоторых строк в файле systemd tor.service
по умолчанию, но безуспешно.
В настоящее время я пытаюсь запустить tor с помощью systemctl start tor
используя стандартный файл systemd tor.service
поставляемый с CentOS.
Есть идеи? Помощь будет принята с благодарностью.