Надо было мне разобраться получше с iptables и ansible, а для этого нужна задачка. Задачка была выбрана такая: поднять свой VPN сервер с возможностью резки рекламы и прочего spyware.
Суть происходящего при резке рекламы с помощью DNS сервера состоит в том, что когда клиент спрашивает сервер какой IP адрес сопоставлен имени хоста, то DNS сервер отвечает ему 0.0.0.0 В итоге клиент ходит сам к себе и быстро получает отказ, так что не пользуется для этого модемом связи в случае с телефоном. Что экономит батарейку не просто на процент, а при моем режиме использования телефона время автономной работы выросло с 8-10 часов до 23.5. Специально засекал и был мягко говоря удивлен. Как показала практика 85% запросов от телефона это spyware.
Ansible был выбран потому, что для настройки всего даже на настраиваемый сервер заходить не надо, просто нужен доступ по ssh к нему. После настройки конфиги для подключения к VPN будут лежать в папке с плейбуком. Да и сам запуск это одна команда. Не люблю я запоминать, что я там пять лет назад настроил и Ansible для того что бы этого не делать идеален, не говоря уже о прочих его достоинствах. Запустил у себя на ноуте плейбук, он все тебе на сервере настроил, потом отсканил QR код на телефоне, работает.
В качестве DNS сервера с возможностью резать телеметрию и прочую гадость был выбран Pi-hole DNS. Просто потому, что он очень не требователен к ресурсам и мне хватает на амазоне t3.nano ноды, которую мне дали бесплатно на год. При этом я видел на DigitalOcean готовый дрополет Pi-hole VPN, но он прибит к этому провадйеру, а мой плейбук я пробовал уже на двух разных и он просто пашет, плюс там видно все, что он делает. Плюс ко всему при установке он закачивает более 5млн бан записей в DNS что бы не искать их потом.
VPN же был выбран Wireguard, так как он прост как палка и настраивается соответственно очень просто.
В итоге порядок действий:
Сделать себе VPS где-то с ubuntu 22.04. Может и на другом заработает деб дистре, не проверял.
Сделать доступ на нем по ssh.
Открыть нужные порты на брандмауре провайдера.
Запустить плейбук задав пару настроек (на гите все описано). Я это с ubuntu делаю, не знаю где еще будет работать.
Подрубить телефон по QR коду.
Наслаждаться.
Сам плейбук опубликован тут: https://github.com/3DRaven/pi-hole2vpn/
Я в очередной раз экспериментами сломал VPN, так как у меня есть возможные планы по развитию плейбука небольшому. Перед поездкой на выходные надо было поднять снова. Минута времени и все готово. Старый VPS я просто прибил и поднял пустой, задал в настройках новый адрес и все. В поездке очень полезно было то, что телефон не садится пока в кармане лежит. Может кому пригодится. Ну и в целом VPN штука не бесполезная ;)
P.S. от статистики же в 85% запросов в блоке я просто был в шоке небольшом. Это не сразу так будет, а постепенно, потому, что spyware долбит все время, а вы нет. Особо злобный в этом плане branch.io Когда же мне надо что то разблочить, то захожу в админку и добавляю в вайтлист домен. Таких у меня пока пять штук всего, которые были заблокированы, а мне не надо их блочить.
