Установка и настройка accel-pptp + radius + PPTP
Про accel-pptp говорят много положительных слов. Он работает на уровне ядра и почти не грузит процессор. Будем пробовать!
Скачиваем последнюю доступную версию отсюда.
Или отсюда, по прямой ссылке
https://netcologne.dl.sourceforge.net/project/accel-ppp/accel-ppp-1.11.1.tar.bz2
На текущий момент это была версия accel-ppp-1.11.0.tar.bz2
Распаковываем архив
# tar xjf accel-ppp-1.11.0.tar.bz2
tar (child): bzip2: Функция exec завершилась с ошибкой: Нет такого файла или каталога
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Вот гад! Ругается, что не найден распаковщик. Ну хорошо - установим. (Как пользоваться yum - инструкция)
# yum install bzip2
.........многобукавпропускаем........
Running transaction
Установка : bzip2-1.0.6-13.el7.x86_64 1/1
Проверка : bzip2-1.0.6-13.el7.x86_64 1/1
Установлено:
bzip2.x86_64 0:1.0.6-13.el7
Выполнено!
Повторно пытаемся распаковать. Теперь все хорошо, движемся далее.
В ОС, где мы будем разворачивать pptp-сервер, уже должны стоять ppp, а также все необходимое для сборки из исходников, включая исходные коды и заголовочные файлы ядра:
# yum -y install cmake bc gcc kernel-headers kernel-devel openssl-devel net-tools telnet texinfo pcre-devel
Для Ubuntu потребуются следующие пакеты (проверно)
apt-get update apt-get install cmake make libssl-dev libpcre3-dev libnet-snmp-perl libtritonus-bin bzip2 checkinstall ntpdate
Затем переходим в распакованный каталог и создаем там подкаталог build. В нем будут все скомпилированные файлы.
# cd accel-pptp-1.11.0
# mkdir build
# cd build
Для компиляции и установки сервера выполним команду
# сmake / && make && make install
В моём случае вывалило ошибку. Чтож... обновим ядро и попытаемся снова. Теперь все гладко - настроим конфиг.
/etc/accel-ppp.conf
[modules]
log_file
pptp
auth_mschap_v2
radius
ippool
# Строчка ниже позволяет выполнять файлы /etc/ppp/ip-up и ip-down , при подключении и отключении клиентов
pppd_compat
shaper
#logwtmp[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4[ppp]
verbose=3
min-mtu=1280
mtu=1400
mru=1400
mppe=deny
ipv4=require
ipv6=deny
lcp-echo-interval=20
lcp-echo-timeout=120[pptp]
# bind to a specific ip address
bind=10.0.0.11
# echo interval in seconds
echo-interval=30
# prefer mpppe. required.
mppe=deny
# pool of client ip. see [ip-pool] module belore for reference. required.
ip-pool=pool1
# log verbosity
verbose=3[dns]
dns1=10.0.0.4
dns2=8.8.8.8[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=accel-ppp
nas-ip-address=10.0.0.11
gw-ip-address=172.16.1.11
server=10.0.0.16,12345,auth-port=1812,acct-port=1813,req-limit=50,fail-timeout=0,max-fail=10,weight=1
dae-server=127.0.0.1:3799,12345
verbose=1[client-ip-range]
0.0.0.0/0[ip-pool]
#gw-ip-address=172.16.1.11
92.63.204.60-255,name=pool1
92.63.205.1-255,name=pool2
92.63.206.1-255,name=pool3[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
level=3[pppd-compat]
#ip-pre-up=/etc/ppp/ip-pre-up
ip-up=/etc/ppp/ip-up
ip-down=/etc/ppp/ip-down
ip-change=/etc/ppp/ip-change
radattr-prefix=/var/run/radattr
verbose=1[shaper]
#attr=Filter-Id
#down-burst-factor=0.1
#up-burst-factor=1.0
#latency=50
#mpu=0
#mtu=0
#r2q=10
#quantum=1500
#moderate-quantum=1
#cburst=1534
#ifb=ifb0
up-limiter=police
down-limiter=tbf
#leaf-qdisc=sfq perturb 10
verbose=1[cli]
verbose=1
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
#password=123[connlimit]
limit=10/min
burst=3
timeout=60[accel-dp]
socket=/var/run/accel-dp.sock
Без net.ipv4.ip_forward=1 в sysctl ничего не заработает. Также, если на сервере более 500 сессий, не помешет сделать тюнинг. Потом перезапуск sysctl -p
############################
net.ipv4.ip_forward=1
net.ipv4.neigh.default.gc_thresh1 = 1024
net.ipv4.neigh.default.gc_thresh2 = 2048
net.ipv4.neigh.default.gc_thresh3 = 4096net.ipv4.netfilter.ip_conntrack_max=9548576
net.netfilter.nf_conntrack_max=9548576# turn off selective ACK and timestamps
net.ipv4.tcp_sack = 0
net.ipv4.tcp_timestamps = 0# memory allocation min/pressure/max.
# read buffer, write buffer, and buffer space
net.ipv4.tcp_rmem = 10000000 10000000 10000000
net.ipv4.tcp_wmem = 10000000 10000000 10000000
net.ipv4.tcp_mem = 10000000 10000000 10000000net.core.rmem_max = 524287
net.core.wmem_max = 524287
net.core.rmem_default = 524287
net.core.wmem_default = 524287
net.core.optmem_max = 524287
net.core.netdev_max_backlog = 300000
net.core.netdev_tstamp_prequeue = 0
############################
Запуск демона
# echo "/usr/local/sbin/accel-pppd -d -c /etc/accel-ppp.conf" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
На самом сервере список подключенных клиентов можно посмотреть командой
accel-cmd show session
Хорошая статья https://habrahabr.ru/post/267103/