Вроде бы все прекрасно…. Сколько уже лет протоколам туннелирования.. но на практике – да хрен там все прекрасно…
Зоопарк просто шикарный pptp/l2tp/ipip/ipsec/gre/openvpn/wireguard/и еще чего там только не изобрели, в общем захотелось нам VPN, ищем под наши нужды(unicast/multicast/раздача custom routes/количество участников VPN/доверенные или не доверенные/клиент-сервер/одноранговая архитектура) и тут мы попадаем в славный город Содом и начинается наш забег по всем кругам ада Данте.
PPTP – фактически уже мертвый протокол. Плюсы – “из коробки” был доступен на всех самых старых системах, умеет пересоединяться при разрыве соединения. Минусы – сам по себе медленный (хоть и частично решается сборкой в никсах accel-pptp модуля), изжил себя, признан небезопасным и в новых ос без IPsec хрен из коробки заработает без напильника. Гибкости – ноль, управляемости – тоже столько же.
L2TP – будет пошустрее и чуть менее прожорлив стандартного PPTP, но, в общем и целом, – хрен редьки не слаще. Вроде как пока еще считается безопасным. В остальном практически все плюсы и минусы делит со своим собратом выше.
IPIP – поддерживается разным железом, но с форточками придется помучаться ибо только сторонним софтом.. И самая большая боль – нормально он не умеет восстанавливать соединение. (Ну или может я криворукий, но сколько не крутил между 2 дебиан-системами, ничерта не добился в вопросе автореконнекта ). Ну и заточен соединять 2 точки.
IPSec – прекрасен в своем лютом 3.14здеце. Изначально сугубо проприетарный протокол, может быть как standalone так и надстройкой к pptp/l2tp. Есть фрисорс варианты реализации (openswan/strongswan/libreswan), и вот тут начинается содомия. Все варианты я не тестил, чистый ipsec под мои задачи просто не подходил, а по “плаванию” в тестах l2tp+ipsec получал вилы с тем что какая-то реализация работала linux-linux и osx-linux, но в винде я видел жирный хрен, другая – менялись местами винда и osx. Да, думаю смог бы и это побороть, но на третий день шаманских плясок мне это просто надоело и плюнул на эту затею. Плюсы – данный вариант поддерживается как разными ОС так и практически любыми сетевыми железками. Минусы – вы себе основательно вынесете мозг с его настройкой между несколькими точками, особенно в связке с pptp/l2tp и если клиенты весь зоопарк возможных ОС.
WireGuard – быстрый, простой как двери. Минимально необходимый вариант настроек – выбрать IP для туннеля, сгенерить приватный и публичный ключи для каждого участника. Описать Address, ListenPort,PrivateKey сервера, PublicKey AllowedIPs PersistentKeepAlive клиента, запустить – все, оно работает. Хочется чуть больше безопасности – можете еще каждому клиенту на рыло выдать персональный PreShared-ключ. Плюсы: очень прост в настройке, достаточно безопасен, не требует долгих и мучительных копаний мануалов. Минусы – в силу архитектуры авторизация только по ключам (это не минус, но бывают ситуации когда логин+пароль авторизация нужна), с сетевым железом все пока не радужно, если микротик умеет, джунипер вроде как тоже научили, то вот всякие кошко-аристо-экстримы клали прибор с кисточкой на этот вопрос. Ну из мелочей – скрипт демона в дебиане пока далек от счастья, если просто с wg утилитой можно “докинуть” или “выкинуть” части пиров из конфига вручную без обрыва всех соединений, то варианта reload конфигурации демона без обрыва соединений просто не предусмотрено. Т.е. далеко не под каждую задачу он подойдет, хотя по знакомству – один из самых приемлемых кандидатов, если надо быстро и просто “собрать” в одну сеть несколько точек.
OpenVPN – прекрасен и ужасен одновременно.
Коммерческий вариант OpenVPN Access Server думаю весьма юзабелен (сам не щупал, но краем глаза наблюдал), но вот фрисорс- вариант… Тут полный набор цирка чтобы вам жизнь малиной не казалась. Генерация сертификатов с easy-rsa – не сказать что где-то сложно, но только до того момента пока вам не захочется полного контроля – отзыва сертификатов, и “догенерации” сертификатов для клиентов – придется разные доки шерстить и собирать своего франкешнтейна из рукоблудных рукодельных скриптов или искать чужие и адаптировать под свои нужды. Не сложно, но муторно. Так же умеет авторизацию по логину-паролю. Умеет.. но как в том анекдоте, “после сборки тщательно обработать напильником” (с) Да-да-да, кто-то может мне сказать – врешь, гад, openvpn еще можно настроить со статическими ключами, проще просто некуда. Таки да, но такой вариант исключительно для того чтобы соединить 2 точки, надо 3 – статик ключ идет лесом (и еще раз таки да, кто-то особо упоротый скажет – можно запустить несколько копий openvpn на разных портах, отфорвардить фаерволом трафик между “клиентами” – но это будет примерно то же, как рояль перевозить на двух мопедах)
Плюсы – он умеет все… Хотите раздавать разные роуты с сервера клиентам? Без проблем. Хотите повесить на подключение/отключение клиента какие-то события? тоже никаких проблем, укажите какое событие, путь к внешним скриптам – и пишите их на чем желаете. Надо переподключение – укажите keepalive какой вам удобен – и по достижению дед-энд-тайм-аута он переподключится тихо сам. Нужен больший контроль, список подключенных клиентов – активируйте консольный интерфейс на выбранном порту – и рулите сколько влезет с netcat/telnet. Разные десктопно-мобильные ОС на клиентах – да, пожалуйста. Захотелось чего-то совсем странного? Скорее всего это тоже в OpenVPN возможно, но придется лезть в дебри документации и курить тонны текста, мучать гугл, потом кропать скрипты под вашу хотелку.
Минусы – настройка может стать очень заморочной в зависимости от ваших хотелок, пляски с бубном при настройке в любом случае будут если вы его до этого не крутили с разных сторон – вдумчивое чтение мануалов обеспечено. требуется отдельный клиент (хотя в некоторых версиях линукс Network-Manager уже его “изкоробки” умеет), OSX вообще идет лесом и либо порты в помощь, либо гуяшный TunnelBlick качайте. С сетевым железом – тоже далеко не все поддерживают. Но если надо свое казино, блекджек и мадемуазели – вам точно понравится этот продукт.
Повідомити про помилку
Текст, який буде надіслано нашим редакторам: