VPN DNS филтер: блокирање имена не блокира рекламе
Правило у dnsmasq-у одговара на имена са NXDOMAIN; оно никада не чита страницу. Упоредите то са оним што ради блокер на страни клијента пре него што обећате уклањање реклама.
Једна линија у dnsmasq-у може одговорити на име са NXDOMAIN и то је цео механизам. Оно никада не чита HTML, никада не прегледа путању захтева и никада не види шта апликација ради са везом коју је већ отворила. Поређење са проширењем прегледача је зато поређење два различита посла. Једно одлучује да ли се име разрешава; друго одлучује шта се дешава након тога.
Шта филтер имена заправо контролише
Опција address=/metrics.example/, без ичега после последње косе црте, чини да резолвер врати NXDOMAIN за то име и његове поддомене. Остављање адресе празном је важан део: тиме се клијенти не шаљу на неповезани заменски сервер и не претвара се loopback адреса у право одредиште. dnsmasq приручник описује тај облик као одричан одговор, а не као преусмеравање.
Све што правило може да уради произлази из те једне одлуке. Клијент који пита овај резолвер добија одричан одговор; клијент који пита други резолвер добија оно што тај резолвер каже. Филтер не зна коју би путању, који упитни низ ни који налог апликација користила.
Та грануларност је важна јер једно име хоста често служи у неколико сврха. Приступне тачке за пријаву, слике и праћење могу делити домен, а правило које уклони цело име може уклонити и ток рада. Политика на нивоу имена мора прихватити тај компромис или изабрати ужа имена.
Где се блокер на страни клијента разликује
Проширење прегледача види захтев пре него што оде, па може да упари путању URL-а, откаже одређени захтев и сакрије елемент који би приказао резултат. Може да дозволи example.com/article док одбија example.com/ads/, што ниједан DNS одговор не може да изрази. Тај поглед на нивоу путање је способност коју резолвер једноставно нема. Зато се листа филтера направљена за један алат ретко понаша исто у другом.
Цена је обухват. Та заштита живи унутар једног прегледача, у једном профилу, на једном уређају и нестаје када корисник пређе на другу апликацију. DNS филтер подешен на gateway-у покрива сваки уређај који користи резолвер gateway-а, укључујући уређаје на које се не може инсталирати ниједно проширење.
Ниједно решење није потпуно само по себи. DNS филтер не може да уклони идентификатор који је страница већ послала, а проширење прегледача не може да заштити апликацију која га никада не учита.
Путања резолвера одлучује да ли се ишта од тога примењује
VPN може да оглашава DNS сервер, а ипак не прима сваки упит. Прегледач са подешеним шифрованим DNS-ом, апликација са сопственим резолвером или уређај на мрежној путањи која искључује gateway гледаће негде другде. Мобилне платформе све чешће нуде подешавање приватног DNS-а које тихо надјачава оно што тунел предлаже.
Зато тестирајте путању, а не политику. Упитајте намеравани резолвер директно са gateway-а, затим га упитајте са клијента и упоредите, па погледајте да ли име које би требало бити блокирано заиста пада у апликацији коју корисник покреће.
Кеширани одговори и отворене везе чине ово непрегледним. Страница која је већ учитала своје ресурсе наставиће да ради након промене правила, па је свежа веза бољи тест од поновног учитавања старог таба.
Тестирајте оба смера пре него што тврдите резултат
Користите намерно блокирано документационо име, дозвољено јавно име и приватно име које сервису треба:
$ dig +short metrics.example @10.40.0.53
$ dig +short example.com @10.40.0.53
$ dig +short intranet.corp.internal @10.40.0.53
Празан одговор за блокирано име, нормална адреса за јавно и приватна адреса за интерно заједно показују да филтрирање, разрешавање на вишем нивоу и локални записи раде. Ако сва три падну, гледате проблем са вишим нивоом или са listener-ом, а не са филтером.
Држите тврдњу уском у свему што објављујете интерно. Ово је филтрирање домена на резолверу, а не преглед садржаја, не филтрирање путања и не обећање да никога не прате. Уз правила наведите власника политике, путању изузетка и период чувања упита, јер филтер који бележи свако претраживање има сопствену цену за приватност.