URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 95745
[ Назад ]

Исходное сообщение
"Почему не работает dns, заданный для vpn клиента"

Отправлено aler , 26-Авг-14 18:43 
Добрый день!
Вот такая ситуация.
Школа.
Задача: Нелья пускать учеников на злосайты и тп. Учителям можно всё.

Решил ограничивать ресурсы интернет с помощью skydns (https://www.skydns.ru/).

Есть сервер SRV на FreeBSD9.3. Он шлюз для школьной сети в интернет. На нём настроены dhcp, кэширующий dns, vpn, nat (isc-dhcp43-server-4.3.0_2, mpd5-5.7_1, BIND 9.9.5, pf).
Локальный адрес SRV 192.168.1.100.

Все школьные ПК получают адреса от dhcp:
#/usr/local/etc/dhcpd.conf
option domain-name "school.local";
default-lease-time 600;
max-lease-time 7200;
authoritative;
ddns-update-style none;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.60;
option domain-name "school.local";
option domain-name-servers 192.168.1.100;
option broadcast-address 192.168.1.255;
option routers 192.168.1.100;
option subnet-mask 255.255.255.0;
}

Настройки dns:
#/etc/resolv.conf
search school.local
nameserver 127.0.0.1

#/etc/namedb/named.conf
...
        listen-on       { 127.0.0.1; 192.168.1.100; };
...
        forwarders {
            193.58.251.251; //SKYDNS
                   };
...

Использую пакетный фильтр PF, NAT в нём:
#/etc/pf.conf
#MACROS
ext_if="sis0" #WAN (default)
int_if="em0" #LAN

vpn_net="172.16.2.0/24"
local_net="192.168.1/24"
icmp_types = "echoreq"

#TABLE
table <private> const {10/8, 172.16/12, 192.168/16}
table <trust_host> {1.1.1.1}
table <sshguard> persist
table <badhost> persist file "/etc/pf.badhost"

#SETS
set block-policy drop
set skip on lo
scrub in all

#NAT RDR
nat on $ext_if from $local_net to !$local_net -> $ext_if:0
nat on $ext_if from $vpn_net to !$local_net -> $ext_if:0

#RULES
antispoof quick for $ext_if

block inet6
block in quick on {$ext_if} from <sshguard> to any label "Ssh bruteforce"
block from <badhost> label "Block badhost"
block in on {$ext_if}
block out on {$ext_if} from <private> to any label "Block out private addr"

pass in on {$ext_if} from <trust_host> label "Trust hosts"
pass in on {$ext_if} proto tcp to port ssh
pass in on {$ext_if} inet proto icmp from any to any icmp-type $icmp_types keep state
pass out on {$ext_if}


Всё работает, ресурсы запрещённые skydns блокируются.

Для тех, кому нужно посещать все ресурсы интрернета сделал vpn сервер, в настройках которого задаём для vpn-клиентов другой днс (от Яндекса http://dns.yandex.ru):
#/usr/local/etc/mpd5/mpd.conf
startup:

default:
    load pptp_server

pptp_server:
    set ippool add poolsat 172.16.2.5 172.16.2.20
    create bundle template B
    set iface enable proxy-arp
    set iface idle 0
    set iface enable tcpmssfix
    set ipcp yes vjcomp
    set ipcp ranges 172.16.2.1/32 ippool poolsat
    set ipcp dns 77.88.8.88 #Яндекс днс

    set bundle enable compression
    set ccp yes mppc
    set mppc yes compress e40 e56 e128 stateless
    create link template L pptp
    set link enable multilink
    set link yes acfcomp protocomp
    set link action bundle B
    set link no pap chap
    set link enable chap
    set link enable chap-msv1
    set link enable chap-msv2
    set link mtu 1460
    set link keep-alive 10 75
    set pptp self 0.0.0.0
    set link enable incoming

ВПН работает, пользователи выходят в интернет. Но несмотря на то что для них установлени днс от яндекса, днс-запросы всё равно приходят от skydns. Т.е. ресурсы блокируются.
В тоже время утилита nslookup при запуске сообщает, что использует адрес от яндекса (задаётся при подключении к впн серверу).
Создаётся впечатление, что windows запомнила/предпочитает днс сервер полученный при получении динамического адреса, а днс сервер задаваемый при подключении к впн использовать не хочет.
Надеюсь не запутал вас.

Вопросы:
Почему ПК не используют днс прописанный в конфигурации впн сервера и что сделать что бы заработало?
Может есть другие не сложные решения подобной задачи?


Содержание

Сообщения в этом обсуждении
"Почему не работает dns, заданный для vpn клиента"
Отправлено reader , 27-Авг-14 00:50 
http://technet.microsoft.com/en-us/library/dd197552(WS.10).aspx