Настройка VPN-сервера Tailscale

ПРИМЕЧАНИЕ

Это необязательно. Вам нужно рассматривать этот раздел, только если вы запускаете ноду дома и хотите подключаться к ней извне вашей домашней сети.

Если вы хотите подключаться к вашей домашней сети удаленно, например, во время отпуска или командировки, наиболее распространенным способом является использование сервера виртуальной частной сети (VPN). Это позволит вам подключаться к вашей ноде по SSH и отслеживать ваш дашборд Grafana из любой точки мира, не открывая ваш SSH-порт в интернет.

Многие операторы нод Rocket Pool используют Tailscale в качестве предпочтительного VPN-сервера. Tailscale — это VPN-туннель с открытым исходным кодом P2P и размещенный сервис обнаружения конечных точек. Он берет на себя аутентификацию, публикацию и обход NAT, необходимые для установления сквозного зашифрованного канала между вашей машиной и вашей нодой без отправки какого-либо конфиденциального трафика на централизованный сервер. Это очень мощный инструмент.

Мы кратко рассмотрим базовую настройку, но не стесняйтесь изучить их документацию для получения дополнительных деталей.

Настройка Tailscale

Сначала создайте бесплатную учетную запись Tailscale. Tailscale требует использования провайдера идентификации SSO, такого как Google, GitHub, Okta, Microsoft и т. д. Для получения подробной информации посетите их страницу SSO.

Рекомендуется включить 2FA (двухфакторную аутентификацию) для выбранного вами провайдера идентификации для дополнительной безопасности.

Затем следуйте их руководству по началу работы, чтобы установить Tailscale на ваш клиент — машину, с которой вы хотите подключаться к вашей сети. Например, это может быть ноутбук или ваш телефон. Обратите внимание, что это не ваша нода Rocket Pool!

После завершения вы должны увидеть свой компьютер как 'подключенный' на дашборде Tailscale.

Теперь установите Tailscale на вашу ноду Rocket Pool. Инструкции по этому поводу можно найти на их веб-сайте; например, вот инструкции по установке для Ubuntu.

ПРИМЕЧАНИЕ

Если у вас настроен UFW, вам также потребуется следовать инструкциям по настройке UFW).

Сначала добавьте ключ подписи пакетов и репозиторий Tailscale на вашей ноде Rocket Pool:

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

Теперь установите Tailscale на вашей ноде Rocket Pool:

sudo apt-get update
sudo apt-get install tailscale

Наконец, аутентифицируйтесь и подключите вашу машину к вашей сети Tailscale на вашей ноде Rocket Pool:

sudo tailscale up

Вы подключены! Вы можете узнать свой IPv4-адрес Tailscale, выполнив:

tailscale ip -4

Теперь вы должны увидеть вашу машину с нодой добавленной на дашборде Tailscale. Вы также можете изменить имя машины с нодой через дашборд, например, на rocketnode.

Рекомендуется отключить истечение срока действия ключа для машины с нодой, чтобы избежать необходимости периодической повторной аутентификации.

Примечание

Если вы хотите получить доступ к вашей ноде, используя запоминающееся имя хоста, такое как rocketnode, вы можете сделать это, включив MagicDNS в настройках Tailscale.

Теперь вы должны иметь возможность выполнить exit из SSH-сессии к вашей ноде на вашем клиенте и подключиться к вашей ноде снова через Tailscale, используя ssh your.user@rocketnode.

ПРИМЕЧАНИЕ

Если вы изменили SSH-порт машины с нодой в /etc/ssh/sshd_config при первоначальной настройке, используйте вместо этого ssh your.user@rocketnode -p <ваш порт>.

Например, если вы назначили SSH на порт 1234, вы должны выполнить:

ssh your.user@rocketnode -p 1234

Теперь вы также можете посетить http://rocketnode:3100 в вашем веб-браузере, чтобы получить доступ к вашему дашборду Grafana с вашего клиента.

Если у вас настроен UFW, вы теперь можете добавить правило для приема любых входящих SSH-соединений через Tailscale.

ПРЕДУПРЕЖДЕНИЕ

Следующие шаги изменят ваши правила брандмауэра. **Перед продолжением у вас должно быть открыто как минимум 2 SSH-сессии к вашей машине с нодой — одна для изменения конфигурации и тестирования после этого, и одна, которая останется залогиненной в качестве резервной на случай, если ваши изменения нарушат SSH, чтобы вы могли их отменить!

Выполните эти команды на машине с нодой.

Разрешите доступ ко всем входящим SSH-соединениям через Tailscale.

sudo ufw allow in on tailscale0

Вы также можете удалить доступ к SSH-порту, добавленному на шагах включения брандмауэра, чтобы полностью заблокировать вашу ноду. Обратите внимание, что вы не сможете войти из локальной сети, так как Tailscale станет единственным способом входа. Выполняйте следующую команду только если вы согласны с этим.

sudo ufw delete "22/tcp"

После того как вы настроили правила брандмауэра для ограничения всех соединений, не использующих Tailscale, перезагрузите UFW и SSH:

sudo ufw reload
sudo service ssh restart

Теперь убедитесь, что все работает как ожидается. Выполните exit из одной из ваших текущих SSH-сессий (но не забудьте оставить вторую открытой в качестве резервной).

Затем подключитесь к машине с нодой по SSH, используя IP-адрес Tailscale:

ssh your.user@rocketnode

Если это работает, вы все сделали правильно и теперь можете безопасно входить в вашу домашнюю сеть, находясь за границей!

СОВЕТ

Если вы ранее настроили переадресацию портов SSH вашей ноды на вашем роутере, теперь вы можете удалить её.