You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 5
Next »
Перед компиляцией и установкой accel-ppp, необходимо установить следующие пакеты, для соблюдения зависимостей.
- cmake - инструмент для компоновки
- gcc - компилятор
- linux-headers-`uname -r` - исходный код текущего ядра, необходим для компиляции молулей ipoe, vlan-mon (pptp для старых дистрибутивов).
cd /usr/src/
apt-get install make cmake libcrypto++-dev libssl-dev libpcre3 libpcre3-dev git lua5.1 liblua5.1-0-dev
apt-get install -y build-essential gcc linux-headers-`uname -r`
После установки необходимых компонентов, средствами git выкачиваем исходный код accel-ppp.
git clone git://git.code.sf.net/p/accel-ppp/code /opt/accel-ppp-code
Создаем директорию в которой будет происходить дальнейшая компоновка/компиляция и переходим в нее.
mkdir /opt/accel-ppp-code/accel-ppp-build
cd /opt/accel-ppp-code/accel-ppp-build
Выполняем компоновку, указывая следующие параметры.
Параметр | Описание |
---|
-DBUILD_IPOE_DRIVER=TRUE | Данная опция позволяет включить в сборку модуль ядра IPoE. Этот модуль необходим, если вы хотите использовать IPoE в режиме общего интерфейса. |
-DBUILD_VLAN_MON_DRIVER=TRUE | Включает в сборку драйвер позволяющий создавать vlan интерфейсы анализирую заголовки IP пакетов. (Доступен для соединений IPoE и PPPoE). |
-DKDIR=/usr/src/linux-headers-`uname -r` | Задает путь к директории исходного кода ядра Linux. Необходим для построения модулей ядра PPTP, IPOE, VLAN-MON (версия вашего ядра может отличаться, смотреть uname -r). |
-DCMAKE_INSTALL_PREFIX=/usr/local | Задает путь для установки accel-ppp. |
-DCPACK_TYPE=Debian9 | указываем данный аргумент, так как мы нацелены собрать DEB пакет. |
cmake -DCMAKE_INSTALL_PREFIX=/usr -DKDIR=/usr/src/linux-headers-`uname -r` -DRADIUS=TRUE -DSHAPER=TRUE -DLOG_PGSQL=FALSE -DLUA=TRUE -DBUILD_IPOE_DRIVER=TRUE ../ -DCPACK_TYPE=Debian9 -DBUILD_VLAN_MON_DRIVER=TRUE -DCMAKE_BUILD_TYPE=Release
Обязательно оставляйте ../ это указывает путь к исходному коду accel-ppp.
При получении положительного результата установки DEB пакета, переименуем конфигурационный файл accel-ppp.conf.
mv /etc/accel-ppp.conf.dist /etc/accel-ppp.conf
insmod /usr/src/accel-ppp-build/drivers/ipoe/driver/ipoe.ko
insmod /usr/src/accel-ppp-build/drivers/ipoe/driver/vlan_mon.ko
В скрипт автозапуска:
nano /etc/init.d/accel-ppp
вставляем следующее:
#!/bin/sh
# /etc/init.d/accel-ppp: set up the accel-ppp server
### BEGIN INIT INFO
# Provides: accel-ppp
# Required-Start: $networking
# Required-Stop: $networking
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
set -e
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/sbin;
ACCEL_PPTPD=`which accel-pppd`
. /lib/lsb/init-functions
if test -f /etc/default/accel-ppp; then
. /etc/default/accel-ppp
fi
if [ -z $ACCEL_PPPTD_OPTS ]; then
ACCEL_PPTPD_OPTS="-c /etc/accel-ppp.conf"
fi
case "$1" in
start)
log_daemon_msg "Starting accel-ppp server" "accel-pppd"
if [ x`lsmod |awk /ipoe/'{print $1}'` = x ]; then
insmod /usr/src/accel-ppp-build/drivers/ipoe/driver/ipoe.ko
fi
if start-stop-daemon --start --quiet --oknodo --exec $ACCEL_PPTPD -- -d -p /var/run/accel-pppd.pid $ACCEL_PPTPD_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
restart)
log_daemon_msg "Restarting accel-ppp server" "accel-pppd"
if [ x`lsmod |awk /ipoe/'{print $1}'` = x ]; then
insmod /usr/src/accel-ppp-build/drivers/ipoe/driver/ipoe.ko
fi
start-stop-daemon --stop --quiet --oknodo --retry 180 --pidfile /var/run/accel-pppd.pid
if start-stop-daemon --start --quiet --oknodo --exec $ACCEL_PPTPD -- -d -p /var/run/accel-pppd.pid $ACCEL_PPTPD_OPTS; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
log_daemon_msg "Stopping accel-ppp server" "accel-pppd"
start-stop-daemon --stop --quiet --oknodo --retry 180 --pidfile /var/run/accel-pppd.pid
log_end_msg 0
;;
status)
do_status
;;
*)
log_success_msg "Usage: /etc/init.d/accel-ppp {start|stop|status|restart}"
exit 1
;;
esac
exit 0
chmod +x /etc/init.d/accel-ppp
update-rc.d accel-ppp defaults
В файл:
вставляем
function username(pkt)
return pkt:hdr('chaddr')
end
nano /etc/logrotate.d/accel-ppp
вставляем:
/var/log/accel-ppp/*.log {
rotate 7
daily
size=100M
compress
missingok
sharedscripts
postrotate
test -r /var/run/accel-pppd.pid && kill -HUP `cat /var/run/accel-pppd.pid`
endscript
}
nano /usr/local/share/accel-ppp/radius/dictionary
дописываем в конец:
ATTRIBUTE DHCP-Router-IP-Address 241 ipaddr
ATTRIBUTE DHCP-Mask 242 integer
ATTRIBUTE L4-Redirect 243 integer
ATTRIBUTE L4-Redirect-ipset 244 string
ATTRIBUTE DHCP-Option82 245 octets
# 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
ATTRIBUTE Acct-Input-Gigawords 52 integer
ATTRIBUTE Acct-Output-Gigawords 53 integer
Файл конфигурации
Информацыя по конфигурации accel-ppp.org-configfile.
вставляем:
#ABillS
[modules]
log_file
radius
ipoe
ippool
shaper
pptp
pppoe
auth_mschap_v2
auth_pap
auth_chap_md5
auth_mschap_v1
chap-secrets
sigchld
#pppd_compat
[core]
log-error=/var/log/accel-ppp/core.log
thread-count=1
#[common]
#single-session=replace
#sid-case=upper
#sid-source=seq
[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
#nas-identifier=accel-ipoe
nas-ip-address=192.168.1.1
server=127.0.0.1,radsecret,auth-port=1812,acct-port=1813,req-limit=50,fail-timeout=0,max-fail=10,weight=1
dae-server=192.168.1.1:3799,radsecret
verbose=100
attr-tunnel-type=NAS-Identifier
gw-ip-address=192.168.1.1
[ipoe]
verbose=100
username=lua:username
lua-file=/etc/accel-ppp.lua
lease-time=300
max-lease-time=300
attr-dhcp-client-ip=Framed-IP-Address
gw-ip-address=10.0.0.1/24
proxy-arp=1
shared=1
ifcfg=1
mode=L2
start=dhcpv4
interface=eth0
#agent-remote-id=accel-ppp
attr-dhcp-opt82=DHCP-Option82
#[ip-pool]
#gw-ip-address=192.168.0.1/24
#attr=Framed-Pool
#192.168.0.2-254,name=pool1
#[lcp]
#echo-interval=30
#echo-failure=3
[pptp]
bind=192.168.1.1
verbose=1
mppe=allow
echo-interval=30
[ppp]
verbose=1
min-mtu=1400
mtu=1492
mru=1492
#ccp=0
#sid-case=lower
mppe=allow
#ipv4=require
#lcp-echo-interval=3
#lcp-echo-failure=9
[pppoe]
interface=eth0
nas-identifier=accel-pppoe
#ac-name=xxx
#service-name=yyy
#pado-delay=0
#pado-delay=0,100:100,200:200,-1:500
#ifname-in-sid=called-sid
#tr101=1
verbose=1
[client-ip-range]
#10.0.0.0/8
[dns]
dns1=8.8.8.8
[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
copy=1
color=1
#per-user-dir=per_user
#per-session-dir=per_session
#per-session=1
level=100
[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
#hightspeed shaper
ifb=ifb0
cburst=1534
up-limiter=htb
down-limiter=htb
#low speed shaper
#up-limiter=police
#down-limiter=tbf
#leaf-qdisc=sfq perturb 10
#leaf-qdisc=fq_codel [limit PACKETS] [flows NUMBER] [target TIME] [interval TIME] [quantum BYTES] [[no]ecn]
#rate-multiplier=1
#fwmark=1
attr-down=PPPD-Downstream-Speed-Limit
attr-up=PPPD-Upstream-Speed-Limit
verbose=10
[pppd-compat]
#ip-up=/etc/ppp/ip-up
#ip-down=/etc/ppp/ip-down
#radattr-prefix=/var/run/radattr
verbose=1
[cli]
verbose=100
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
password=radsecret
[snmp]
master=0
agent-name=accel-ppp
[connlimit]
limit=10/min
burst=3
timeout=60
Запуск: