Путь управления вашим VPS на основе Tor
Используйте SOCKS-прокси для SSH, опубликуйте приватную onion-точку входа и проверьте DNS, аутентификацию и восстановление, прежде чем закрывать публичный доступ.
Краткий обзор
Tor может изменить сетевой путь, используемый для доступа к VPS, а onion-эндпоинт SSH может избежать обычного публичного назначения управления. Ни один из подходов не защищает сервер автоматически. Защищайте ключи SSH, проверяйте идентичность хоста, ограничивайте доступ и тестируйте конфигурацию, прежде чем полагаться на неё.
Защитите администрирование, а также оформление заказа
Заказ сервера через защищённый браузер не защищает автоматически последующую сессию SSH. Прямой вход может раскрыть ваш исходный адрес серверу и сетям на пути. Решите, как будет работать администрирование, до первого подключения, включая экстренный доступ, если предпочтительный маршрут откажет.
Tor может скрыть прямой IP клиента от пункта назначения, но это не решение для повторно используемых учётных данных, идентифицирующих данных конфигурации или любой атаки корреляции трафика. Оно также добавляет задержку. Полезная цель — согласованный путь управления, поведение которого вы понимаете и можете проверить.
Начните с работающего локального клиента Tor
Системный демон Tor обычно предлагает SOCKS на 127.0.0.1:9050, тогда как Tor Browser обычно использует 9150. Проверьте свою фактическую конфигурацию, а не предполагайте тот или иной порт. Приложение должно отправлять своё соединение через этот прокси; открытие Tor Browser не направляет через прокси каждую программу на компьютере.
В поддерживаемых системах torsocks оборачивает такие приложения, как SSH, и направляет поддерживаемые сетевые вызовы через Tor. Проверьте настройку с использованием примера адреса только для документации, заменив его на реальный адрес вашего сервера. Следующая команда предполагает работающий системный демон Tor и выделенную административную учётную запись.
torsocks ssh -i ~/.ssh/silentvps_ed25519 [email protected]Сделайте маршрут частью конфигурации SSH
Для регулярного использования конфигурация для каждого хоста снижает риск забыть обёртку. В приведённом ниже примере используется реализация netcat с поддержкой SOCKS5 прокси. Реализации различаются, поэтому проверьте параметры -x и -X в вашей установленной версии и уточните, выполняется ли разрешение имён удалённо.
IdentitiesOnly ограничивает ключи, предлагаемые серверу; сочетайте это со свежим ключом, используемым для этого проекта. Проверьте и сохраните отпечаток ключа хоста сервера через доверенный канал предоставления. Tor изменяет сетевой путь, но аутентификация хоста SSH всё равно необходима.
Host silent-admin
HostName 203.0.113.45
User admin
IdentityFile ~/.ssh/silentvps_ed25519
IdentitiesOnly yes
ProxyCommand nc -X 5 -x 127.0.0.1:9050 %h %pПереместите SSH за onion-сервис
Onion-точка входа позволяет администрирование без публично доступного порта SSH и избегает использования выхода Tor для этого соединения. Установите и настройте Tor на сервере, затем сопоставьте виртуальный порт onion с локальной службой SSH. Этот пример — начальная конфигурация; пути служб и команды различаются в зависимости от дистрибутива.
После того как Tor создаст каталог службы, приватно получите файл её имени хоста и проверьте соединение через клиентский прокси. Держите идентификационные ключи onion-сервиса в тайне. Только после успешного независимого входа следует ограничить SSH до localhost и убрать публичный доступ. Проверьте, что ваша консоль восстановления работает, прежде чем вносить это изменение.
HiddenServiceDir /var/lib/tor/silent-admin/
HiddenServicePort 22 127.0.0.1:22Добавьте авторизацию клиента для приватной точки входа
Без дополнительной авторизации любой, кто узнает onion-адрес, сможет получить доступ к сервису и его SSH prompt. Tor v3 клиентская авторизация добавляет отдельный криптографический барьер: у сервиса есть открытый ключ авторизованного клиента, а у клиента — соответствующий закрытый ключ.
Следуйте текущим инструкциям Tor Project по форматам ключей и каталогу authorized_clients. Убедитесь, что неавторизованный клиент не может подключиться. Также сохраните аутентификацию по ключу SSH и спланируйте, как отозвать авторизацию потерянного устройства, не потеряв собственный оставшийся доступ.
Проверьте DNS и избегайте утечки идентичности
Поиск имени хоста, выполняемый локальным резолвером, может раскрыть вашу цель до того, как соединение достигнет прокси. Использование IP-адреса сервера для clearnet-назначения позволяет избежать этого конкретного поиска; onion-имена требуют разрешения внутри Tor. Для других имён хостов подтвердите поведение удалённого DNS приложения, а не полагайтесь на общую настройку прокси.
Гостевая система может всё ещё хранить метки времени аутентификации, имена пользователей и записи журнала. Пересмотрите их хранение осознанно, а не отключайте вслепую всю диагностику. Также проверьте локальные имена хостов, метаданные коммитов и скопированную конфигурацию на наличие идентифицирующих деталей. Tor не удаляет их из трафика приложений.
- Используйте выделенный ключ и изолированный рабочий процесс проекта.
- Проверьте ожидаемый порт SOCKS и удалённое поведение DNS.
- Сохраните доступ для восстановления и второй проверенный вход перед изменением слушателей.
- Проверьте службу Tor и SSH после обновлений.
- Никогда не передавайте ключи идентичности onion или секреты клиентской авторизации.
Поддерживайте длительные сессии и будущее обслуживание практичными
Запускайте длительные административные задачи внутри tmux или screen, чтобы прерывание соединения не уничтожило сессию. Цепи Tor и сетевые условия могут меняться, поэтому делайте команды повторяемыми и понимайте, как их возобновить. Небольшую дополнительную задержку легче переносить, когда обслуживание запланировано.
Тот же onion-шаблон может обслуживать локальную панель управления или частный Git-сервис. Каждому приложению всё ещё нужны аутентификация, обновления программного обеспечения и тщательная настройка. Продолжайте использовать защищённый маршрут для поддержки, продления и резервных копий там, где этого требуют ваши требования к приватности; последовательность важна так же, как и первоначальная настройка.