Child pages
  • Debian 9 : сборка и установка

Skip to end of metadata
Go to start of metadata
Обновляем пакеты:
apt-get update

Перед компиляцией и установкой accel-ppp, необходимо установить следующие пакеты, для соблюдения зависимостей.

  1. cmake - инструмент для компоновки
  2. gcc - компилятор
  3. 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.

Скачиваем 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

Задает путь для установки 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.

Компилируем.

make

Производим упаковку в DEB пакет.

cpack -G DEB

Устанавливаем.

dpkg -i accel-ppp.deb

При получении положительного результата установки DEB пакета, переименуем конфигурационный файл accel-ppp.conf.

mv /etc/accel-ppp.conf.dist /etc/accel-ppp.conf

Автозагрузка :

update-rc.d accel-ppp defaults

В файл:

nano /etc/accel-ppp.lua

вставляем

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
}


Dictionary
nano /usr/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
В словарь Freeradius - /usr/share/freeradius/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 
ATTRIBUTE Acct-Input-Gigawords    52      integer
ATTRIBUTE Acct-Output-Gigawords   53      integer 

Создаем симлинк :

ln -s /usr/share/accel-ppp  /usr/local/share/accel-ppp


Файл конфигурации


Важно, обратите внимание :

Перед настройкой, убедитесь что имена интерфейсов в системе соответствуют именам интерфейсов в конфигурационном файле.

Документация  по переменным accel-ppp.org-configfile


nano /etc/accel-ppp.conf

вставляем:

Пример
#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/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

Запуск:

service accel-ppp start
  • No labels