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