Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:nas:linux:accel_pptp:ru [2015/09/22 12:42] asmodeus [Abills] |
abills:docs:nas:linux:accel_pptp:ru [2018/03/27 16:17] (текущий) asmodeus [Консоль управления] |
||
---|---|---|---|
Строка 14: | Строка 14: | ||
^Alive: | Время между RADIUS Alive пакетами. Рекомендуется 300 | | ^Alive: | Время между RADIUS Alive пакетами. Рекомендуется 300 | | ||
^Type: | Linux accel-ppp | | ^Type: | Linux accel-ppp | | ||
- | ^IP:PORT: | Ип адрес и порт сервера. Порт по умолчанию 3799 | | + | ^IP:PORT: | Ип адрес и порт сервера. Порт по умолчанию 3799 и 2001 для telnet. (127.0.0.1:3799:2001) | |
- | ^Password: | пароль для Disconnect Message указывается в параметре конфигурационного файла /etc/accel-ppp.conf | | + | ^Password: | пароль для Disconnect Message указывается в параметре конфигурационного файла /etc/accel-ppp.conf, также этот пароль используется как RADIUS secret | |
Строка 26: | Строка 26: | ||
# /usr/abills/libexec/billd checkspeed accel_ppp=1 | # /usr/abills/libexec/billd checkspeed accel_ppp=1 | ||
- | ====Установка и настройка accel-ppp ==== | ||
+ | ====Синхронизация активных сессий==== | ||
+ | |||
+ | Система проверяет онлайн сессии в билинге и поднятые на accel-ppp | ||
+ | |||
+ | # /usr/abills/libexec/billd check_accel_ppp=1 | ||
+ | | ||
+ | ====Создаем vlan интерфейсы==== | ||
+ | |||
+ | [[abills:docs:manual:soft:vlan_create|Добавление vlan в Ubuntu]] | ||
+ | ====Установка и настройка accel-ppp ==== | ||
+ | === Ubuntu === | ||
**Что нужно:** | **Что нужно:** | ||
Строка 45: | Строка 55: | ||
**Настройка accel-ppp** | **Настройка accel-ppp** | ||
+ | \\ | ||
- | vim /etc/accel-ppp.conf | + | **/etc/accel-ppp.conf** |
<code> | <code> | ||
Строка 65: | Строка 76: | ||
sigchld | sigchld | ||
pppd_compat | pppd_compat | ||
- | shaper_tbf | + | shaper |
#chap-secrets | #chap-secrets | ||
Строка 75: | Строка 86: | ||
verbose=1 | verbose=1 | ||
min-mtu=1000 | min-mtu=1000 | ||
- | mtu=1400 | + | mtu=1492 |
- | mru=1400 | + | mru=1492 |
#ccp=0 | #ccp=0 | ||
#sid-case=upper | #sid-case=upper | ||
Строка 174: | Строка 185: | ||
#chap-secrets=/etc/ppp/chap-secrets | #chap-secrets=/etc/ppp/chap-secrets | ||
- | [tbf] | + | [[shaper] ] |
#attr=Filter-Id | #attr=Filter-Id | ||
#down-burst-factor=0.1 | #down-burst-factor=0.1 | ||
Строка 190: | Строка 201: | ||
- | vim /usr/local/share/accel-ppp/radius/dictionary | + | **/usr/local/share/accel-ppp/radius/dictionary** |
Строка 305: | Строка 316: | ||
- | В словарь Freeradius - raddb/dictionary добавить такие пары | + | В словарь Freeradius - **raddb/dictionary** добавить такие пары |
<code> | <code> | ||
Строка 328: | Строка 339: | ||
==== CentOS ==== | ==== CentOS ==== | ||
Устнавливаем файлы ядра: | Устнавливаем файлы ядра: | ||
- | # yum install kernel-headers kernel-devel | + | # yum install -y kernel-headers kernel-devel bzip2 cmake |
Скачиваем и устанавливаем accel-ppp: | Скачиваем и устанавливаем accel-ppp: | ||
# wget http://sourceforge.net/projects/accel-ppp/files/accel-ppp-1.7.4.tar.bz2 | # wget http://sourceforge.net/projects/accel-ppp/files/accel-ppp-1.7.4.tar.bz2 | ||
Строка 335: | Строка 346: | ||
# mkdir build | # mkdir build | ||
# cd build | # cd build | ||
- | # cmake -DBUILD_DRIVER=FALSE -DRADIUS=TRUE -DKDIR=/usr/src/kernels/3.10.0-229.4.2.el7.x86_64 - | + | # cmake -DBUILD_DRIVER=FALSE -DRADIUS=TRUE -DKDIR=/usr/src/kernels/3.10.0-229.4.2.el7.x86_64 \ |
DCMAKE_INSTALL_PREFIX=/usr/local .. | DCMAKE_INSTALL_PREFIX=/usr/local .. | ||
Не выходя из папки build сделать: | Не выходя из папки build сделать: | ||
- | # make | + | # make && make install |
- | # make install | + | |
- | В файл accel-ppp.conf вставить следующее: | + | В файл **/etc/accel-ppp.conf** вставить следующее и отредактировать по ситуации: |
# nano /etc/accel-ppp.conf | # nano /etc/accel-ppp.conf | ||
Строка 485: | Строка 495: | ||
password=secretpass | password=secretpass | ||
- | В конец файла dictionary добавить: | + | В конец файла **/usr/local/share/accel-ppp/radius/dictionary** добавить: |
# nano /usr/local/share/accel-ppp/radius/dictionary | # nano /usr/local/share/accel-ppp/radius/dictionary | ||
| | ||
Строка 507: | Строка 517: | ||
Отключить ip_gre: | Отключить ip_gre: | ||
# modprobe -r ip_gre | # modprobe -r ip_gre | ||
- | И в файл blacklist.conf добавить: | + | И в файл **/etc/modprobe.d/blacklist.conf** добавить: |
# nano /etc/modprobe.d/blacklist.conf | # nano /etc/modprobe.d/blacklist.conf | ||
blacklist ip_gre | blacklist ip_gre | ||
- | В файл modules внести: | + | В файл **/etc/modules** внести: |
# nano /etc/modules | # nano /etc/modules | ||
Строка 518: | Строка 528: | ||
В словарь Freeradius - raddb/dictionary добавить такие пары: | В словарь Freeradius - raddb/dictionary добавить такие пары: | ||
# cd /usr/local/freeradius/etc/raddb | # cd /usr/local/freeradius/etc/raddb | ||
- | #nano dictionary | + | # nano dictionary |
# Limit session traffic | # Limit session traffic | ||
Строка 538: | Строка 548: | ||
# accel-pppd -p 'var/run/accel.pid' -c '/etc/accel-ppp.conf' | # accel-pppd -p 'var/run/accel.pid' -c '/etc/accel-ppp.conf' | ||
| | ||
+ | ==== Debian 8 ==== | ||
+ | Обновляем пакеты: | ||
+ | apt-get update | ||
+ | |||
+ | Устанавливаем нужные пакеты: | ||
+ | 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 linux-headers-`uname -r` | ||
+ | |||
+ | Скачиваем accel-ppp: | ||
+ | wget http://netix.dl.sourceforge.net/project/accel-ppp/accel-ppp-1.11.0.tar.bz2 | ||
+ | tar -xjf accel-ppp-1.11.0.tar.bz2 | ||
+ | mkdir accel-ppp-build | ||
+ | cd accel-ppp-build | ||
| | ||
+ | cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DKDIR=/usr/src/linux-headers-`uname -r` -DRADIUS=TRUE -DSHAPER=TRUE -DLOG_PGSQL=FALSE -DLUA=TRUE -DBUILD_IPOE_DRIVER=TRUE ../../accel-ppp-1.11.0 -DCPACK_TYPE=Debian8 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release | ||
+ | | ||
+ | make | ||
+ | cpack -G DEB | ||
+ | dpkg -i accel-ppp.deb | ||
+ | | ||
+ | Подключаем модуля в системе: | ||
+ | insmod /usr/src/accel-ppp-build/drivers/ipoe/driver/ipoe.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 | ||
+ | | ||
+ | В файл: | ||
+ | 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/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 | ||
+ | | ||
+ | ===Файл конфигурации=== | ||
+ | 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/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 | ||
+ | | ||
+ | Запуск: | ||
+ | service accel-ppp start | ||
+ | ====Консоль управления==== | ||
+ | Мониторинг параметров Accel-ppp | ||
+ | |||
+ | |||
+ | '' / Настройка / Сервер доступа -> Консоль '' | ||
+ | |||
+ | |||
+ | |||
+ | =====Автонастройка конфигурации===== | ||
+ | |||
+ | |||
+ | cd /usr/abills/misc/ | ||
+ | ./autoconf PROGRAMS=accel_ppp | ||
+ | |||
+ | |||
+ | ====Дополнительно==== | ||
+ | * [[http://abills.net.ua/forum/viewtopic.php?f=6&t=7910|Обсуждение на форуме]] |