LINUX.ORG.RU
решено ФорумAdmin

Блокировка рекламы на своём облаке

 , ,


1

2

Привет!

Из образовательных соображений дабы удовлетворить своё любопытство решил сделать то, что давно откладывал, как-то не было особой нужды - а именно поднял свой VPN сервер (на базе strongswan) на облаке (в качестве примера на Digital Ocean, но выбор поставщика тут не принципиален).

Воспользовался вот этой инструкцией https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ikev2-vpn-server-with-strongswan-on-ubuntu-18-04-2

Понял две вещи. Во-первых, хостинг - это дороговато (в сравнении с готовыми «коробочными» решениями), будет сжирать на самом дешёвом тарифе $4-6 в месяц (не считая домена, без которого можно жить, ну или бесплатный поискать), в то время как самые дешёвые коммерческие VPN-сервисы предлагают за $2-3 в месяц (при заключении контракта на пару лет, важное уточнение, без него может и подороже). Во-вторых, это всего лишь один сервер в одном дата-центре, а коммерческие VPN предлагают кучу «плюшек», самое простое - 20-30+ стран на выбор. Например, мне был бы полезен хостинг в России (так как нахожусь за её пределами) на случай, если какой-то российский сайт не открывается (был какой-то сбой на госуслугах, например - вроде починили), а родне наоборот, где-нибудь в ЕС, чтобы те же новости читать. «Перебить» такое сложно, зато плюс к приватности (абсолютной приватность считать не будем, всё-таки у облачного провайдера физический доступ к чему угодно, что я у него покупаю, но это уже паранойа).

Но в качестве игрушки (pet project) довольно интересно. Плюс можно что угодно дополнительно туда установить на вкус и цвет, никаких ограничений. Кстати, некоторые коммерческие VPN тоже якобы предлагают блокировку рекламы (не изучал, насколько хорошо они работают).

Два вопроса.

  • Первый достаточно глупый (ламерский), так как большого опыта в этом нет. Напомню, протокол IKEv2. Я устанавливаю в клиентское устройство самописный сертификат. После чего всё работает, но вылезает назойливое предупреждение (по крайней мере на Android точно) о том, что теперь мой трафик прослушивается. Почему это происходит, я понимаю (собственно, я сам его и якобы «прослушиваю»), а можно ли как-то от него избавиться? Надо как-то подписать мой сертификат каким-то корневым, уже установленным во все современные ОС? Как обычно серьёзные бизнесы делают, когда открывают свой собственный сайт в HTTPS, например? Куда они идут? Это платная услуга? Вряд ли буду это делать, просто хочу знать, если вдруг.

  • Второе - какие есть решения добавить «банерорезку» в это облако? Нужно ли устанавливать дополнительный http proxy server, или необязательно, можно средствами netfilter? Не хочется делать вообще всё вручную, может, есть где-то готовая инструкция, а ещё лучше, готовое ПО, умеющее такое? По аналогии с adfree для android - принцип той программы до безобразия прост - она добавляет в /etc/hosts все известные адреса, единственной целью которых является распространение рекламы… Блокируется не всё, но что-то.

Зачем хочу это сделать? Хочу все устройства (ipad/iphone и т.п.) пускать в интернет (что по wifi, что по мобильной сети) через этот VPN и посмотреть, как оно будет работать…

В ИТОГЕ: порешал все с сертификатами через letsencrypt и strongswan, в итоге смог заставить работать без ручной установки сертификата на хранилище в клиенте, но пришлось повозиться. Помогли разработчики этого strongswan, довольно быстро ответили. Позже дойду до того чтобы записать это куда-то в виде инструкции, а пока спрашивайте напрямую сюда, подскажу, если кому интересно будет. (инструкция по ссылке в Блокировка рекламы на своём облаке (комментарий) устарела и не работает, надо немного по-другому).

С рекламой и dnsmasq попозже разберусь - но думаю, тут всё намного проще, с x509 сертификатами мне было сложнее разобраться, а тут всё уже куда более прозрачно.

★★★★★

