Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

Обновляем пакеты:
apt-get update

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

  1. kernel-devel - исходный код ядра, необходим для компиляции молулей ipoe, vlan-mon (pptp для старых дистрибутивов)
  2. rpm-build - компонент для сборки RPM пакета
  3. cmake - инструмент для компоновки
  4. gcc - компилятор
Устанавливаем файлы ядра:
yum -y install kernel-devel rpm-build cmake gcc git pcre-devel openssl-devel lua-devel

После установки необходимых компонентов, средствами 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/kernels/3.10.0-229.4.2.el7.x86_64

Задает путь к директории исходного кода ядра Linux. Необходим для построения модулей ядра PPTP, IPOE, VLAN-MON (версия вашего ядра может отличаться, смотреть uname -r).

-DCMAKE_INSTALL_PREFIX=/usr/local

Задает путь для установки accel-ppp.

-DCPACK_TYPE=Centos7

указываем данный аргумент, так как мы нацелены собрать RPM пакет.


Подключаем модуль в системе:
cmake -DRADIUS=TRUE -DKDIR=/usr/src/kernels/3.10.0-229.4.2.el7.x86_64 -DCMAKE_INSTALL_PREFIX=/usr/local DLUA=TRUE -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DCPACK_TYPE=Centos7 ..

Обязательно оставляйте .. это указывает путь к исходному коду accel-ppp.

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

make

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

cpack -G RPM

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

rpm -ivh accel-ppp.rpm

При получении положительного результата установки RPM пакета, переименуем конфигурационный файл 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
В файл /etc/accel-ppp.conf вставить следующее и отредактировать по ситуации:
nano /etc/accel-ppp.conf
[modules]
#path=/usr/local/lib/accel-ppp
log_file
#log_tcp
#log_pgsql
pptp
pppoe
#l2tp
auth_mschap_v2
#auth_mschap_v1
#auth_chap_md5
#auth_pap
radius
#ippool
sigchld
pppd_compat
shaper_tbf
#chap-secrets

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=4

[ppp]
verbose=1
min-mtu=1000
mtu=1400
mru=1400
#ccp=0
#sid-case=upper
#check-ip=0
#single-session=replace
#mppe=require

[lcp]
echo-interval=30
echo-failure=3

[pptp]
echo-interval=30
verbose=1

[pppoe]
# Интерфейсы на которых запущен pppoe сервер ( должны быть соответственно подняты интерфейсы)
interface=eth1
interface=vlan2
interface=vlan3
interface=vlan4
#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

#[l2tp]
#dictionary=/usr/local/share/accel-ppp/l2tp/dictionary
#hello-interval=60
#timeout=60
#rtimeout=5
#retransmit=5
#host-name=accel-ppp
#verbose=1

[dns]
dns1=10.0.0.10
#dns2=172.16.1.1

[radius]
dictionary=/usr/local/share/accel-ppp/radius/dictionary
nas-identifier=accel-ppp
nas-ip-address=127.0.0.1
gw-ip-address=10.0.0.10
auth-server=127.0.0.1:1812,secretpass
acct-server=127.0.0.1:1813,secretpass
dae-server=127.0.0.1:3799,secretpass
verbose=1
#timeout=3
#max-try=3
#acct-timeout=120
#acct-delay-time=0

[client-ip-range]
disable
#10.0.0.0/8 # Указать диапазоны раздаваемые клиентам в (по DHCP или вручную). 
         # ВАЖНО: они не должны пересекатся с пулами PPPOE или PPTP сервера доступа.

#[ip-pool]
#gw-ip-address=192.168.0.1
#192.168.0.2-255
#192.168.1.1-255
#192.168.2.1-255
#192.168.3.1-255
#192.168.4.0/24

[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
#log-debug=/dev/stdout
#log-tcp=127.0.0.1:3000
copy=1
#color=1
#per-user-dir=per_user
#per-session-dir=per_session
#per-session=1
level=3
#log-tcp=127.0.0.1:3000

#[log-pgsql]
#conninfo=user=log
#log-table=log

[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

#[chap-secrets]
#gw-ip-address=192.168.100.1
#chap-secrets=/etc/ppp/chap-secrets

[tbf]
#attr=Filter-Id
#down-burst-factor=0.1
#up-burst-factor=1.0
#latency=50
attr-down=PPPD-Downstream-Speed-Limit
attr-up=PPPD-Upstream-Speed-Limit


[cli]
telnet=127.0.0.1:2000
#tcp=127.0.0.1:2001
#пароль такой же как на RADIUS COA
password=secretpass
В конец файла /usr/local/share/accel-ppp/radius/dictionary добавить:
# nano /usr/local/share/accel-ppp/radius/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 
Отключить ip_gre:
modprobe -r ip_gre
И в файл /etc/modprobe.d/blacklist.conf добавить:
nano /etc/modprobe.d/blacklist.conf
blacklist ip_gre
В файл /etc/modules внести:
nano /etc/modules
pptp
pppoe

В словарь Freeradius - raddb/dictionary добавить такие пары:

cd /usr/local/freeradius/etc/raddb
nano 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
Запустить accel-ppp:
accel-pppd  -p '/var/run/accel.pid' -c '/etc/accel-ppp.conf'
  • No labels