Поможем провайдерам в эпоху дефицита сетевого оборудования, заблокируем самостоятельно ресурсы на своих роутерах и, таким образом, снизим нагрузку на их оборудование!
Зарубежные сервисы пусть знают, что их ресурсы никому не нужны и мы сами у себя их блокируем!
Списки доступны в нескольких форматах:
- RAW - это список доменов и субдоменов
- Dnsmasq-ipset - список для Dnsmasq в формате ipset (OpenWrt <= 21.02)
- Dnsmasq-nfset - список для Dnsmasq в формате nftables set (OpenWrt >=23.05)
Конфигурация для Dnsmasq добавляет все зарезолвенные IP-адреса в set vpn-domain
. И можно оперировать этим списком. Заблокировать, конечно же, все эти IP к чертям.
Есть два списка, один для людей, находящихся в России, второй для людей заграницей.
- Ресурсы, которые блокируются, в том числе и зарубежные ресурсы, которые сами блокируют российские подсети. (inside)
- Списки российских ресурсов, которые доступны только для российских подсетей. Для людей за границей, которым нужен доступ к российским сервисам. Использовать вместе с VPN расположенным в России. (outside)
Находятся в каталоге Russia.
Inside:
Outside:
Ресурс play.google.com есть только в списках без wildcard.
Тоже самое касается и других ресурсов, с подобными субдоменами.
Список заблокированных ресурсов в Украине. Списки берутся с ресурсов https://uablacklist.net/ и https://zaborona.help/.
Преобразуются в формат Dnsmasq. При этом удаляются домены с кириллическими буквами.
Находятся в каталоге Ukraine.
Приветствуется добавление новых доменов и удаление неактуальных. Есть несколько вариантов:
- Для каждого списка создана тема в Discussion. Пишите туда отдельные домены или прям список доменов сервиса
-
Сделать PR. Списки находятся в
src
. Если у ресурса больше двух доменов, сгруппируйте их отдельным списком и вставьте заголовок ресурса с помощью#
. Ориентируйтесь на то, как уже сделаны другие -
Напишите в чат
Пример блокировки по списку доменов на роутере с OpenWrt 23.05.
Нужен dnsmasq-full. Загружаем конфиг в tmp/dnsmasq.d. Создаём ipset, все пакеты к ip-адресам из этого ipset будут дропаться.
cd /tmp/ && opkg download dnsmasq-full
opkg remove dnsmasq && opkg install dnsmasq-full --cache /tmp/
cp /etc/config/dhcp /etc/config/dhcp-old && mv /etc/config/dhcp-opkg /etc/config/dhcp
cd /tmp/dnsmasq.d && wget https://raw.githubusercontent.com/itdoginfo/allow-domains/main/Russia/inside-dnsmasq-nfset.lst -O domains.conf
uci add firewall ipset
uci set firewall.@ipset[-1].name='vpn_domains'
uci set firewall.@ipset[-1].match='dst_net'
uci add firewall rule
uci set firewall.@rule[-1]=rule
uci set firewall.@rule[-1].name='block_domains'
uci set firewall.@rule[-1].src='lan'
uci set firewall.@rule[-1].dest='*'
uci set firewall.@rule[-1].proto='all'
uci set firewall.@rule[-1].ipset='vpn_domains'
uci set firewall.@rule[-1].family='ipv4'
uci set firewall.@rule[-1].target='DROP'
uci commit
service firewall restart && service dnsmasq restart
Список Russia inside формируются из списка https://community.antifilter.download/ и списка src/Russia-domains-inside.lst
. Они объединяются, удаляются повторы и сортируются по алфавиту.
Список Russia outside формируется из списка src/Russia-domains-outside.lst
. Также происходит сортировка по алфавиту.
Dnmasq работает по wildcard. Это означает, что при добавлении домена domain.com
, в списки IP-адресов будут добавляться также все поддомены subdomain.domain.com
. Поэтому Dnsmasq списки состоят только из доменов второго уровня. Повторы удаляются, удаляются субдомены с google.com
и происходит сортировка.
Списки обновляются при каждом коммите в репозитории с помощью GitHub Actions. Также скрипт convert.py
запускается каждые 8 часов, чтобы синхронизировать списки со сторонними сервисами.
При формировании Dnsmasq списков происходит тестирование конфигов с помощью Dnsmasq action.
Да, это приветствуется. Для этого создайте issue или напишите в чат.
- Название страны
- Список заблокированных ресурсов. Нет ограничений на количество, их может быть хоть 5, хоть 100. Можно будет пополнять со временем
- Есть ли ресурсы, которые уже собирают такие списки
- Название формата и пример форматирования доменов в этом формате
- Как этот формат можно использовать, с примером (Программа, конфигурация)
- Можно ли как-то тестировать список, если да, то как. Это нужно, чтобы пользователи всегда имели рабочий конфиг
Также вы можете создать PR с уже необходимыми правками. В этом случае опишите это всё в его Description.