Последнее исправление: BattleCoder (всего исправлений: 2)

Второе - какие есть решения добавить «банерорезку» в это облако?

Да полно их.

Самый навороченный: PiHole.

Самый простой: прописать днску AdGuard’а на шлюзе и клиенты перестанут резолвить рекламные домены и прочее говно, что уменьшит количество рекламы весьма значительно.

Юниксвей: поднять свой dns и пихнуть туда список рекламных хостов https://github.com/StevenBlack/hosts.

cocucka ★★★★☆
()

Во-первых, свой хостинг - это дороговато, будет сжирать на самом дешёвом тарифе $4-6 в месяц

Scaleway Stardust ест, кажется, $2, при безлимитном трафике.

Платные VPN это якобы о plausible deniability IP-адреса, свои VPS - про обход блокировок ценой привязки к отслеживаемому до тебя IP. Они разные совсем.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

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

Серьёзные бизнесы покупают свой сертификат, не очень серьёзные выпускают бесплатный через let’s encrypt.

Про IKEv2 я хз, но сходу нагуглилось:

https://www.howtoforge.com/tutorial/how-to-setup-ikev2-vpn-using-strongswan-and-letsencrypt-on-centos-7/

cocucka ★★★★☆
()
Ответ на: комментарий от cocucka

Да полно их.

В том и дело, что глаза разбегаются, потому и спрашиваю.

Юниксвей: поднять свой dns и пихнуть туда список рекламных хостов

То есть точно также в /etc/hosts на этом VPN-сервере могу записать всё, что душа пожелает? Наверное, это правда самый простой (хоть и не самый гибкий, обновлять неудобно будет, ну это детали) вариант…

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от ex-kiev

Выразился криво, согласен. Имею ввиду свой виртуальный сервер, на котором ставишь что хочешь. В противовес «готовому решению» вроде dropbox/gmail/gdocs/ну и тысячи коммерческих коробочных vpn.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от t184256

Scaleway Stardust ест, кажется, $2, при безлимитном трафике.

О, прикольно, посмотрю, что там есть. Спасибо. Так и знал, что более дешёвый хостинг - тот, у которого бюджета на рекламу не хватило чтобы достучаться до моих ушей. =)

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Имею ввиду свой виртуальный сервер, на котором ставишь что хочешь. В противовес «готовому решению» вроде dropbox/gmail/gdocs/ну и тысячи коммерческих коробочных vpn.

Спасибо, а то я как-то запутался. %)

Под «свой сервер» имеете в виду арендованный VPS/VDS?

ex-kiev
()
Ответ на: комментарий от BattleCoder

Не, не прямо в /etc/hosts. Это только для локальных процессов будет работать. Нужно поднять, например, dnsmasq. Настроить его на чтение /etc/hosts или любого другого файла с заблокироваными хостами. А клиентам vpn прописать его как dns по умолчанию.

cocucka ★★★★☆
()
Ответ на: комментарий от ex-kiev

Да. Хотя свой в кладовке я в теории тоже рассматриваю как вариант, но у него куча недостатков… самый главный в том, что прямо сейчас железки под это дело у меня нет. :-) ну и подозреваю, даже самый экономичный одноплатник с нынешними ценами электричества может сожрать больше, чем пару долларов в месяц, но подсчитывать лениво…

BattleCoder ★★★★★
() автор топика

Про дороговато и выбор сервера. Частично это можно компенсировать, если использовать облачных провайдеров. У них можно создать сервер с биллингом по часам, а то и вплоть до секунд и удалить, когда он тебе не нужен. Если он тебе нужен не 24 часа, а на часик раз в несколько дней, то по стоимости это будет очень дёшево. Минус - пока запустится, может пара минут пройти. Ну и выбор зон у них есть, хотя обычно не слишком большой.

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

Про резку рекламы. Самый простой способ это установить свой DNS-сервер, к примеру unbound и на запросы рекламных доменов отвечать, что сайт не найден. Это режет далеко не 100% рекламы, но очень ощутимую часть и малыми усилиями. Можно найти списки рекламных доменов в интернете. Побочный эффект: субъективно такой сервер работает шустрей, чем провайдерский или какой-то популярный вроде 1.1.1.1 и тд.

