ЗащитаПроводов
Mar. 25th, 2022 07:46 amПочитал документацию по WireGuard. Эмм… примитивная штука, до OpenVPN ей далеко.
Сертификатов и корневого сертификата нет. Обмена ключами нет, ключи надо копировать между серверами и клиентами руками. Информация о сервере (например, адрес сервера DNS) хранится в конфигах клиентов.
Т.е. если изменился ключ сервера — нужно редактировать всех клиентов. Если изменился ключ клиента — нужно редактировать все серверы. Если изменился адрес сервера DNS — нужно редактировать всех клиентов.
Ыыы. ;-(
X-Post в ЖЖ.
Сертификатов и корневого сертификата нет. Обмена ключами нет, ключи надо копировать между серверами и клиентами руками. Информация о сервере (например, адрес сервера DNS) хранится в конфигах клиентов.
Т.е. если изменился ключ сервера — нужно редактировать всех клиентов. Если изменился ключ клиента — нужно редактировать все серверы. Если изменился адрес сервера DNS — нужно редактировать всех клиентов.
Ыыы. ;-(
X-Post в ЖЖ.
no subject
Date: 2022-03-25 05:10 am (UTC)Именно эти недостатки являются продолжениями ее преимуществ.
Ну вот например, у меня есть две VPN испоьльзующих OpenVPN. Каждая из них отдает свои DNS-ы, и при этом нифига не говорит для каких доменов эти DNS-ы надо использовать, а для каких - нет. Так что использваиние DNS=ов из этих VPN приходится все равно прописывать в конфиг dnsmasq руками, на основании априорного знания что во эту vpn я использую для доступа к хостам из домена l.postgreespro.ru, вот эту - home.wagner.pp.ru
Отсутствие сертификатов - тоже смкорее преимущество, чем недостаток. Как пользоваться ключами может понять кто угодно. Как обеспечить безопасность с использованием сертификатов (особенно в сложных случаях, например, когда какое-нибудь устройство потеряно с его сертификат надо отозвать, при этом не трогая сертификатов 20 остальных устройств) не понимает примерно никто. То есть даже у меня, хотя я этой темой более-менее владею, регулярное обновление CRL на сервере я уж не говорю про всегда доступный серверу OCSP-респондер, не настроенл
Безопасность
Date: 2022-03-25 05:28 am (UTC)Клиентов OpenVPN у меня 3, и серверов 3. Сертификаты я не отзываю, я их пересоздаю прямо от корня и ansible'м рассылаю. Это проще, чем раздать руками ключи WireGuard. ;-)
Re: Безопасность
Date: 2022-03-25 05:42 am (UTC)Не, Selinux не настроен. Клиентов у тебя чегой-то мало. У тебя же вроде жена и дети. Или они VPN-ом не пользуются?
Рассылать ансиблем новые сертификаты по устройствам, которы могут быть выключены или не в сети, это конечно сильный ход.
У меня тут понимаешь ноутбуков в семье штук пять, и никогда не знаешь какие из них выключены, а какие включены, и смартфонов несколько штук. которые тоже могут быть выключены или на них отключен мобильный интернет.
Теперь представь себе - потерялся у тебя один смарфтон из пяти имеющихся в сеьме - что тебе ради этого менять сертификаты на всех устройствах, подключенных к VPN - стационарныхх и мобильных, включяяя резервные, заныканные на антерсоли?
Re: Безопасность
Date: 2022-03-25 05:54 am (UTC)WireGuard
Date: 2022-03-28 11:16 am (UTC)wg-quick. Я не знаю, как подключить клиента OpenVPN к нескольки серверам, особенно когда каждый сервер объявляет, что именно он маршрутизатор по умолчанию.Re: WireGuard
Date: 2022-03-28 12:02 pm (UTC)Ну openvpn может игнорировать объявления серверов на эту тему. Пишешь в конфиг соответствующей сети
pull-filter ignore "route"
и вперед.
То есть вот у меня никогда не было проблем с тем чтобы запустить несколько экземпляров клиента openvpn одновременно. Обычно это сводится к тому чтобы кинуть в /etc/openvpn несколько конфигов, а остальное оно само. Ну или может понадобится systemctl enable openvpn@то, systemctl enable openvpn@сё, если systemd пользуешся.
Re: WireGuard
Date: 2022-03-28 12:42 pm (UTC)ignore "route"я иногда делаю. У меня на home.phdru.name включен OpenVPN в сторону phdru.name для проброса 4-ёх трекеров torrents.ru. :-)Несколько клиентов я могу запустить, но для этого всем придётся отключить маршрутизацию по умолчанию. То, что WG один, и то, что он сам занимается более сложной маршрутизацией, чем просто "точка-точка" — плюс.
Re: WireGuard
Date: 2022-03-28 02:05 pm (UTC)Ну на мой взгляд, маршрут по умолчанию, как и DNS по умолчанию в любом случае должен смотреть в физическую сеть. А в VPN-ы роутиться только конкретные локальные сети. Для меня VPN это расширитель домашней или офиснй локалки до компа который находится вне ее. При этом, естественно, что большая часть траффика у этого компа идет не в эти локалки. а куда-то ещё, поэтому пусть идет прямо.
В плане хитрого роутинга в OpenVPN меня скорее интересует возможность прямого (минуя ядро сервера) роутинга от одного клиента к другому.
Re: WireGuard
Date: 2022-03-28 02:40 pm (UTC)Re: WireGuard
Date: 2022-03-28 06:13 pm (UTC)Ну у меня есть такое впечатление что "не работает или работает плохо" касается только протокола HTTP(S). Причем есть сайты, которые не любят Россию, а есть (в тех же США) сайты, которые не любят ЕС с его законами о приватности в веб. А еще есть сайты магазинов которые пытаются по IP определить местонахождение пользователя и цену на доставку купленных товаров пытаюся показывать исходя из него.
Поэтому у меня на одном из узлов моей семейной локальной сети, для которого физической сетью является сеть в немецком датацентре, настроена web-proxy.
И в браузере стоит расширение foxyproxy которое путем довольно большого набора правил определяет, ходить через ту прокси или мимо неё (а заодно прозрачным образом отправляет домен .onion в тор-клиент, выгядящий для браузера как SOCKS-прокси). И всегда можно парой кликов переопределить это решение и отправить сайт не через ту прокси, которая для него выбралась на основании правил, а через любую другу.
Иногда бывает, что через офисную приходится.
Re: WireGuard
Date: 2022-03-28 07:53 pm (UTC)Но я часто хожу на внутренние серверы на работах по ssh. И домой, если я не дома, а на даче или в отпуске.
Re: WireGuard
Date: 2022-03-29 11:24 am (UTC)Да, это у меня тоже две основных области применения - выход в web в нужной точке и ssh внутри vpn. Потому что ipv6 почему-то не везде еще есть и без vpn на машинку, подключенную к сети, скажем megafon по ssh не попадешь.
Но в общем, ни то, ни другое - не повод заворачивать в vpn весь траффик. Потому что по ssh ты все равно идешь на хост, который внутри vpn, а точку через которую выпускать во внешний мир http-запрос нужно выбирать гибко, в зависимости от того, куда запрос.
Re: WireGuard
Date: 2022-03-29 11:30 am (UTC)function FindProxyForURL(url, host) { if ( dnsDomainIs(host, "2019.vote") || dnsDomainIs(host, "anticompromat.org") || dnsDomainIs(host, "b-ok.org") || dnsDomainIs(host, "canadapost.ca") || dnsDomainIs(host, "directupload.net") || dnsDomainIs(host, "ej.ru") || dnsDomainIs(host, "glavnoe.ua") || dnsDomainIs(host, "grani.ru") || dnsDomainIs(host, "graniru.org") || dnsDomainIs(host, "kasparov.ru") || dnsDomainIs(host, "linkedin.com") || dnsDomainIs(host, "lurkmore.co") || dnsDomainIs(host, "lurkmore.to") || dnsDomainIs(host, "putinism.wordpress.com") || dnsDomainIs(host, "textuploader.com") || dnsDomainIs(host, "instagram.com") || dnsDomainIs(host, "facebook.com") || dnsDomainIs(host, "fbcdn.net") || dnsDomainIs(host, "paypal.com") || dnsDomainIs(host, "paypalobjects.com") || dnsDomainIs(host, "t.co") || dnsDomainIs(host, "twimg.com") || dnsDomainIs(host, "twitter.com") || /* dnsDomainIs(host, "t.me") || dnsDomainIs(host, "tlinks.run") || dnsDomainIs(host, "telegram.org") || dnsDomainIs(host, "web.telegram.org") || */ dnsDomainIs(host, "booktracker.org") || dnsDomainIs(host, "fantasy-worlds.org") || dnsDomainIs(host, "flibusta.is") || dnsDomainIs(host, "flibusta.net") || dnsDomainIs(host, "flibusta.site") || dnsDomainIs(host, "lib.rus.ec") || dnsDomainIs(host, "librusec.pro") || dnsDomainIs(host, "maxima-library.org") || dnsDomainIs(host, "online-literature.com") || dnsDomainIs(host, "fast-torents.net") || dnsDomainIs(host, "hdrezka.ag") || dnsDomainIs(host, "kinozal.guru") || dnsDomainIs(host, "kinozal.me") || dnsDomainIs(host, "kinozal.tv") || dnsDomainIs(host, "kinozal.website") || dnsDomainIs(host, "kinozaltv.net") || dnsDomainIs(host, "megashara.com") || dnsDomainIs(host, "nnm-club.me") || dnsDomainIs(host, "nnmclub.ro") || dnsDomainIs(host, "nnmclub.to") || dnsDomainIs(host, "rus-tor.com") || dnsDomainIs(host, "rutor.info") || dnsDomainIs(host, "rutor.is") || dnsDomainIs(host, "rutracker.org") || dnsDomainIs(host, "thepiratebay.org") || dnsDomainIs(host, "thepiratebay3.to") || dnsDomainIs(host, "video.jewish.in.ua") || dnsDomainIs(host, "tfile-home.org") || dnsDomainIs(host, "tfile-music.cc") || dnsDomainIs(host, "tfile.cc") || dnsDomainIs(host, "tfile.co") || dnsDomainIs(host, "tfile.me") || dnsDomainIs(host, "tfile.ru") || dnsDomainIs(host, "tfile2.cc") || dnsDomainIs(host, "trec.to") || dnsDomainIs(host, "oleg-leusenko.livejournal.com") || dnsDomainIs(host, "systemity.livejournal.com") || dnsDomainIs(host, "lj.rossia.org") || dnsDomainIs(host, "dropmail.me") || dnsDomainIs(host, "psiphon.ca") || dnsDomainIs(host, "tempr.email") || dnsDomainIs(host, "torproject.org") || dnsDomainIs(host, "encryptionin.space") || dnsDomainIs(host, "bbc.com") || dnsDomainIs(host, "bbcnews.com") || dnsDomainIs(host, "bbcrussian.com") || dnsDomainIs(host, "9tv.co.il") || dnsDomainIs(host, "cursorinfo.co.il") || dnsDomainIs(host, "evreimir.com") || dnsDomainIs(host, "mignews.com") || dnsDomainIs(host, "newsru.co.il") || dnsDomainIs(host, "vesty.co.il") || dnsDomainIs(host, "dw.com") || dnsDomainIs(host, "echo.msk.ru") || dnsDomainIs(host, "golosameriki.com") || dnsDomainIs(host, "gulagu.net") || dnsDomainIs(host, "meduza.io") || dnsDomainIs(host, "severreal.org") || dnsDomainIs(host, "svoboda.org") || dnsDomainIs(host, "the-village.ru") || dnsDomainIs(host, "tjournal.ru") || dnsDomainIs(host, "tvrain.ru") || dnsDomainIs(host, "mediazona.ca") || dnsDomainIs(host, "mediazona.online") || dnsDomainIs(host, "zona.media") ) return "SOCKS localhost:1080"; return "DIRECT"; }Re: WireGuard
Date: 2022-03-29 11:49 am (UTC)Re: WireGuard
Date: 2022-03-29 02:41 pm (UTC)Ну так надо общий принцип правильный с самого начала применить.
У меня был общий принцип такой - все, что .ru, .su и .рф - напрямую. Все остальное по умолчанию через Франкфурт. Дальше начинаются тонкости. Выловился домен yandex.st - его напрямую. Переехали сервера livejournal в россию - их напрямую. Не хочет wikipedia пускать редактировать с адресов hetzner - тоже напрямую. Ну или - нашелся американский сайт, котлорый не любит GDPR - его напрямую.
При этом я использую foxyproxy
Re: WireGuard
Date: 2022-03-29 02:56 pm (UTC)ssh -Dс указанным выше списком сайтов.Re: WireGuard
Date: 2022-03-29 02:59 pm (UTC)А у меня VPN включен всегда. А когда я работаю (сейчас я в отпуске) - два vpn-а - мой собственный и офисный.
Потому что если vpn поднимать и опускать по необходимости. он будет абсолютно бесполезен в целях "зайти по ssh на ту свою машину, рядом с которой тебя физически в данный момент нет", ибо окажется там опущен.
Re: DNS
Date: 2022-04-02 02:05 pm (UTC)Т.е. если маршрутизация идёт по списку хостов, а не умолчанию (я сейчас переделываю по твоему совету свои VPN), то DNS должен быть из VPN, а не от своего провайдера.
Re: DNS
Date: 2022-04-02 03:29 pm (UTC)Да, естетсвенно. Поэтому у меня стоит dnsmasq, которому явным образом прописано что сервера для доменов что-то-там.postgrespro.ru - это вот такие, а для home.wagner.pp.ru - вот такие.
Проблема с блокировкой веб-серверов на уровне DNS решается тем, перенаправление веб-запросов в VPN делается не на уровне маршрутизации, а на уровне прокси. Прокси уж как-нибудь сама разберется как имена резолвить.
Re: DNS
Date: 2022-04-02 07:33 pm (UTC)В моей ситуации dnsmasq мало помогает, у меня нет внутренних доменов. А вот внутренние сервера DNS есть. В результате чего бывает вот так:
Насчёт прокси я не понял. У тебя кроме VPN есть ещё прокси? И в браузерах (на компьютере и телефоне) сконфигурирован FoxyProxy, чтобы часть запросов отправлять через прокси? Может, даже не через один?
Re: DNS
Date: 2022-04-03 06:11 am (UTC)Да именно так. В браузерах FoxyProxy. Потому что у него удобный интерфейс, позволяющий на ходу делать исключения из правил. Либо временные "вот сейчас не глядя на URL ходим через вот эту прокси" либо постоянные "вот теперь вот эта прокси будет игнорировать этот домен, и он пойдет через следующую".
Проксей там много - как минимум стоящая на сервере в Германии, стоящая в офисе и Tor, который с точки зрения браузера представляет собой Socks5 proxy. Еще обычно у меня сконфигурирован в FoxyProxy тот socks который создает ssh -D, Но по умолчанию выключен, кроме как на работе, где я на принадлежащей конторе машине свою личную VPN не поднимаю. Может еще соберусь i2p подниму, если буду знать что там искать.
Ну и правила для этих проксей прописаны так, чтобы домены ru, su и т.д. через них "проваливались" и ходили напрямую.
Соответвенно все эти прокси принимают соединения только с localhost или из vpn.
Кстати с андроидом это тоже более-менее работает. Причем там есть возможность управления системной прокси, через которую будет ходить не только браузер но и всякие приложения-интерфейсы к сайтам, которые так любят в андроидной экосистеме.
Re: VPN и прокси
Date: 2022-04-03 06:16 am (UTC)