Доступ по SSH за NAT через TOR: различия между версиями
Дым (обсуждение | вклад) |
|||
Строка 45: | Строка 45: | ||
Socks5ProxyPassword password | Socks5ProxyPassword password | ||
</source> | </source> | ||
{{Внимание|Многое зависит от суровости вышестоящего прокси. К примеру, описанный трюк не срабатывает из школ через прокси для СЗО — РТК плотно забаррикадировались, аж опция <code>FascistFirewall</code> не выручает.}} | {{Внимание|Многое зависит от суровости вышестоящего прокси. К примеру, описанный трюк <strong>не всегда</strong> срабатывает из школ через прокси для СЗО — РТК плотно забаррикадировались, аж опция <code>FascistFirewall</code> порой не выручает.}} | ||
{{Примечание|Даже если всё получится, такого рода доступ всё же крайне медлителен. Порой выручает туннелирование напрямую через ssh или даже httptunnel — но тоже без гарантий.}} | {{Примечание|Даже если всё получится, такого рода доступ всё же крайне медлителен. Порой выручает туннелирование напрямую через ssh или даже httptunnel — но тоже без гарантий.}} | ||
{{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} | {{Category navigation|title=Системному администратору|category=Admin|sortkey={{SUBPAGENAME}}}} |
Версия от 09:54, 8 октября 2020
На сервере
- В /etc/openssh/sshd_config изменить порт на непривилегированный, иначе TOR не запустится непривилегированным же пользователем. Например:
Port 2222
- Cоздать каталог для скрытого сервиса SSH, где будут лежать файлы с именем хоста и с ключами — своими и авторизованных клиентов:
# install -m 700 -o _tor -g _tor -d /var/lib/tor/ssh
- В файле настроек TOR (по умолчанию — /etc/tor/torrc, но можно переложить и переименовать):
- закомментировать опции
BridgeRelay
,DisableNetwork
,NewCircuitPeriod
иSandbox
— если не уже, отсутствие же таковых игнорировать; - добавить опции:
ClientOnly 1 Schedulers KISTLite HiddenServiceDir /var/lib/tor/ssh # порядок этой и cледующей именно таков: не менять. HiddenServicePort 2222 127.0.0.1:2222 # Запросы к скрытому порту 2222 слать на локальный 2222.
- закомментировать опции
- Перезапустить оба сервиса:
# systemctl restart sshd tor
- Получить имя хоста в сети TOR:
# cat /var/lib/tor/ssh/hostname имя_длиной_в_56_буквоцифр.onion
На клиенте
- Запустить хотя бы минимально настроенный TOR.
- Добавить в ~/.ssh/config секцию:
Host *.onion ProxyCommand nc -x localhost:9050 -X 5 %h %p VerifyHostKeyDNS no Port 2222
- Пробовать подключиться:
$ ssh username@имя_длиной_в_56_буквоцифр.onion
Штурмуем преграды
Если узел не только за NAT, а ещё и за прокси, запуск на нём TOR через proxychains не позволит достукиваться до него снаружи. Вместо этого следует добавить в настройки TOR'а одну (или все) из опций, позволяющих выход в мир через такой вышестоящий прокси:
HTTPProxy host[:port] # На эту ругается: дескать, устарела и из новых версий её уберут.
HTTPSProxy host[:port]
Socks4Proxy host[:port]
Socks5Proxy host[:port]
Если прокси с аутентификацией, понадобятся ещё и эти:
HTTPSProxyAuthenticator username:password
HTTPProxyAuthenticator username:password
Socks5ProxyUsername username
Socks5ProxyPassword password