Чтобы иметь возможность всю рекламу вырезать, нужно осуществлять атаку MITM. То бишь перешифровывать весь трафик своим сертификатом. Для многих приложений это вообще невозможно, у них сертификат прошит в само приложение. Для остальных - нужно будет установить свой сертификат в доверенные корневые сертификаты на каждом устройстве. Опять же не на всех устройствах такая опция есть, к примеру на моём телевизоре её нет. Ну и в этом трафике нужно будет что-то как-то подменять. Я к примеру могу сказать, что нужно подменять в трафике к ютубу, чтобы его рекламу вырезать, но какими инструментами это делать - я даже не знаю.

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

vbr ★★★
()
Последнее исправление: vbr (всего исправлений: 3)
Ответ на: комментарий от t184256

А реферальная программа у scaleway есть? Вдруг, так сказать.

Хотя нашёл ценник https://www.scaleway.com/en/pricing/?tags=compute

From €0.0001/hour - если это правда так, то это меньше доллара в год. Наверное, скрытые расходы другие… может, что-то туда не включено. Грех не попробовать.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от vbr

Про прослушивание. Тут точно не знаю, но уверен, что разницы нет, какой сертификат. Это скорей всего стандартное предупреждение для любого впна.

Это касается не только VPN, это любой TLS сертификат так работает. Знаю, плавал с тем же с корпоративными сертификатами, хе-хе.

По идее let’s encrypt должно решить мою проблему, если они подпишут мой сертификат, а не я сам, как я и сделал. Но это исключительно раздражающее сообщение, не более - ни на что не влияет.

Из значимого - на ютубе рекламу так вырезать не получится, к сожалению.

Понятно, примерно предполагал это. Что и логично.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Там чуть больше 2 долларов в месяц будет. На странице недоговаривают. Ключевое слово «From». Если тебе публичный IPv4-адрес не нужен, то будет дешевле, но он тебе же нужен.

vbr ★★★
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от vbr

Нормуль, всё равно дешевле digital ocean скорее всего (по крайней мере прямо сейчас), полезно знать про альтернативы (не знал вот).

Ну и вообще варианты с любым облаком с on demand access, которое будет запускаться с задержкой - тоже интересны. Думал об этом тоже.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от t184256

Платные VPN это якобы о plausible deniability IP-адреса, свои VPS - про обход блокировок ценой привязки к отслеживаемому до тебя IP. Они разные совсем.

Ну, если я правильно понимаю логику, то она в том, что платный сервис за счёт масштабирования на тысячи и тысячи пользователей может за сущие копейки поднять изощрённую структуру серверов в разных странах с разными дата-центрами и навешать туда разных плюшек, в том числе защищать от отслеживания по IP, но не только.

Самому всё тоже самое сделать можно, но наверное выйдет неоправданно дорого, сложно и долго. Впрочем, в каких-то случаях может и оправданно.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от cocucka

Лол. Корпоративный ноут с микрософтовскими аккаунтами сдох :) Не может залогиниться в свои сервисы и висит. И это при отключенном вайфае!

untitl3d
()
Последнее исправление: untitl3d (всего исправлений: 1)
Ответ на: комментарий от BattleCoder

Да. Хотя свой в кладовке я в теории тоже рассматриваю как вариант, но у него куча недостатков… самый главный в том, что прямо сейчас железки под это дело у меня нет. :-)

Это уважительная причина.

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

Это не так сложно. Неттоп на Celeron с TDP 10W в качестве сервера можно принять средню нагрузку в 12,5W, (12,5W*730,5h)/1000≈9kWh если kWh по 0,45€ то в месяц выходит 4 евро.

Вы правы, VPS выгоднее.

ex-kiev
()
Ответ на: комментарий от untitl3d

Да, кроме шуток, я в курсе, и такой вариант даже рассматриваю, скидка вкусная. И не только у них. Мне интереснее в образовательных целях поковырять. :)

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от untitl3d

