Jump to content
  • 0

Keenetic прокси. Делегировать DNS резолвы родительскому прокси


loposk

Question

Привет.

У менять есть squid в локальной сети с конфигом:

...
acl filtered dstdom_regex "/etc/squid/filtered-sites.txt"
cache_peer 192.168.88.103 parent 8003 0 no-query no-digest proxy-only allow-miss name=k3s_proxy
cache_peer_access k3s_proxy allow filtered
cache_peer_access k3s_proxy deny  all
never_direct      allow     filtered 
http_port 3127
...

Содержимое /etc/squid/filtered-sites.txt

(^|\.)ifconfig\.me$

Благодаря этому, если в параметрах Windows указать, что нужно использовать прокси для выхода в интернет, все запросы начинают идти через этот squid. Squid направляет трафик, который идет на домены, попадающие под регулярку (^|\.)ifconfig\.me$, в родительский прокси, который уже перенаправляет трафик за пределы РФ. А весь остальной трафик идет напрямую.

 

Задача: нужно сделать так, что трафик со всех устройств в домашней сети шел через этот прокси без изменения каких-либо конфигураций в устройствах.

Думал, что использование в keenetic функционала Клиент прокси решит мою проблему, но как выяснилось не совсем. Keenetic действительно перенаправляет весь трафик в squid, который я ему указываю, но так же keenetic еще и выполняет DNS резолвы. Из-за этого на squid приходят запросы не с именем ресурса, который запрашиваю, а с ip адресом этого ресурса. 

Лог squid-а, когда указываю в параметрах windows использовать прокси:

1725092736.283  26907 192.168.88.7 TCP_TUNNEL/200 17430 CONNECT ifconfig.me:443 - FIRSTUP_PARENT/192.168.88.103 -

Лог squid-а, когда говорю указываю в keeneic направлять весь трафик в squid:

1725093515.100  27427 192.168.88.7 TCP_TUNNEL/200 17489 CONNECT 34.160.111.145:443 - HIER_DIRECT/34.160.111.145 -

Из-за того, что в squid приходит уже запрос на подключение не к ifconfig.me:443, а к 34.160.111.145:443, регулярка не срабатывает и трафик не направляется в родительский прокси.

 

Можно ли сделать так, что бы клиент прокси в keenetic-е не резолвил DNS имена?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Скорее всего ничего не выйдет.

Proxy-интерфейс Keenetic работает в "прозрачном" режиме и не видит заголовков, к нему в интерфейс приходят уже просто пакеты на какой-то IP-адрес. Чтобы была возможность передавать доменные имена в заголовках, вам нужен "явный" proxy-сервер.

Link to comment
Share on other sites

  • 0

Частичное решение проблемы.

В роутере сказал: ip dhcp pool _WEBADMIN option 252 ascii http://wpad.local/wpad.pac

И в локальной сети раздаю файл http://wpad.local/wpad.pac

С примерно таким содержимым:

function FindProxyForURL(url, host)
{
    if (isInNet(host, "192.168.88.0", "255.255.255.0")) {return "DIRECT";}
    if (shExpMatch(host, "127.0.0.1" )) {return "DIRECT";}
    if (dnsDomainIs(host, ".local")) {return "DIRECT";}
    if (dnsDomainIs(host, "ifconfig.me")) {return "PROXY 192.168.88.103:8003";}
    // и т.д.
    return "DIRECT";
}

На компьютерах есть опция для автонастройки прокси, которая работает балгодря 252 опции в dhcp сервере. На телефоне пришлось прописать урл http://wpad.local/wpad.pac в настройке сети в разделе URL автокофигурации прокси.

 

Телевизор и android tv приставка игнорируют 252 опицию DHCP сервера и не дают в своих настройках указать URL автокофигурации прокси.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...