Debian – конфигуриране на VPN pptp сървър

pptpd сървър

От всички дистрибуции, с които съм работил досега, най-лесно се конфигурира pptpd сървър под Debian.

apt-get install pptpd

Конфигурационен файл /etc/pptpd.conf – тук всичко по подразбиране описано от разработчиците на Debian е напълно достатъчно, но в последните редове трябва да укажем по специфични настройки като:
localip – ип адреса, който виртуалните ppp интерфейси на клиенстките машнини приемат за default gateway
remoteip – групата от ип адреса които ще използва сървъра, в случая от 130 до 254
listen – ип адреса, на който ще слуша впн сървъра
connections – максимален брой pptp интерфейса, който ще допусне сървъра

localip 192.168.100.254
remoteip 192.168.100.130-254
listen  192.168.100.1
connections 500

Конфигурационен файл /etc/ppp/pptpd-options тук също конфигурацията напълно ни удовлетворява и затова няма да обръщаме внимание на него освен, че модула require-mppe-128 е включен по подразбиране.

Файла с паролите на потребителителите е /etc/ppp/chap-secrets:

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
sami            *       imas                    192.168.100.131
gragoon         *       tovaeparola             192.168.100.132
scot            *       gyzar                   192.168.100.133

Стартираме демона pptpd

/etc/init.d/pptpd start

това е една абсолютно непрофесионална конфигурация на VPN сървър, но може да се използва като база или поне за връзка между два офиса в интернет или MAN среда. Показвайки как се конфигурира VPN сървър под Debian, сега остава да дам пример и pptp клиента как ще осъществи тази връзка:

pptp 192.168.100.1 user sami password imas defaultroute noauth require-mppe-128

Ограничение на скороста: …

nano /etc/ppp/ip-up

#!/bin/bash

DEVICE=$1

LOCALIP=$5

REMOTEIP=$6

shaper () {

DEVICE=$1

DOWN=$2

UP=$3

/sbin/tc qdisc del dev $DEVICE root &> /dev/null

/sbin/tc qdisc add dev $DEVICE root tbf rate ${DOWN}Kbit latency 50ms burst 200k

/sbin/tc qdisc del dev $DEVICE handle ffff: ingress &> /dev/null

/sbin/tc qdisc add dev $DEVICE handle ffff: ingress

/sbin/tc filter add dev $DEVICE parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 \

police rate ${UP}Kbit burst 200k drop flowid :1

}

speed="93.155.130.61 93.155.130.62";

DOWN=10240

UP=10240

speed0="93.155.130.63 93.155.130.64";

DOWN0=10240

UP0=10240

ip=`echo $LOCALIP`

for speeds in $speed

do

 if [ $speeds == $ip ]; then

 shaper $DEVICE $DOWN $UP

 SPEED=10240

 echo "Session start `date +%F/%R:%S` on device $DEVICE local ip $LOCALIP remote $REMOTEIP and speed $SPEED " >> /etc/ppp/ppp.log

 exit

 fi

done

for speeds in $speed0

do

 if [ $speeds == $ip ]; then

 shaper $DEVICE $DOWN0 $UP0

 SPEED=5120

 echo "Session start `date +%F/%R:%S` on device $DEVICE local ip $LOCALIP remote $REMOTEIP and speed $SPEED " >> /etc/ppp/ppp.log

 exit

 fi

done

nano /etc/ppp/ip-down

#!/bin/bash

echo "$1 $2 $3 $4 $5 $6"
DEVICE=$1
LOCALIP=$5
REMOTEIP=$6

echo "Session stop `date +%F/%R:%S` on device $DEVICE local ip $LOCALIP remote $REMOTEIP " >> /etc/ppp/ppp.log

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.