====== Налаштування accel-ppp з PPPoE авторизацією ====== ===== Для початку ===== Знову нагадуємо: вже має бути налаштований [[multigen|КупаГен]]. \\ Далі підключаємо словник accel-ppp на стороні Убіллінга, для чого у файлі: \\ // /usr/local/etc/raddb/dictionary // \\ нам потрібно знайти і розкоментувати (або додати, у разі відсутності) такий рядок: \\ $INCLUDE /usr/local/etc/raddb/dictionary_preset/accel-ppp.dictionary ===== Створюємо NAS в Убілінгу ===== {{:mgaccelpppoe_nas_clreate.png?&400|}} Ключ для новоствореного НАСу, який нам знадобиться в процесі подальшої конфігурації, можна знайти тут: {{:mgaccelpppoe_nas_key.png|}} А ми, тим часом, рестартимо радіус на "Убіллінговому" сервері \\ **# service radiusd restart** І повертаємося до нашого новоствореного НАСу та відкриваємо форму редагування **"NAS КупаГен "**. {{:mgaccelpppoe_nas_edit1.png|}} \\ Вказуємо такі опції та натискаємо кнопку **"Зберегти "**: {{:mgaccelpppoe_nas_edit.png|}} \\ Далі все на тій же формі редагування **"NAS КупаГен "** натискаємо кнопку **"Клонувати конфігурацію NAS "**. Побачимо щось схоже: \\ {{:mgaccelpppoe_nas_clone.png|}} \\ і у виділене на скріншоті поле для введення (хоча воно там узагалі-то і так - єдине) вставляємо наступний текст (так, це вже преконфігуровані дефолтні атрибути - все для людей!): eyJvcHRpb25zIjp7ImlkIjoiOCIsIm5hc2lkIjoiOSIsInVzZXJuYW1ldHlwZSI6ImxvZ2luIiwic2VydmljZSI6ImNvYSIsIm9ubHlhY3RpdmUiOiIwIiwicG9ydCI6IjM3OTkifSwiYXR0cmlidXRlcyI6eyI0NCI6eyJpZCI6IjQ0IiwibmFzaWQiOiI5Iiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWN0aXZlIiwiYXR0cmlidXRlIjoiUFBQRC1VcHN0cmVhbS1TcGVlZC1MaW1pdCIsIm9wZXJhdG9yIjoiPSIsImNvbnRlbnQiOiJ7U1BFRURVUH0ifSwiNDUiOnsiaWQiOiI0NSIsIm5hc2lkIjoiOSIsInNjZW5hcmlvIjoicmVwbHkiLCJtb2RpZmllciI6ImFjdGl2ZSIsImF0dHJpYnV0ZSI6IlBQUEQtRG93bnN0cmVhbS1TcGVlZC1MaW1pdCIsIm9wZXJhdG9yIjoiPSIsImNvbnRlbnQiOiJ7U1BFRURET1dOfSJ9LCI0MiI6eyJpZCI6IjQyIiwibmFzaWQiOiI5Iiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWxsIiwiYXR0cmlidXRlIjoiRnJhbWVkLUlQLUFkZHJlc3MiLCJvcGVyYXRvciI6Ij0iLCJjb250ZW50Ijoie0lQfSJ9LCI0MyI6eyJpZCI6IjQzIiwibmFzaWQiOiI5Iiwic2NlbmFyaW8iOiJyZXBseSIsIm1vZGlmaWVyIjoiYWxsIiwiYXR0cmlidXRlIjoiRnJhbWVkLUlQLU5ldG1hc2siLCJvcGVyYXRvciI6Ij0iLCJjb250ZW50IjoiMjU1LjI1NS4yNTUuMjU1In0sIjQxIjp7ImlkIjoiNDEiLCJuYXNpZCI6IjkiLCJzY2VuYXJpbyI6ImNoZWNrIiwibW9kaWZpZXIiOiJhbGwiLCJhdHRyaWJ1dGUiOiJDbGVhcnRleHQtUGFzc3dvcmQiLCJvcGVyYXRvciI6Ijo9IiwiY29udGVudCI6IntQQVNTV09SRH0ifSwiNjgiOnsiaWQiOiI2OCIsIm5hc2lkIjoiOSIsInNjZW5hcmlvIjoicmVwbHkiLCJtb2RpZmllciI6ImFsbCIsImF0dHJpYnV0ZSI6IkZpbHRlci1JZCIsIm9wZXJhdG9yIjoiPSIsImNvbnRlbnQiOiJ7U1RBVEV9In19LCJzZXJ2aWNlcyI6eyI5Ijp7ImlkIjoiNyIsIm5hc2lkIjoiOSIsInBvZCI6IntQUklOVEZ9ICdGcmFtZWQtSVAtQWRkcmVzcz0ge0lQfScgfCB7U1VET30ge1JBRENMSUVOVH0ge05BU0lQfTozNzk5IGRpc2Nvbm5lY3Qge05BU1NFQ1JFVH0iLCJjb2Fjb25uZWN0Ijoie1BSSU5URn0gJ0ZyYW1lZC1JUC1BZGRyZXNzPSB7SVB9JyB8IHtTVURPfSB7UkFEQ0xJRU5UfSB7TkFTSVB9OjM3OTkgZGlzY29ubmVjdCB7TkFTU0VDUkVUfSIsImNvYWRpc2Nvbm5lY3QiOiJ7UFJJTlRGfSAnRnJhbWVkLUlQLUFkZHJlc3M9IHtJUH0nIHwge1NVRE99IHtSQURDTElFTlR9IHtOQVNJUH06Mzc5OSBkaXNjb25uZWN0IHtOQVNTRUNSRVR9In19fQ не забуваємо відмітити чекбокс під текстовим полем, який підтверджує те, що ми таки усвідомлюємо, що робимо, і натискаємо кнопку **"Зберегти"**. Наступним кроком - очищаємо атрибути і робимо регенерацію бази (так, **саме в такій послідовності**): \\ {{:mgaccelpppoe_nas_reset.png|}} \\ ===== Встановлюємо Accel-ppp ===== ==== Попередні маніпуляції ==== Інсталюємо, стандартно, Debian із мінімальним набором софту. Логінимося під рутом і-і-і-і-і: # apt-get update # apt-get upgrade # apt-get install sudo Додаємо свого юзера з правами рут: # nano /etc/sudoers Після чого розлогінюємося з-під рута: # exit І вводимо пароль новоствореного користувача # sudo su Інсталюємо потрібний софт: # apt-get install net-tools vlan ipset dnsutils mc Вмикаємо IP Forwarding # sysctl -w net.ipv4.ip_forward=1 Щоб не злетів після ребуту # echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf Перевіряємо підтримку влан # lsmod | grep 8021q Якщо вивід порожній, то довантажуємо необхідні модулі # modprobe 8021q Чекаєм інтерфейси # ip a Приводимо наш конфіг ///etc/network/interfaces// до нормального вигляду, де: * інтерфейс **ens192** дивиться у світ * інтерфейс **ens224** дивиться на клієнтів * інтерфейс **ens266** дивиться на білінг Створюємо пачку VLANів на потрібному інтерфейсі. Оскільки ми юзаємо PPPoE, то IP адреси на цих VLANах нам не потрібні. У випадку ж з IPoE **manual** у визначенні інтерфейсу міняємо на **static** і вказуємо IP адреси: auto vlan102 # тут не manual, a static iface vlan102 inet static # тут не забуваємо вказати адреси address 192.168.1.200 netmask 255.255.255.0 vlan-raw-device ens224 Нижче наведено конфіг ///etc/network/interfaces// цілком: # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug ens192 iface ens192 inet static address xxx.xxx.xxx.xxx netmask yyy.yyy.yyy.yyy gateway zzz.zzz.zzz.zzz # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 8.8.8.8 dns-search our.isp.net allow-hotplug ens224 iface ens224 inet static address !!!!- тут адреса мережевого інтерфейсу, котрий дивиться на клієнтів -!!!! netmask !!!!- тут маска адреси, котра дивиться на клієнтів -!!!! allow-hotplug ens256 iface ens256 inet static address !!!!- тут адреса мережевого інтерфейсу, котрий дивиться на біллінг -!!!! netmask !!!!- тут маска адреси, котра дивиться на білінг -!!!! auto vlan101 iface vlan101 inet manual #address #netmask vlan-raw-device ens224 auto vlan102 iface vlan102 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 auto vlan103 iface vlan103 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 auto vlan104 iface vlan104 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 auto vlan105 iface vlan105 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 auto vlan106 iface vlan106 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 auto vlan107 iface vlan107 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 auto vlan108 iface vlan108 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 auto vlan109 iface vlan109 inet manual #address 192.168.1.200 #netmask 255.255.255.0 vlan-raw-device ens224 Підіймаємо інтерфейси # ifup -a та переходимо до встановлення accel-ppp ==== Власне встановлення accel-ppp ==== # apt-get install -y build-essential git cmake gcc linux-headers-`uname -r` git libpcre3-dev libssl-dev liblua5.1-0-dev # git clone https://github.com/xebd/accel-ppp.git /opt/accel-ppp-code # mkdir /opt/accel-ppp-code/build # cd /opt/accel-ppp-code/build/ Збираємо з модулями **IPOE_DRIVER**, можливо, потім стане в пригоді і **VLAN_MON**, який потрібен і для //PPPoE// і для //IPoE//. # cmake -DBUILD_IPOE_DRIVER=TRUE -DBUILD_VLAN_MON_DRIVER=TRUE -DCMAKE_INSTALL_PREFIX=/usr -DKDIR=/usr/src/linux-headers-`uname -r` -DLUA=TRUE -DCPACK_TYPE=Debian10 .. //**Звертаємо особливу увагу**// на параметр **-DCPACK_TYPE=Debian** він повинен відповідати реальності. У кінці рядка обов'язково залишайте **..** - це вказує шлях до вихідного коду accel-ppp. Компілюємо. # make Якщо не встигаємо за виведенням, ще раз запускаємо компіляцію і переконуємося, що потрібні нам модулі скомпілювалися. # make [ 7%] Built target triton [ 37%] Built target accel-pppd [ 40%] Built target luasupp [ 48%] Built target radius [ 50%] Built target vlan-mon [ 52%] Built target pptp [ 57%] Built target pppoe [ 60%] Built target l2tp [ 61%] Built target sstp [ 66%] Built target ipoe [ 68%] Built target auth_chap_md5 [ 69%] Built target auth_pap [ 70%] Built target auth_mschap_v1 [ 72%] Built target auth_mschap_v2 [ 74%] Built target log_tcp [ 75%] Built target log_file [ 77%] Built target log_syslog [ 79%] Built target connlimit [ 81%] Built target sigchld [ 83%] Built target pppd_compat [ 85%] Built target ipv6pool [ 86%] Built target ippool [ 88%] Built target chap-secrets [ 89%] Built target logwtmp [ 92%] Built target ipv6_dhcp [ 93%] Built target ipv6_nd [ 97%] Built target shaper [ 98%] Built target accel-cmd [ 99%] Built target ipoe_drv [100%] Built target vlan_mon_drv Запаковуємо все в пакет # cpack -G DEB CPack: Create package using DEB CPack: Install projects CPack: - Run preinstall target for: accel-ppp CPack: - Install project: accel-ppp CPack: Create package Інсталюємо # dpkg -i accel-ppp.deb Якщо отримуємо помилку, значить ви не читаєте документацію, а саме перші 6 рядків. dpkg: warning: 'ldconfig' not found in PATH or not executable dpkg: warning: 'start-stop-daemon' not found in PATH or not executable dpkg: error: 2 expected programs not found in PATH or not executable Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin # mv /etc/accel-ppp.conf.dist /etc/accel-ppp.conf Чекаємо інтерфейси # ip a ==== Правимо конфіг під наші потреби ==== # nano /etc/accel-ppp.conf [modules] path=/usr/lib64/accel-ppp log_file pppoe auth_mschap_v2 radius sigchld pppd_compat shaper [core] log-error=/var/log/accel-ppp/core.log # в опції нижче вкрай рекомендується вказувати реальну кількість ядер процесора thread-count=4 [ppp] verbose=1 min-mtu=1000 mtu=1400 mru=1400 [lcp] echo-interval=30 echo-failure=3 [common] single-session=replace [pppoe] interface=ens192 interface=vlan101 interface=vlan102 interface=vlan103 interface=vlan104 interface=vlan105 interface=vlan106 interface=vlan107 interface=vlan108 interface=vlan109 [dns] dns1=8.8.4.4 dns2=8.8.8.8 [radius] dictionary=/usr/local/share/accel-ppp/radius/dictionary dictionary=/usr/local/share/accel-ppp/radius/radius.dict nas-identifier=accel-ppp nas-ip-address=адреса мережевої яка дивиться на білінг gw-ip-address=адреса мережевої яка дивиться на клієнтів auth-server=адреса білінгу:1812,ключ радіуса acct-server=адреса білінгу:1813,ключ радіуса dae-server=адреса мережевої яка дивиться на білінг:3799,ключ радіуса verbose=1 [client-ip-range] 10.0.0.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 copy=1 level=1 [pppd-compat] ip-up=/etc/ppp/if-up ip-down=/etc/ppp/if-down radattr-prefix=/var/run/radattr [shaper] #may need: ethtool -K eth0 tso off ufo off gso off gro off lro off up-limiter=police down-limiter=tbf attr-down=PPPD-Downstream-Speed-Limit attr-up=PPPD-Upstream-Speed-Limit verbose=1 [cli] telnet=127.0.0.1:2001 verbose=1 З огляду на те, що accel-ppp не вміє **ipset** через //CoA//, то рулити користувачами будемо скриптами **up/down** зазначеними в секції **[pppd-compat]** нашого конфігуратора. # mkdir /etc/ppp # nano /etc/ppp/if-up === if-up конфіг: === #!/bin/bash IP=`/usr/bin/awk '/Framed-IP-Address/ {print $2}' /var/run/radattr.$1` STATE=`/usr/bin/awk '/Filter-Id/ {print $2}' /var/run/radattr.$1` if [[ "$STATE" == "PASSIVE" || "$STATE" == "DOWN" || "$STATE" == "OFF-LINE" || "$STATE" == "NOT-EXIST" ]]; then /usr/sbin/ipset -A disabled $IP 2>/dev/null /usr/sbin/ipset -D active $IP 2>/dev/null else /usr/sbin/ipset -D disabled $IP 2>/dev/null /usr/sbin/ipset -A active $IP 2>/dev/null fi Далі: # nano /etc/ppp/if-down === if-down конфіг: === #!/bin/bash IP=`/usr/bin/awk '/Framed-IP-Address/ {print $2}' /var/run/radattr.$1` /usr/sbin/ipset -D disabled $IP 2>/dev/null /usr/sbin/ipset -D active $IP 2>/dev/null Роздаємо права # chmod +x /etc/ppp/if-up # chmod +x /etc/ppp/if-down Найчастіше під час встановлення або оновлення аццель затирає теку зі словниками тому перевіряємо # ls /usr/local/share/accel-ppp/radius/ Якщо такого немає, не страшно: # mkdir -p /usr/local/share/accel-ppp/radius/ # cp /opt/accel-ppp-code/accel-pppd/radius/dict/* /usr/local/share/accel-ppp/radius/ Створюємо свій словник атрибутів, щоб аццель розумів шейпи, одержувані від радіуса: # nano /usr/local/share/accel-ppp/radius/radius.dict Додаємо вміст: ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Downstream-Speed-Limit 231 integer Додаємо в автозапуск: #systemctl enable accel-ppp ==== Заливаємо фаєрволл ==== #nano /etc/init.d/firewall Додаємо вміст: #!/bin/bash # # firewall # # chkconfig: - 97 20 # ### BEGIN INIT INFO # Provides:firewall # Required-Start: $network # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: firewall builder ### END INIT INFO lock_path=/var/lock/firewall.lock # Список IPSETов ipset_list=( disabled ) VC=`which vconfig` IFC=`which ifconfig` ETT=`which ethtool` IPT=`which iptables` IPS=`which ipset` DIG=`which dig` CTL=`which sysctl` DNS_lookup="8.8.8.8" # OUT інтерфейс (інтернет) out_interface1="мережева яка дивиться в інтернет" # IP SRC-NAT для користувачів out_ext_ip1="зовнішній ip наса" # IP для редиректу на сторінку заглушку REDIRECT_IP="ip заглушки" # назва IPSETа для дозволених IP allowed_ipset="allowed" # Список дозволених сайтів та IP allowed_list=( Адреса білінгу 8.8.8.8 8.8.4.4 www.liqpay.com liqpay.com static.liqpay.com ecommerce.liqpay.com api.privatbank.ua login.privatbank.ua privat24.privatbank.ua www.privat24.ua privat24.ua liqpay.com www.liqpay.com static.liqpay.com ecommerce.liqpay.com fonts.googleapis.com ajax.googleapis.com my-payments-p24.privatbank.ua themes.googleusercontent.com www.google-analytics.com google-analytics.com ssl.google-analytics.com widget.siteheart.com static.siteheart.com www.googleadservices.com stats.g.doubleclick.net googleads.g.doubleclick.net qrapi.privatbank.ua js.honeybadger.io socauth.privatbank.ua www.googletagmanager.com st.privatbank.ua services.privatbank.ua mypayments.privatbank.ua client.siteheart.com fonts.gstatic.com esapi.siteheart.com crm.privatbank.ua ) postrouting() { # Очищаємо NAT $IPT -t nat -F POSTROUTING # NAT для користувачів $IPT -t nat -A POSTROUTING -s 10.0.0.0/8 -o $out_interface1 -j SNAT --to-source $out_ext_ip1 --persisten echo "POSTROUTING done" } input() { $IPT -F INPUT # Якщо використовуєте Fail2ban SSH $IPT -N fail2ban-ssh $IPT -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh $IPT -A INPUT -i eth1 -s "mgmt_net" -j ACCEPT $IPT -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPT -A INPUT -p TCP -m multiport --dports 6881:6889 -m state --state NEW -j DROP $IPT -A INPUT -p UDP -m multiport --dports 6881:6889 -j DROP $IPT -A INPUT -p TCP -m multiport --dports 49001 -m state --state NEW -j DROP $IPT -A INPUT -p UDP -m multiport --dports 49001 -j DROP $IPT -A INPUT -p TCP -m multiport --dports 135,137,138,139,445 -j DROP echo "INPUT done" } raw_rules() { # очищаємо RAW таблиці $IPT -t raw -F PREROUTING $IPT -t raw -F OUTPUT echo "RAW rules done" } forward() { # Очищаемо FORWARD $IPT -F FORWARD # Пропускаємо трафік до дозволених IP $IPT -A FORWARD -m set --match-set $allowed_ipset dst -j ACCEPT # Блокуємо трафік користувачів в IPSETах for ipset_name in ${ipset_list[*]} do $IPT -A FORWARD -m set --match-set $ipset_name src -j REJECT --reject-with icmp-proto-unreach done echo "FORWARD done" } prerouting() { # Очищаємо PREROUTING $IPT -t nat -F PREROUTING # Пропускаємо трафік до дозволених IP $IPT -t nat -A PREROUTING -m set --match-set $allowed_ipset dst -j ACCEPT # Перенаправляємо користувачів з IPSETів на сторінки заглушки $IPT -t nat -A PREROUTING -m set --match-set disabled src -p tcp --dport 80 -j DNAT --to-destination $REDIRECT_IP:80 echo "PREROUTING done" } allow() { # Очищаємо IPSET дозволених IP $IPS -F $allowed_ipset for row in ${allowed_list[*]} do # перевіряємо запис зі списку дозволених, чи є він IP адресою if [[ $row =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then # додаємо цей IP до списку дозволених $IPS add $allowed_ipset $row > /dev/null 2>&1 else # запис виявився доменом, резолвімо його IP через dig for ip in `$DIG $row +short @$DNS_lookup` do # додаємо отримані через dns IP адреси до списку дозволених $IPS add $allowed_ipset $ip > /dev/null 2>&1 done fi done echo "ALLOWED done" } start() { if [ -f $lock_path ]; then echo "Firewall is running" exit 0 else touch $lock_path fi echo "Start building firewall" for ipset_name in ${ipset_list[*]} do $IPS -N $ipset_name iphash > /dev/null 2>&1 done $IPS -N active iphash > /dev/null 2>&1 $IPS -N $allowed_ipset iphash > /dev/null 2>&1 allow input forward prerouting postrouting raw_rules $CTL -p > /dev/null 2>&1 echo "Firewall rules created" } stop() { if [ ! -f $lock_path ]; then echo "Firewall is stoped" exit 0 else rm -f $lock_path fi $IPT -F INPUT $IPT -F FORWARD $IPT -t nat -F $IPT -t mangle -F $IPT -t raw -F PREROUTING $IPT -t raw -F OUTPUT $IPT -P FORWARD ACCEPT echo "FORWARD/NAT/RAW flushed" $CTL -p > /dev/null 2>&1 } show() { $IPT -L INPUT -v -n --line-numbers $IPT -L FORWARD -v -n --line-numbers $IPT -t nat -L PREROUTING -v -n --line-numbers $IPT -t nat -L POSTROUTING -v -n --line-numbers $IPT -t raw -L -v -n --line-numbers $IPS list $allowed_ipset } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; allow) allow ;; input) input ;; forward) forward ;; pre) prerouting ;; post) postrouting ;; raw) raw_rules ;; show) show ;; *) echo "Usage: $0 {start|stop|restart|allow|input|forward|pre|post|raw|show}" esac //**Звертаємо увагу**// на #NAT для користувачів, де вказуємо, яку клієнтську підмережу натити. Робимо наш ферволл-скрипт виконуваним: # chmod +x /etc/init.d/firewall # bash /etc/init.d/firewall start І додаємо його в автозавантаження # /lib/systemd/systemd-sysv-install enable firewall Дивимося чи створилися таблички: # ipset list У відповідь ми маємо побачити приблизно таке: Name: disabled Type: hash:ip Revision: 4 Header: family inet hashsize 1024 maxelem 65536 Size in memory: 88 References: 2 Number of entries: 0 Members: Name: active Type: hash:ip Revision: 4 Header: family inet hashsize 1024 maxelem 65536 Size in memory: 88 References: 0 Number of entries: 0 Members: - саме в ці таблички і будуть запихатися юзери скриптами //if-up// і //if-down// ==== Запускаємо accel-ppp ==== # service accel-ppp start Чекаємо логи # cat /var/log/accel-ppp/core.log # cat /var/log/accel-ppp/emerg.log # cat /var/log/accel-ppp/accel-ppp.log **В логах має бути чисто** \\ //**Типова помилка**// - юзер не підключається з помилкою авторизації і в лозі: \\ radius: out of memory - перевірте шляхи до словників і наявність самих словників. __Налаштовуємо ротацію логів:__ # nano /etc/logrotate.d/accel-ppp Додаємо вміст: /var/log/accel-ppp/*.log { missingok sharedscripts postrotate test -r /var/run/accel-pppd.pid && kill -HUP `cat /var/run/accel-pppd.pid` endscript } ==== Завершувальний этап ==== Ребутуємося, підключаємо юзера. На стороні наса перевіряємо чи коректно видався шейп. # telnet 127.0.0.1 2001 # show sessions {{:mgaccelpppoe_traff_shaping.png|}} \\ ===== Копірайти ===== Автор даного мануалу - [[https://local.com.ua/forum/profile/12403-maxx/|Себастьян Перейро]] {{accel_share.zip|Завантажити мануал в оригіналі}}