apt-get update
Перед компиляцией и установкой 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 | Задает путь для установки 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 }
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 ATTRIBUTE Accel-Agent-Circuit-Id 246 octets ATTRIBUTE Accel-Agent-Remote-Id 247 octets ATTRIBUTE Session-Octets-Limit 227 integer ATTRIBUTE Octets-Direction 228 integer 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/local/freeradius/etc/raddb/dictionary - если 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
вставляем:
Запуск:
service accel-ppp start
Запускать при старте системы:
systemctl enable accel-ppp