Vyatta
Vyatta Inc. — частная фирма, которая производит маршрутизаторы/межсетевую защиту/VPN на основе открытых исходных кодов. Бесплатная закачка Vyatta доступна с марта 2006 года. Это специализированный Linux-дистрибутив, позволяющий превратить обычный персональный компьютер в маршрутизатор. Это решение позиционируется Vyatta как конкурент продуктам уровня Cisco IOS серий 1800 — 7200. Производитель предлагает платные услуги и поддержку для пользователей маршрутизаторов Vyatta.
Настройка PPTP аутентификации через Radius-server
В описании настройки не указано как устанавливать систему Vyatta и настраивать интерфейсы
Version : Vyatta Core 6.0 Beta 2010.02.19
Настраиваем VPN сервер. Данная конфигурация предусматривает авторизацию по mschap, mschap-v2+mppe
test@vyatta:~$ configure
set vpn pptp set vpn pptp remote-access client-ip-pool start 10.0.1.1 set vpn pptp remote-access client-ip-pool stop 10.0.1.50 set vpn pptp remote-access authentication mode radius set vpn pptp remote-access authentication radius-server 10.10.21.253 key 12345 set vpn pptp remote-access dns-servers server-1 10.10.254.2 set vpn pptp remote-access dns-servers server-2 10.10.254.1 set vpn pptp remote-access outside-address 193.188.254.21 commit save
Правим файл /etc/pptpd.conf
ppp /usr/sbin/pppd option /etc/ppp/options.pptpd listen 193.188.254.21 debug logwtmp localip 10.255.254.0 # Здесь IP адрес вашего сервера в локальной сети #remoteip 10.0.1.1-50 # Закоментировать, назначается радиусом
/etc/ppp/options.pptpd
### Vyatta PPTP VPN Begin ### name pptpd refuse-pap require-mschap require-mschap-v2 require-mppe-128 ms-dns 10.10.254.1 ms-dns 10.10.1.254 debug proxyarp lock nobsdcomp novj novjccomp nologfd plugin radius.so radius-config-file /etc/radiusclient-ng/radiusclient-pptp.conf plugin radattr.so
Конфигигурация работы Vyatta с Radius сервером
/etc/radiusclient-ng/radiusclient-pptp.conf
auth_order radius login_tries 4 login_timeout 60 nologin /etc/nologin issue /etc/radiusclient-ng/issue authserver 10.10.21.253:1812 acctserver 10.10.21.253:1813 servers /etc/radiusclient-ng/servers-pptp dictionary /etc/radiusclient-ng/dictionary-ravpn login_radius /usr/sbin/login.radius seqfile /var/run/radius.seq mapfile /etc/radiusclient-ng/port-id-map-ravpn default_realm radius_timeout 10 radius_retries 3 login_local /bin/login
/etc/radiusclient-ng/servers-pptp
10.10.21.253 12345 #IP адрес радиус сервера и секретный ключ
Добавим в /etc/radiusclient-ng/dictionary-ravpn такие атрибуты
# Limit session traffic ATTRIBUTE Session-Octets-Limit 227 integer # What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out) ATTRIBUTE Octets-Direction 228 integer # Connection Speed Limit ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer ATTRIBUTE Acct-Interim-Interval 85 integer
Проверте или есть такие атрибуты на стороне радиус сервера /usr/local/etc/raddb/dictionary такие атрибуты
# Limit session traffic ATTRIBUTE Session-Octets-Limit 227 integer # What to assume as limit - 0 in+out, 1 in, 2 out, 3 max(in,out) ATTRIBUTE Octets-Direction 228 integer # Connection Speed Limit ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-1 232 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-1 233 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-2 234 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-2 235 integer ATTRIBUTE PPPD-Upstream-Speed-Limit-3 236 integer ATTRIBUTE PPPD-Downstream-Speed-Limit-3 237 integer ATTRIBUTE Acct-Interim-Interval 85 integer
Шейпер
vim /etc/ppp/ip-pre-up
#!/bin/bash DOWNSPEED=0 UPSPEED=0 AWK="/usr/bin/awk" if [ -f /var/run/radattr.$IFNAME ] then # FILTERS=`$AWK '/Filter-Id/ {print $2}' /var/run/radattr.$IFNAME` DOWNSPEED=`$AWK '/PPPD-Downstream-Speed-Limit/ {print $2}' /var/run/radattr.$IFNAME` UPSPEED=`$AWK '/PPPD-Upstream-Speed-Limit/ {print $2}' /var/run/radattr.$IFNAME` # if [[ -n "$FILTERS" ]] # then # fi fi TC="/sbin/tc" $TC qdisc del dev $IFNAME root &>/dev/null $TC qdisc del dev $IFNAME ingress &>/dev/null ##### speed server->client if [ "$UPSPEED" != "0" ] ; then $TC qdisc add dev $IFNAME root tbf rate ${UPSPEED}kibit burst 1540 limit 20kb fi ##### speed client->server if [ "$DOWNSPEED" != "0" ] ; then $TC qdisc add dev $IFNAME handle ffff: ingress $TC filter add dev $IFNAME parent ffff: protocol ip \ prio 1 u32 match u32 0 0 police rate ${DOWNSPEED}kibit \ burst 96k drop flowid 1: fi
NAT
vyatta@vyatta:~$ configure
set service nat rule 1 set service nat rule 1 type masquerade set service nat rule 1 outbound-interface eth1 set service nat rule 1 protocol all set service nat rule 1 source address 10.0.1.1/16 set service nat rule 1 destination address 0.0.0.0/0 commit save
Проверка добавились ли правила
vyatta:/home/vyatta# show nat rules
ABillS
/ System configuration/ NAS/
Type: | pppd:pppd + RADIUS plugin (Linux) |
---|