Pull to refresh

Comments 34

В случае линукса для вышеупомянутых задач, 128 мб ОЗУ оверкилл))))

128мб это минимум, чтобы lubuntu в принципе завелась... Как оно при таких ресурсах будет работать большой вопрос...

На debian 9 фана ради арендовал VPS со 128 мб ОЗУ, полет нормальный, хватало на туннелирование и веб-сервер, а если еще и zram поставить, прям залейся памятью

Обратите внимание, я нигде не утверждаю, что Linux в этом смысле хуже, скорее наоборот. И по ресурсам он дешевле и реализация в ядре всегда будет быстрее (при условии одинакового железа). Я даже подумываю портировать wireguard в ядро Windows, но работы многовато, а реальный эффект будет заметен только на гигабите.

Я не спорю, что на Linux выйдет дешевле по ресурсам... Но там и по готовому гайду настроить подобный конфиг сможет далеко не каждый.

Так и хабр вроде ресурс не совсем уж для каждого?

К тому же Wireguard есть в ядре каждого современного ядра Linux и его даже не нужно устанавливать.

Возможно... С другой стороны наверное не только для администраторов Linux.

Так в инструкции все действия происходят в консоли. Какая разница в чьей консоли команды писать?

Пробовал, разворачивал, но не на базе wireguard.

По ссылке проблема с чьим-то скриптом автонастройки, это вообще к самому wireguard на линуксе отношения не имеет.

У кого-то и на винде возникают проблемы

WireGuard официально не поддерживается в качестве сервера на Windows. Его можно настроить в этом качестве используя ICS, но там есть определённые ограничения и ICS имеет свойство отваливаться при отключении туннеля. Но эту проблему я решил, написав wiresock.

Вообще задача то только в том, чтобы упростить жизнь определённой категории пользователей. На Linux выйдет дешевле по деньгам/ресурсам, на Windows быстрее и проще для не специалиста...

Но эту проблему я решил, написав wiresock.

Стоило это обозначить, вы больно поскромничали. Я, даже прочитав предыдущую статью, не понял, что вы автор. С этой информацией обе статьи становятся несколько иного уровня: есть проблема на винде, и она решена вашей программой.

на Windows быстрее и проще для не специалиста...

По-моему для неспециалиста в обоих случаях вводятся какие-то магические команды.

Стоило это обозначить, вы больно поскромничали. Я, даже прочитав предыдущую статью, не понял, что вы автор. С этой информацией обе статьи становятся несколько иного уровня: есть проблема на винде, и она решена вашей программой.

Виноват, не подумал, что очевидное для меня, не столь очевидно для читателя...

По-моему для неспециалиста в обоих случаях вводятся какие-то магические команды.

На десктопе в принципе всего одна команда нужна для запуска простого туннеля... На Server Core чуть больше возни... Надо как-нибудь заморочиться с GUI, но никогда не умел рисовать, поэтому 'больно' и трудно ;-)

Честно, вместо того чтобы городить туннель на туннеле, проще просто на первом сервере сделать редирект пакетов на второй. iptables DNAT/SNAT (линуксовые как правило дешевле, а для пары правил больше ничего конфигурировать и не надо), socat (его можно вроде и под виндой при желании поднять) или ещё что в помощь. Тогда первый сервер, например, даже не будет иметь доступа к незашифрованному трафику, ибо коннект будет приземляться сразу вторым.

Если не ошибаюсь, то socat это про TCP, значит просядем по скорости. Можно ещё ssh туннели прикрутить, как вариант. А вообще, правда считаете что это проще и быстрее? ;)

С iptables DNAT/SNAT - однозначно проще и быстрее, да и по скорости точно не просядем. А socat умеет и по udp слушать-редиректить. Да и одна единственная команда socat-а тоже просто.
А вот накладные расходы на расшифровку и тут же зашифровку - вот это проблема, особенно для low-end проксирующих серверов.

В таком случае, почему бы вам не написать статью и не описать процесс и сделать сравнительнные тесты?

И ещё один вопрос, как к вашей схеме прикрутить смартфон в качестве клиента?