Видимо, причина в том же, как объяснили здесь Блокировка рекламы на своём облаке (комментарий)

Это технически слишком сложно, не на уровне DNS, а на уровне анализа трафика, а он ещё и зашифрован. Слишком хитро там рекламу встроили, поэтому и берут за неё так хорошо…

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от untitl3d

Это да. Не везде есть возможность его установить. Вот вам телевизор - типичный пример. Как-то перепрошивать его наверное в теории возможно… если там android?

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от t184256

О, я правильно понимаю, что в отличие от adblock, который режет нативную гугловскую рекламу, это режет (или пытается, на основе обучающих данных) интеграции, что автор ролика вставляет сам?

Тут я уже встану немного на сторону «show acceptable ads», во многих случаях эти интеграции не так уж назойливы, в чём-то по теме ролика и вполне их можно пролистать на пониженной громкости, а за это время сгонять чай/кофе заварить.

А вот гугловская реклама (если её не отключать, ну или не купить их подписку, видимо) до безобразия назойливая и раздражает, и отвлекает от самого видео.

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от vbr

При чем тут расширение для браузера?

Sponsorblock — это база и API, приделан, скажем, к yt-dlp или форкам Newpipe. Если особо пещерные личности смотрят YouTube браузером, то, видимо, есть костыль и для них?

t184256 ★★★★★
()
Ответ на: комментарий от BattleCoder

Дык вот. Неужели на уровне модема нельзя прирезать. LG поушли блоб, там ничего не поправить. Есть вроде альтернативные прошивки, но я боюсь окирпичить телек, 86" будет обидно выкидывать.

untitl3d
()
Ответ на: комментарий от cocucka

Ещё глупый вопрос. Возможно, я рано или поздно на него найду ответ, но… это уже второй мануал, в котором предлагают сохранять имена и пароли в виде открытого текста в ipsec.secrets…

Посмотрел тут https://wiki.strongswan.org/projects/strongswan/wiki/IpsecSecrets - и не похоже, чтобы можно было «из коробки» настроить более или менее вменяемую систему аутентификации вроде LDAP?

Единственное, что вижу в примерах где пароль якобы не открытым текстом - NTLM - https://wiki.strongswan.org/projects/strongswan/wiki/NTLMSecret

Однако там md4 hash - как по мне, штука устаревшая на момент 2022 года?.. лучше бы что-то вроде sha256… ну и подсоленный, разумеется.

Никакого enterprise уровня решения мне, конечно, не надо. Но хотелось бы уж хотя бы такой же текстовый файл или sqlite с подсоленными хешами. Мне искать другой vpn-сервер, strongswan такого не умеет?

Если я правильно понимаю, то есть такой plugin https://docs.strongswan.org/docs/5.9/plugins/eap-gtc.html

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

BattleCoder ★★★★★
() автор топика
Последнее исправление: BattleCoder (всего исправлений: 1)
Ответ на: комментарий от cocucka

Я тут решил немного повозиться по этому учебнику. Похоже, он немного устарел.

С сертификатом соединение устанавливается, а вот без него всё-таки нет.

Потом только прочитал последний комментарий.

This no longer works with the latest strongswan. It doesn’t simply support a chain pem file. You have to trust the full chain on the client, which leaves no benefit of using letsencrypt https://wiki.strongswan.org/projects/strongswan/wiki/FAQ#X509-Certificate-chain-files

Видимо, не взлетит то, что я хотел. Хотя не понял до конца, почему. Мне лучше альтернативный VPN сервер поискать, если хочу упростить клиентскую конфигурацию? Чтобы username+password+hostname?

BattleCoder ★★★★★
() автор топика
Ответ на: комментарий от BattleCoder

Блин, я ипсеком баловался лет 12 назад на фряхе. Судя по гуглу, strongswan можно скрестить с freeradius. Самый, наверное, простой вариант будет.

cocucka ★★★★☆
()
Последнее исправление: cocucka (всего исправлений: 1)