![]() |
|
|
#1 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Нигде не нашел сабжа с белым листом и удобной настройкой. Например показывать последние 20-30 заблокированных запросов и добавлять в белый лист одним кликом.
Есть AdBlock, но его (в дефолтном исполнении) нельзя привязать к определенному MAC'у Нет ли желающих поразмышлять над реализацией и интеграцией в Luci? |
|
|
|
|
|
#2 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Появилась мысль. на lan поднимаем виртуальный интерфейс на котором запускается вторая копия dnsmasq с альтернативным конфигом.
Для dhcp клиентов можно задать второй интерфейс, который будет возвращать страницу заглушку с локального uhttpd о том что доступ заблокирован. На заглушке сделать кнопку "запросить доступ", которая пишет в лог запрошенный hostname и mac клиента. В люсю добавить страничку с обработкой этих запросов. Файерволом заблочить передачу наружу запросов на 53 порт. Пока ни разу не представляю как все это реализовать. 1. Сложность с IPv6. виртуальный интерфейс должен подхватывать и адрес 6й версии, но он зависит от того что мне выдал провайдер, я создал интерфейс br-lan.1, попытался получить на него адреса с br-lan с помощью udhcpc, но он не подхватывается. подозреваю что что-то делаю не так... 2. у штатного dnsmasq в openwrt запутанный init.d скрипт. в котором я не нашел ссылку на /etc/config/dnsmasq. как правильно запустить его второй раз в системе с указанием пути к альтернативному конфигу? 3. ...следующие вопросы буду задавать по мере понимания ответов на предыдущие... Последний раз редактировалось Tohin; 04.04.2020 в 20:26. |
|
|
|
|
|
#3 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Так. а тут буду отвечать на свои вопросы.
1. Поднимаем второй ip в локалке. без vlan /etc/config/network Код:
config interface 'Virtual'
option proto 'static'
option ipaddr '192.168.1.10'
option netmask '255.255.255.0'
option ip6addr 'fd12:3456:789a:1::1'
option ifname 'br-lan'
|
|
|
|
|
|
#4 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Настройка DNS для host выглядит заморочно:
/etc/config/dhcp Код:
config host
option name 'test'
option mac 'A0:B6:C6:0B:2D:9E'
option ip '192.168.1.154'
option tag 'test'
Код:
dhcp-option=net:test,6,192.168.1.2 dhcp-option=net:test,option6:6,2620:119:35::3 5,2001:4860:4860::8888 UPD: Оказывается dnsmasq в качестве DHCP сервера работает только на IPv4. а на IPv6 трудится odhcpd. Что за жесть? Последний раз редактировалось Tohin; 05.04.2020 в 17:51. |
|
|
|
|
|
#5 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Вроде получилось. Криво конечно.
Развернуть для просмотраСозданы правила iptables (все строки надо повторять для каждого фильтруемого устройства):
Заблокирован трафик IPv6 через web Luci Код:
IPv6-traffic From any host in lan with source 00:00:00:00:00:01 To any host in wan Refuse forward Код:
iptables -t nat -I PREROUTING -i br-lan -m mac --mac-source 00:00:00:00:00:01 -p udp -m udp --dport 53 -j REDIRECT --to-port 585 #Повторить строки для всех фильтруемых устройств Создана страница заглушка для заблокированных сайтов: Код:
/etc/config/uhttpd
config uhttpd 'second'
list listen_http '0.0.0.0:80'
list listen_https '0.0.0.0:443'
list listen_http '[::]:80'
list listen_https '[::]:443'
# Server document root
option home '/mnt/www/uhttpd'
option error_page '/index.html'
option rfc1918_filter '1'
option max_requests '3'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
option cgi_prefix '/cgi-bin'
option script_timeout '60'
option network_timeout '30'
option tcp_keepalive '1'
Создан конфиг для фэйкового ДНС сервера /etc/dnsmasq2.conf Код:
# fake dns for parent filter resolv-file=/tmp/resolv.conf.auto user=dnsmasq group=dnsmasq log-queries log-facility=/var/log/dnsmasq.log no-poll domain-needed bogus-priv #listen-address=192.168.1.10 cache-size=150 #allowed sites server=/yandex.ru/# server=/googleapis.com/# server=/wikipedia.org/# server=/mos.ru/# server=/dnevnik.ru/# server=/microsoft.com/# server=/google.com/# #restrict all other address=/#/192.168.1.1 Код:
/usr/sbin/dnsmasq -C /etc/dnsmasq2.conf -x /var/run/dnsmasq/dnsmasq.restrict.pid -p 585 -k --log-facility=/mnt/data/dns-logs/dnsqueres.log& [свернуть] Косяки: Почему-то не логируются запросы. Нет удобного веб-интерфейса. Очень интересно как это реализовано в заводских прошивках роутеров. |
|
|
|
![]() |
| Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|