Tor для людей: ssh-доступ до машини за шлюзом
Окрім можливости виходити в мережу на обмежених з'єднаннях і захисту від стеження, Tor має ще одну дуже корисну функцію: можливість створювати публічнодоступну адресу для будь-якої машини, незалежно від того, чи у неї змінна IP і чи вона за шлюзами (NAT-ами). Де б ця машина не була (а якщо це ноутбук, то він може постійно переміщуватися з місця на місце), ця адреса буде незмінною. Вона завжди закінчується доменом .onion
, і має вигляд, подібний до: sejnfjrq6szgca7v.onion
(якщо відкрити цю адресу в Tor Browser, ви потрапите на Tor-версію сайту debian.org).
Цю функцію називають "onion service" або "hidden service", тому що така Tor-адреса не розкриває інформації про фізичне розташування Вашого комп'ютера (на відміну від IP-адреси).
Цю можливість я тепер використовую майже щоденно. Наприклад, моя мама використовує Debian. Вона на ADSL-з'єднанні, яке, своєю чергою, «роздає» wifi-маршрутизатор. Тобто її IP — «внутрішня» 192.168.*.*
, до якої, звісно, доступу зовні немає. Завдяки Tor я маю можливість часом допомагати їй з адмініструванням її машини незалежно від того, де вона фізично і який у неї тип з'єднання з Інтернетом.
Налаштування на віддаленій машині
Перше, що потрібно зробити на машині, до якої Ви плануєте під'єднуватися через ssh - встановити tor і ssh:
apt-get install tor openssh-server
Після встановлення потрібно відкрити файл /etc/tor/torrc
і знайти там ось ці рядки:
#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80
Ці закоментовані рядки у файлі налаштувань — приклад використання цієї функції для веб-сервера (порт № 80). Натомість, ми налаштуємо її для SSH, і додамо в цьому місці такі рядки:
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 22 127.0.0.1:22
Після цього треба зберегти файл і перезапустити Tor:
systemctl restart tor
Після перезапуску Tor згенерує криптографічний ключ, публічна частина якого стане основою адреси .onion
цього комп'ютера. Щоб дізнатися цю адресу, треба заглянути у файл:
cat /var/lib/tor/hidden_service/hostname
bkzwruja5ntctq4z.onion
Тепер Ви знаєте, що bkzwruja5ntctq4z.onion
— публічна адреса вашого комп'ютера в мережі Tor, незалежно від вашого фізичного перебування й IP-адреси. Також у тій теці є файл private_key
, який є таємною частиною криптографічного ключа, на основі якого генерується адреса. Цей файл є доказом того, що вам і лише вам належить право на цю адресу. Якщо ви його втратите, ви не зможете використовувати цю адресу і вам доведеться згенерувати нову. Якщо його у вас викрадуть, викрадачі зможуть «прикидатися» вами й використовувати вашу onion-адресу. Тому цей файл треба надійно зберігати й ніде не публікувати. Якщо Ви хочете заходити через ssh на обліковку root
, візьміть до уваги, що віднедавна у debian типове налаштування для сервера ssh забороняє вхід користувачу root з допомогою пароля — дозволена лише автентифікація через ключі. Тому краще або перейти на автентифікацію ключами SSH (що значно безпечніше, ніж паролі), або дозволити вхід користувачу root на віддаленій машині, змінивши PermitRootLogin without-password
на PermitRootLogin yes
у /etc/ssh/sshd_config
. Впевніться, що пароль root
у вас достатньо міцний!
Налаштування клієнтської машини
Щоб встановити ssh-з'єднання до машини на адресі .onion
, потрібно встановити такі пакунки:
apt-get install tor torsocks
Після цього Ви зможете запустити команду:
torsocks ssh user@bkzwruja5ntctq4z.onion
І увійти на віддалену машину через ssh.
Додаткова зручність
Ви також можете налаштувати клієнтську машину таким чином, що команду ssh можна буде запускати без torsocks, а теки віддаленої машини можна буде «монтувати» локально у тих програмах, які використовують gvfs
(наприклад, Thunar, Tuxcmd, імовірно Nautilus). Для цього вистачить тільки встановити:
apt-get install socat
І створити у Вашій домашній теці файл .ssh/config
з таким вмістом (ідею запозичено звідси):
Host *.onion
ProxyCommand socat STDIO SOCKS4A:localhost:%h:%p,socksport=9050
Після цього Ви зможете запускати команду ssh з onion-адресами без використання додаткових команд:
ssh root@bkzwruja5ntctq4z.onion
...і заходити на віддалену машину через Tor безпосередньо з Вашого файлового менеджера: