Назад

Устанавливаем Mesh-сеть на основе Tailscale VPN

Добрый день. В этой статье мы установим VPN Tailscale, который основан на WireGuard и предоставляет дополнительные функции для пользователей. В отличие от WireGuard, Tailscale не является полностью бесплатным. Вы можете им пользоваться без оплаты и привязки карты, с ограничениями до 3 пользователей и 100 устройств. Что в целом достаточно для некоммерческого применения.

В чем преимущества и недостатки Tailscale над WireGuard ?

Основное отличие и преимущество Tailscale — это децентрализованная Mesh-сеть.

Mesh-сеть (по версии chat GPT) — это тип сетевой топологии, в которой устройства подключены друг к другу таким образом, что каждое устройство может быть связано с несколькими другими устройствами в сети. Эта концепция напоминает структуру паутины или сети сетей, где данные могут передаваться через промежуточные узлы для достижения целевого устройства.

Если проще, можно подключаться ноут через сервер, смартфон через сервер и наоборот, например смартфон через ноут. Tailscale создает прямой канал между устройствами.

Основные факты:

  1. Tailscale использует WireGuard для создания зашифрованных туннелей между узлами.
  2. Она поддерживает как сети типа «центр-конечная точка», так и сети «сетка».
  3. Tailscale использует централизованный сервер координации для обмена ключами и согласования.
  4. Она поддерживает обход NAT с использованием передовых методов, основанных на стандартах STUN и ICE.
  5. Tailscale использует зашифрованные ретрансляторы TCP, называемые серверами DERP, для ситуаций, когда UDP заблокирован.
  6. Она обеспечивает контрольные списки доступа (ACL) и политики безопасности для повышения уровня защиты.

Другие преимущества Tailscale — это веб-консоль для управления устройствами, гибкое управлением DNS и устройствами, обход NAT.

Из недостатков - сложная процедура настройки клиентов программ, ограничения на количество аккаунтов и устройств. И главный недостаток - появляется еще одна сторона в вопросе VPN. 

Выбор хостинга для VPN

Racknerd

Американский хостер предлагает отличные тарифы для VPN, но только при условие аренды акционных серверов (ссылка на акцию). Тарифы без акций — напротив, сильно дорогие. Я пользуюсь уже несколько лет данным хостингом и покупаю именно акционные тарифы. Для РФ есть возможность оплаты через крипту, как бы сейчас это не проблема завести кошелек на Huobi или Kucoin.

Железо используют среднее (для промо-тарифов), но его хватает с избытком для VPN. Большой плюс — можно заранее пинговать сервера, выбрать IP адрес и его расположение. Сам хостинг зарекомендовал себя очень надежным, к саппортам ни разу не обращался.

Speedtest показывает скорость Download 420 — 760Mbit/s, Upload 750 — 790 Mbit/s и Packet loss: 0 % — что является отличным результатом. Хотя просадки по скорости трафика бывают. Минимальная сумма для пополнения счета — 10 — 20 $ за 1 год.

Aeza

Хостер предлагает очень хорошие тарифы с оплатой от 1-го часа и расположением в Европе и СНГ. Хорошее железо, простая и удобная панель управления. Не находятся в юрисдикции РФ, при этом и никаких персональных данных не просят. Часто анонсирует промо-тарифы на хорошие сервера по 105 рублей.

Speedtest показывают скорость Download 678 — 735 Mbit/s, Upload 632 — 668 Mbit/s и Packet Loss: 3 % — отличный результат! Кроме пожалуй Packet Loss, с ним я столкнулся практически на всех локациях Aeza.

Минимальная стоимость сервера под VPN — 391 и 105 рублей за промо тариф. Минимальная сумма для пополнения счета — от 105 рублей. При регистрации по ссылке, у вас будет wellcome бонус +15% к первому пополнению счета, за первые 24 часа.

Установка Tailscale

Заходим на наш сервер через SSH или веб-консоль, копируем команды и вставляем в консоль:

apt update && apt upgrade -y
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
apt update && apt install tailscale
tailscale up

В консоли появится ссылка на Tailscale, кликаем на нее, переходим по ней в браузере и авторизуемся (или связываем свой аккаунт) с Tailscale.

tailscale ip -4

Настройка маршрутизатора подсети

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf
sysctl -p /etc/sysctl.conf

Перенаправление трафика через сервер

 tailscale up --advertise-exit-node
Далее идет важный этап, не пропускаем его!

Затем на сайте Tailscale, в списке машин — нажать на три точки напротив той, через которую будет идти весь трафик (подсказка, название нашего сервера), Edit Routte Settings → активировать переключатель Use as exit node.

В Windows, на иконке Tailscale правой клавишей мыши, в появшемся списке выбрать Exit node и выбрать машину через которую будет идти весь трафик (подсказка, название нашего сервера).

В Android, справа вверху нажать три точки, далее Use exit node и выбрать машину через которую будет идти весь трафик.

И напоследок парочку фичей:

Переходим в консоли Tailscale (ссылка) на вкладку DNS, выбираем DNS от Cloudflare, Google или Quad9. Или вводим свой, например от Adguard. И ниже активируем HTTPS Certificates.

Базовая защита сервера

Защитим сервер брутфорса (взлом через перебор паролей):

apt install fail2ban -y && apt install ufw -y && apt install nano -y
touch /etc/fail2ban/jail.local && nano /etc/fail2ban/jail.local

Откроется редактор, вставим в него код:

[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
findtime = 600
maxretry = 3
bantime = 43200

Нажимаем ctlr + x, далее y + enter, чтобы сохранить.

Настраиваем фаервол и отключаем пинг

ufw allow 22/tcp && ufw limit 22/tcp && ufw allow 443/tcp && ufw default deny incoming && ufw default allow outgoing && service ufw start && ufw enable 

Подтверждаем включение фаервола, Y и Enter.

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

 nano /etc/ufw/before.rules

Меняем концовку следующего выражения с ACCEPT на DROP:

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Нажимаем ctlr + x, далее y + enter, чтобы сохранить.

И напоследок:

apt update && apt upgrade -y && apt autoclean -y && apt clean -y && apt autoremove -y && reboot
Atlant
Atlant
http://vpneasy.pro
Пишу только о VPN и современных протоколах защиты и передачи данных. Проект не монетизируется и не направлен на извлечение выгоды. Миссия этого проекта — дать доступ к технологиям защиты собственных данных.
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
6 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Алексей
Алексей
1 год назад

Классная статья, спасибо!

Есть вопрос! После того как я перешел «…на вкладку DNS, выбираем DNS от Cloudflare, Google или Quad9…», не нужно включить тумблер override local DNS?

Спасибо!

Алексей
Алексей
Ответить на  Atlant
1 год назад

Спасибо!

Антон
Антон
1 год назад

Дмитрий, спасибо за отличную статью. О tailscale я узнал только вчера и попробовал использовать его для того, чтобы опубликовать сайт, находящийся на домашнем сервере (на сером ip) в интернете. Документация tailscale говорит, что все настроено правильно, а доступа нет. Вы не в курсе в чем может быть проблема?