Российские ресурсы, недоступные извне. Автоматизация доступа к ним при работе через VPN
Находясь в России, пришлось пустить весь домашний трафик через VPN на зарубежном сервере. +40мс к пингу в ежедневной работе не замечается, но возникла новая сложность: госуслуги и даже некоторые магазины не пускают с иностранных IP. Думаю, проще составить список того, что не работает из-за рубежа, чем наоборот.
Проблемы и задачи.
1. Нужен список важных российских ресурсов, недоступных из-за рубежа. Сходу найти готовый такой не удалось, да и не тратил много времени на поиски.
2. Прописывать статические маршруты в роутере вручную для каждого ресурса оказалось неприятной и трудоёмкой ручной работой. Более того, некоторые сервисы по nslookup отдают список всех своих IP, что хорошо. А некоторые – всего один, и каждый раз разный. Таким образом, прописав один IP, не факт, что не придётся повторять процедуру через 5 минут, полчаса или день. Нужно всё это как-то автоматизировать.
Решения.
1. Список составил сам и выложил на github в формате csv, поля – хост, категория, подкатегория. Кроме недоступных извне, имеет смысл также добавить туда стриминговые ресурсы.
2. Нужна программа, которая будет парсить список из п. 1 и сама прописывать маршруты к хостам.
Далее про программу.
VPN настроен на роутере Keenetic. Роутер даёт возможность по ssh прописать постоянные маршруты.
Каким предполагался алгоритм работы программы:
1. При старте считывает настройки, если их нет – запрашивает у пользователя.
2. Парсит файл недоступных ресурсов hosts.csv
3. Парсит файл приватных недоступных ресурсов private_hosts.csv (рабочие vpn-хосты, финансовые сервисы и т. п.) – то, что не нужно выкладывать в публичный доступ.
4. Генерирует файл с командами роутеру routes.txt
5. Запускает plink из поставки putty с параметрами доступа к роутеру и сгенерированным на выполнение файлом.
Т. к. планирую переход с pl/sql на java, то в целях обучения программу решил писать на java.
При реализации программы возникли следующие сложности:
1. Есть ресурсы, которые показывают только один IP из нескольких, по факту запроса. Если по nslookup ресурс отдаёт всего один IP – то нужно повторять процедуру десятки раз.
2. Необходимо учесть, что каждый ресурс может иметь версию с www-префиксом. Для каждого ресурса, если он не начинается с www, нужно запрашивать IP и для варианта с www-префиксом. Таким образом избавляемся от необходимости в файле hosts.csv указывать дважды один ресурс.
3. plink не смог передать файл с командами роутеру используя параметр -m, но у него получается передавать команды напрямую с параметром -batch
Теперь я избавился от ручного труда по прописыванию маршрутов в роутере.
Дальнейшее развитие программы:
1. Возможно, десятки раз резолвить доменное имя в попытке выявить все IP адреса – не лучшая идея, и есть способы получше?
Насколько я понимаю, в кинетиках у команды iproute есть недокументированный параметр – всё, что после символа ! в конце команды, интерпретируется как пользовательское описание маршрута и соответственно отображается в личном кабинете роутера. Чтобы работало более универсально, можно предусмотреть внешний шаблон формирования команды из текстового файла.
Думаю многие задаются вопросом: а куда вложиться, чтобы приумножить? Таким же вопросом задался и я, поэтому составлю свой топ ниш, в которые я вкладывался и потерял деньги…
🌿 ОЗЕЛЕНЕНИЕ ПРОСТРАНСТВА – КРАСОТА И УЮТ ВАШЕГО ДОМА 🌿 Хотите наполнить своё пространство свежестью и гармонией? Мы создаём стильные и уютные интерьеры с живыми и искусственными растениями, идеально дополняя любой дизайн. 🌱 Что мы предлагаем? — Подбор и размещение растений для дома, офиса и других помещений — Озеленение балконов, террас, садов…
Цены доходят до $120 за единицу товара — это 10,6 тысячи рублей по курсу ЦБ на 8 марта 2025 года.
Банки начали незаметно снижать ставки по вкладам. Почему это происходит и стоит ли срочно зафиксировать высокий процент, пока не стало слишком поздно?
В мире digital-маркетинга контент – это король. Но чтобы этот король правил балом, ему нужна хорошая свита, то есть, SEO-оптимизация. Многие думают, что SEO – это сложно и скучно, но на самом деле, это просто набор правил, которые помогают поисковым системам понять, о чем ваша страница, и отображать ее в релевантных результатах поиска.
Manus — это универсальный ИИ инструмент, который может автономно выполнять задачи в интернете от и до от вашего имени (а не просто отвечать на вопросы или готовить отчеты, пусть и хорошие). По словам разработчиков, им уже воспользовались свыше 10 млн пользователей. Расскажу, что о нем сейчас известно.