Привет.
У меня есть vps в европе на debian. Я получаю к нему доступ с помощью wireguard и shadowsocks.
Я хочу, чтобы клиенты моего vps не могли через него зайти на некоторые адреса. Например, я хочу запретить заходить на sber.ru, чтобы люди случайно не зашли туда с иностранного ip и не были заблокированы сбером.
На первом шаге я хочу блокировать не по URL, а хотя бы по IP.
Как это сделать? Я правильно понимаю, что надо использовать iptables table=FILTER & chain=FORWARD? iptables -A FORWARD -d 5.255.255.242 -j DROP
так не сработало. Клиент может пинговать 5.255.255.242. Где я ошибся?
На втором шаге я хочу блокировать по url. Я хочу сделать это так:
регулярно поддомены домена sber.ru (вроде находил такие сервисы), регулярно резолвить ip этих доменов и добавлять в iptables … drop
найти подсеть, принадлежащую сберу и заблокировать ip диапазон
Нормальный вариант?. Я понимаю, что клиент может настроить свой dns и мое решение не сработает на 100%
Пару лет назад искал сети Сбера для мобильного приложения. Сейчас может ещё что-то добавилось.
194.54.12.0/22
84.252.146.0/24
185.157.97.0/24
185.174.128.64/26
непосредственно по домену проще всего сделать через прокси
теоретически можно по SNI. поставить ndpi и настроить его на фильтрацию определенных SNI, как это делает РКН
сбер блочит аккаунт? я десятки раз заходил в акк с разных впнов, и в тинькофф тоже.
Кстати, FORWARD правило сработает только для wireguard, для shadowsocks надо в OUTPUT, или редактировать конфиг на клиенте
Спасибо. Сделал -I, сработало для WG. И еще сделал iptables -A PREROUTING -t raw -s "${prefix}" -j DROP;
Но для Outline / Shadowsocks это не сработало. Я подумал, дело в том, что для outline пакеты не проходят через nat, а как бы рождаются на самом vps. И сделал iptables -I OUTPUT -d 5.255.255.242 -j DROP
Но это тоже не сработало. Подскажите пожалуйста, как заблокировать этот адрес для outline через iptables?
Ну я сбер для примера привел. Знаю точно недавно ВТБ блокировал. Помимо банков, я хочу заблокировать еще рабочие подключения, чтобы случайно при включенном vpn не подставиться перед безой.
shadowsocks это прокси, поддерживает только TCP и UDP протоколы, команда ping работает с протоколом ICMP, и некоторые клиенты shadowsocks на запрос ping обычно отсылают фейковый ответ
первый пинг - напрямую, настоящий
второй пинг - через sing-box tun, фейк
оптимизацию списка лучше делать через прогу iprange или aggregate (можно pipe сразу после grep): подсеть ростелекома 2664 линий в whois radb, после прогона iprange становится 756 линий
я добавил 30 тыс DROP правил и пропускная способность VPS снизилась до 1мегабита… Поэтому вместо множества правил
-A PREROUTING -t raw -s “${prefix}” -j DROP
лучше использовать ipset create, add и использовать одно правило
-m set --match-set ipset_name src -j DROP
с ним снижения производительности не заметил (даже на all листе с 500к строк отсюда)
еще по логике лучше бы использовать DST а не SRC блок, нет?