Skip to content

mglants/opnsense-antizapret

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Черновой вариант работы АнтиЗапрет на OPNSense.

Логика работы:

  • при запросе DNS, если адрес есть в чёрном списке, knot-resolver оптправляет запрос на 127.0.0.1:5355, на котором висит dns-proxy.py
  • dns-proxy.py запрашивает IP адрес у DNSCrypt-Proxy и добавляет этот адрес в таблицу antizapret и возвращаяет knot-resolver
  • весь трафик, подпадающий под адреса в таблице antizapret, отправляется в VPN средствами opnsense

Недостающие компоненты собираются из ports или устанавливаются через pkg install

Необходимо

  • настроить DNSCrypt-Proxy на 127.0.0.1:5353
  • создать в firewall aliases таблицу antizapret
  • поднять vpn (например, wireguard) и настроить маршрутизацию черезе vpn для адресов назначения из таблицы antizapret
  • скопировать содержимое в /root/antizapret/. Из папки opnsense скопировать скрипт запуска dnsproxy в /usr/local/etc/rc.d, добавить запуск в /etc/rc.conf
  • настроить knot-resolver
  • добавить в планировщик вызов скрипта doall.sh укаждые несколько часов.

Основано на

Зависимости

  • Bash
  • cURL
  • GNU coreutils
  • GNU AWK (gawk)
  • sipcalc
  • idn
  • Python 3.6+
  • dnspython 2.0.0+
  • ???

Конфигурационные файлы

  • {in,ex}clude-{hosts,ips}-dist — конфигурация дистрибутива, предназначена для изменения автором репозитория;
  • {in,ex}clude-{hosts,ips}-custom — пользовательская конфигурация, предназначена для изменения конечным пользователем скрипта;
  • exclude-regexp-dist.awk — файл с различным заблокированным «мусором», раздувающим PAC-файл: зеркалами сайтов, неработающими сайтами, и т.д.
  • config.sh — файл с адресами прокси и прочей конфигурацией.

Установка и запуск

Склонируйте git-репозиторий, отредактируйте config/config.sh, doall.sh и process.sh под собственные нужды, запустите doall.sh.

Установика и сборка пакетов

opnsense-code ports && cd /usr/ports/dns/knot-resolver/ && make install
opnsense-code ports && cd /usr/ports/lang/gawk/ && make install
opnsense-code ports && cd /usr/ports/dns/py-dnslib/ && make install

Измените opnsense/kresd.conf под собственные нужны и скопируйте в /usr/local/etc/knot-resolver

Выполните установочный скрипт

bash opnsense/install.sh

About

Черновой вариант работы АнтиЗапрет на OPNSense.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 45.9%
  • Awk 26.5%
  • Shell 22.2%
  • Lua 5.4%