А в чём разница со смартфоном? Вы подключаетесь к одному IP, но по факту коннект уходит на другой. Стандартный вайргвардовский клиент разве это не прожуёт? Я просто с вайргвардом конкретно дела не особо имел, и сетапил подобную конфигурацию в своё время для SSTP, и всё прекрасно работало.

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

Из плюсов, меньше нагрузки на промежуточный сервер, из минусов такой трафик гораздо проще отследить. Это уже не двойной VPN, а одинарный с PAT/NAT через промежуточный сервер. Который, кстати несложно зафлудить, так как он форвардит все подряд с определённого порта без всякой авторизации.

Проще отследить? Вот тут внешне хоть 20 штук друг в друга запихнуть паттерн поведения не поменяется и отслеживается будет с одинаковым уровнем сложности. Если бы там были разные протоколы тогда да, можно было бы запутывать следы. А так получается что для того что бы спрятать коня мы прячем его в другого коня для того что бы никто не понял что у нас есть конь.

Двойная нагрузка шифрования будет в любом случае, просто в данном случае мы смешаем её с промежуточного сервера на конечный, но при этом промежуточный уже не может подглядывать в трафик. А по поводу заслужить, да возможно, но тут открывается вся прелесть wireguard в виде минимальной поверхности для атаки, чтоб зафлудить надо чётко знать куда флудить и даже в процессе остаётся только верить что ты успешно флудишь, так как всё что не расшифровывается конечной точкой просто остаётся без ответа. Можно ошибиться портом и флудить в фаервол промежуточного сервера.

При одном туннеле через цепочку прокси если точка входа и точка выхода в условно "контроллируемой" сети, то пропадает весь смысл промежуточных прокси. При цепочке туннелей такой угрозы нет.

Кроме того, обратите внимание, что wiresock может работать как NAT и как TCP/UDP прокси. И в случае цепочки серверов у второго режима есть пара преимуществ:

  1. Прокси ack-ет TCP пакеты на каждом сервере в цепочке, что позитивно сказывается на "видимом" стеком RTT и "общее" TCP окно маршрута как бы растягивается. Проще говоря это несколько компенсирует деградацию TCP из-за возросшего latency.

  2. Характеристики пакетов (размеры) могут измениться после прохождения прокси. В принципе, это можно даже сделать специально. Таким образом входящий туннель не бьётся напрямую с исходящим. Можно ещё пару пару первых звеньев смешать на втором и перебросить через третий.

Так что со всем уважением, но цепочка из прокси и цепочка из wireguard туннелей это совсем не одно и то же с точки зрения отслеживаемости.

Возможно я не совсем правильно донёс мысль, мой косяк. Я имел ввиду структуру не просто с прокси. Трафик заворачивается в wireguard и приходит на промежуточный сервер, промежуточный сервер пришедший трафик заворачивает ещё раз в wireguard и отправляет на конечную точку. Конечная точка последовательно снимает обёртки.

Мы в этой ветке обсуждали один WireGuard туннель через цепочку прокси, поэтому я и принял за продолжение темы. ;-)

С одной стороны вложенные туннели по типу 'матрешки' выглядят как более 'безопасный' вариант, но при этом он более медленный (сокращение MTU, нет компенсации RTT, как в режиме с прокси). Однако при нулевом доверии к промежуточным серверам, это может иметь смысл, например для того товарища из Ирана, чтобы иранский VPS не видел расшифрованный трафик.

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

Я такие сетапы делал в своё время для уменьшения пингов, более "прямые" маршруты получались проксированием через сервера, имеющие роуты получше чем у изначального хоста.

Да, я понимаю о чем вы. Сам прямо или косвенно поучаствовал в паре-тройке GPN проектов. Особенно проблема дешёвого медленного трафика актуальна для Австралии.

С точки зрения отслеживаемости, недостаток в том что по всему маршруту имеем одинаковые зашифрованные пакеты, что существенно облегчает сопоставление.

Ну, это да, но вообще косвенно просто по объёму трафика в единицу времени можно сопоставить. Достаточно понять какой входящий трафик какому исходящему соответствовать. А таким странам как Иран врядли нужно будет что-то большее для "доказательств". =)

DNS leak тест. Чем пользуетесь на windows server core? Get-DnsClientCache cmdlet retrieves the contents of the local DNS client cache. Это?

Sign up to leave a comment.

Articles