Користувальницькькі налаштування

Налаштування сайту


mgaccel-ppp-pppoe

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
mgaccel-ppp-pppoe [2023/07/29 13:11]
nightfly
mgaccel-ppp-pppoe [2023/07/29 13:27] (поточний)
nightfly
Рядок 48: Рядок 48:
 {{:mgaccelpppoe_nas_reset.png|}} \\ {{:mgaccelpppoe_nas_reset.png|}} \\
  
-===== Встановлюємо Accell-ppp =====+===== Встановлюємо Accel-ppp =====
  
 ==== Попередні маніпуляції ==== ==== Попередні маніпуляції ====
Рядок 90: Рядок 90:
 </code> </code>
  
-Что-бы не слетел после ребута+Щоб не злетів після ребуту 
 <code> <code>
 # echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf # echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
 </code> </code>
  
-Проверяем поддержку влан+Перевіряємо підтримку влан 
 <code> <code>
 # lsmod | grep 8021q # lsmod | grep 8021q
 </code> </code>
  
-Если вывод пустой то подгружаем их+Якщо вивід порожнійто довантажуємо необхідні модулі 
 <code> <code>
 # modprobe 8021q # modprobe 8021q
 </code> </code>
  
-Чекаем интерфейсы+Чекаєм інтерфейси 
 <code> <code>
 # ip a # ip a
 </code> </code>
  
-Приводим наш конфиг ///etc/network/interfaces// к нормальному виду, где: +Приводимо наш конфіг ///etc/network/interfaces// до нормального вигляду, де: 
-  * интерфейс **ens192** смотрит в мир  +  * інтерфейс **ens192** дивиться у світ  
-  * интерфейс **ens224** смотрит на клиентов +  * інтерфейс **ens224** дивиться на клієнтів 
-  * интерфейс **ens266** смотрит на биллинг+  * інтерфейс **ens266** дивиться на білінг 
 + 
 +Створюємо пачку VLANів на потрібному інтерфейсі. Оскільки ми юзаємо PPPoE, то IP адреси на цих VLANах нам не потрібні. 
 +У випадку ж з IPoE **manual** у визначенні інтерфейсу міняємо на **static** і вказуємо IP адреси:
  
-Создаем пачку VLANов на нужном интерфейсе. Так как мы юзаем PPPoE, то IP адреса на этих VLANах нам не нужны.\\ 
-В случае же с IPoE **manual** в определении интерфейса меняем на **static** и указываем IP адреса: 
 <code> <code>
 auto vlan102  auto vlan102 
-здесь не manual, a static  +тут не manual, a static  
 iface vlan102 inet static   iface vlan102 inet static  
-здесь не забываем указать адреса+тут не забуваємо вказати адреси
 address 192.168.1.200  address 192.168.1.200 
 netmask 255.255.255.0 netmask 255.255.255.0
Рядок 127: Рядок 132:
 </code> </code>
  
-Ниже приведен конфиг ///etc/network/interfaces// целиком:+Нижче наведено конфіг ///etc/network/interfaces// цілком: 
 <code> <code>
 # The loopback network interface # The loopback network interface
Рядок 145: Рядок 151:
 allow-hotplug ens224 allow-hotplug ens224
 iface ens224 inet static iface ens224 inet static
-address !!!!- здесь адрес сетевой которая смотрит на клиентов -!!!! +address !!!!- тут адреса мережевого інтерфейсу, котрий дивиться на клієнтів -!!!! 
-netmask !!!!- здесь ваша маска для адреса, который смотрит на клиентов -!!!!+netmask !!!!- тут маска адреси, котра дивиться на клієнтів -!!!!
  
 allow-hotplug ens256 allow-hotplug ens256
 iface ens256 inet static iface ens256 inet static
-address !!!!- здесь адрес сетевой которая смотрит на биллинг -!!!! +address !!!!- тут адреса мережевого інтерфейсу, котрий дивиться на біллінг -!!!! 
-netmask !!!!- здесь ваша маска для адреса, который смотрит на биллинг -!!!!+netmask !!!!- тут маска адреси, котра дивиться на білінг -!!!!
                  
 auto vlan101 auto vlan101
Рядок 208: Рядок 214:
 </code> </code>
  
-Поднимаем интерфейсы+Підіймаємо інтерфейси  
 <code> <code>
 # ifup -a # ifup -a
 </code> </code>
  
-и приступаем к установке accel-ppp+та переходимо до встановлення accel-ppp 
 + 
 +==== Власне встановлення accel-ppp ====
  
-==== Собственно, установка accel-ppp ==== 
 <code> <code>
 # apt-get install -y build-essential git cmake gcc linux-headers-`uname -r` git libpcre3-dev libssl-dev liblua5.1-0-dev # apt-get install -y build-essential git cmake gcc linux-headers-`uname -r` git libpcre3-dev libssl-dev liblua5.1-0-dev
Рядок 223: Рядок 231:
 </code> </code>
  
-Собираем с модулями **IPOE_DRIVER**, возможно потом пригодится и **VLAN_MON** который нужен и для //PPPoE// и для //IPoE//.+Збираємо з модулями **IPOE_DRIVER**, можливопотім стане в пригоді і **VLAN_MON**, який потрібен і для //PPPoE// і для //IPoE//. 
 <code> <code>
 # 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 .. # 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 ..
 </code> </code>
  
-//**Обращаем особое внимание**// на параметр **-DCPACK_TYPE=Debian** он должен соответствовать реальности+//**Звертаємо особливу увагу**// на параметр **-DCPACK_TYPE=Debian** він повинен відповідати реальності
-В конце строки обязательно оставляйте **..** - это указывает путь к исходному коду accel-ppp. +У кінці рядка обов'язково залишайте **..** - це вказує шлях до вихідного коду accel-ppp. 
-Компилируем.+Компілюємо. 
 <code> <code>
 # make # make
 </code> </code>
  
-Если не успеваем за выводом, еще раз запускаем компиляцию и убеждаемся что нужные нам модули скомпилились.+Якщо не встигаємо за виведенням, ще раз запускаємо компіляцію і переконуємося, що потрібні нам модулі скомпілювалися. 
 <code> <code>
 # make # make
Рядок 269: Рядок 280:
 [100%] Built target vlan_mon_drv [100%] Built target vlan_mon_drv
 </code> </code>
-Упаковываем все в пакет+ 
 +Запаковуємо все в пакет 
 <code> <code>
 # cpack -G DEB # cpack -G DEB
Рядок 280: Рядок 293:
 </code> </code>
  
-Инсталлируем+Інсталюємо 
 <code> <code>
 # dpkg -i accel-ppp.deb # dpkg -i accel-ppp.deb
 </code> </code>
  
-Если получаем ошибку, значит вы не читаете документацию, а именно первые строк.+Якщо отримуємо помилку, значить ви не читаєте документацію, а саме перші 6 рядків. 
 <code> <code>
 dpkg: warning: 'ldconfig' not found in PATH or not executable dpkg: warning: 'ldconfig' not found in PATH or not executable
Рядок 297: Рядок 312:
 </code> </code>
  
-Чекаем интерфейсы+Чекаємо інтерфейси 
 <code> <code>
 # ip a # ip a
 </code> </code>
  
-====Правим конфиг под наши нужды====+==== Правимо конфіг під наші потреби ==== 
 <code ini> <code ini>
 # nano /etc/accel-ppp.conf # nano /etc/accel-ppp.conf
Рядок 318: Рядок 335:
 [core] [core]
 log-error=/var/log/accel-ppp/core.log log-error=/var/log/accel-ppp/core.log
-# в опции ниже крайне рекмендуется указывать реальное количество ядер процессора +# в опції нижче вкрай рекомендується вказувати реальну кількість ядер процесора 
 thread-count=4     thread-count=4    
  
Рядок 354: Рядок 371:
 dictionary=/usr/local/share/accel-ppp/radius/radius.dict dictionary=/usr/local/share/accel-ppp/radius/radius.dict
 nas-identifier=accel-ppp nas-identifier=accel-ppp
-nas-ip-address=адрес сетевой которая смотрит на биллинг +nas-ip-address=адреса мережевої яка дивиться на білінг 
-gw-ip-address=адрес сетевой которая смотрит на клиентов +gw-ip-address=адреса мережевої яка дивиться на клієнтів 
-auth-server=адрес биллинга:1812,ключ радиуса +auth-server=адреса білінгу:1812,ключ радіуса 
-acct-server=адрес биллинга:1813,ключ радиуса +acct-server=адреса білінгу:1813,ключ радіуса 
-dae-server=адрес сетевой которая смотрит на биллинг:3799,ключ радиуса+dae-server=адреса мережевої яка дивиться на білінг:3799,ключ радіуса
  verbose=1  verbose=1
  
Рядок 389: Рядок 406:
 </code> </code>
  
-В силу того что accel-ppp не умеет **ipset** через //CoA//, то рулить юзерами будем скриптами **up/down** указанными в секции **[pppd-compat]** нашего конфига.+З огляду на те, що accel-ppp не вміє **ipset** через //CoA//, то рулити користувачами будемо скриптами **up/down** зазначеними в секції **[pppd-compat]** нашого конфігуратора. 
 <code> <code>
 # mkdir /etc/ppp # mkdir /etc/ppp
Рядок 395: Рядок 413:
 </code> </code>
  
-===if-up конфиг: ===+=== if-up конфіг: === 
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Рядок 410: Рядок 429:
 </code> </code>
  
-Далее:+Далі: 
 <code> <code>
 # nano /etc/ppp/if-down # nano /etc/ppp/if-down
 </code> </code>
  
-===if-down конфиг: ===+=== if-down конфіг: === 
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Рядок 423: Рядок 444:
 </code> </code>
  
-Раздаем права:+Роздаємо права 
 <code> <code>
 # chmod +x /etc/ppp/if-up # chmod +x /etc/ppp/if-up
Рядок 429: Рядок 451:
 </code> </code>
  
-Зачастую при установке либо обновлении аццель затирает папку со словарями потому проверяем+Найчастіше під час встановлення або оновлення аццель затирає теку зі словниками тому перевіряємо 
 <code> <code>
 # ls /usr/local/share/accel-ppp/radius/ # ls /usr/local/share/accel-ppp/radius/
 </code> </code>
  
-Если такового нет, не страшно:+Якщо такого немає, не страшно: 
 <code> <code>
 # mkdir -p /usr/local/share/accel-ppp/radius/ # mkdir -p /usr/local/share/accel-ppp/radius/
Рядок 440: Рядок 464:
 </code> </code>
  
-Создаем свой словарь атрибутов, чтобы аццель понимал шейпы получаемые от радиуса:+Створюємо свій словник атрибутів, щоб аццель розумів шейпи, одержувані від радіуса: 
 <code> <code>
 # nano /usr/local/share/accel-ppp/radius/radius.dict # nano /usr/local/share/accel-ppp/radius/radius.dict
 </code> </code>
  
-Добавляем содержимое:+Додаємо вміст: 
 <code> <code>
 ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer ATTRIBUTE PPPD-Upstream-Speed-Limit 230 integer
Рядок 451: Рядок 477:
 </code> </code>
  
-Добавляем в автозапуск:+Додаємо в автозапуск: 
 <code> <code>
 #systemctl enable accel-ppp #systemctl enable accel-ppp
 </code> </code>
  
-====Заливаем фаерволл====+==== Заливаємо фаєрволл ====
 <code> <code>
 #nano /etc/init.d/firewall #nano /etc/init.d/firewall
 </code> </code>
  
-Добавляем содержимое:+Додаємо вміст: 
 <code> <code>
 #!/bin/bash #!/bin/bash
Рядок 495: Рядок 523:
 DNS_lookup="8.8.8.8" DNS_lookup="8.8.8.8"
    
-# OUT интерфейс (интернет) +# OUT інтерфейс (інтернет) 
-out_interface1="сетевая которая смотрит в интернет"+out_interface1="мережева яка дивиться в інтернет"
    
-# IP SRC-NAT для пользователей +# IP SRC-NAT для користувачів 
-out_ext_ip1="внешний ip наса"+out_ext_ip1="зовнішній ip наса"
    
-# IP для редиректа на страницу заглушку+# IP для редиректу на сторінку заглушку
 REDIRECT_IP="ip заглушки" REDIRECT_IP="ip заглушки"
    
-# название IPSETа для разрешенных IP+# назва IPSETа для дозволених IP
 allowed_ipset="allowed" allowed_ipset="allowed"
    
-# Список разрешенных сайтов и IP+# Список дозволених сайтів та IP
 allowed_list=( allowed_list=(
-Адрес биллинга+Адреса білінгу
 8.8.8.8 8.8.8.8
 8.8.4.4 8.8.4.4
Рядок 551: Рядок 579:
  
 postrouting() { postrouting() {
-    # Очищаем NAT+    # Очищаємо NAT
     $IPT -t nat -F POSTROUTING     $IPT -t nat -F POSTROUTING
    
-    # NAT для пользователей+    # NAT для користувачів
     $IPT -t nat -A POSTROUTING -s 10.0.0.0/8 -o $out_interface1 -j SNAT --to-source $out_ext_ip1 --persisten     $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"     echo "POSTROUTING done"
Рядок 562: Рядок 590:
     $IPT -F INPUT     $IPT -F INPUT
    
-    # Если используете Fail2ban SSH+    # Якщо використовуєте Fail2ban SSH
     $IPT -N fail2ban-ssh     $IPT -N fail2ban-ssh
     $IPT -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh     $IPT -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh
Рядок 577: Рядок 605:
    
 raw_rules() { raw_rules() {
-    # очищаем RAW таблицы+    # очищаємо RAW таблиці
     $IPT -t raw -F PREROUTING     $IPT -t raw -F PREROUTING
     $IPT -t raw -F OUTPUT     $IPT -t raw -F OUTPUT
Рядок 585: Рядок 613:
    
 forward() { forward() {
-    # Очищаем FORWARD+    # Очищаемо FORWARD
     $IPT -F FORWARD     $IPT -F FORWARD
    
-    # Пропускаем трафик к разрешенным IP+    # Пропускаємо трафік до дозволених IP
       $IPT -A FORWARD -m set --match-set $allowed_ipset dst -j ACCEPT       $IPT -A FORWARD -m set --match-set $allowed_ipset dst -j ACCEPT
    
-    # Блокируем трафик пользователей в IPSETах+    # Блокуємо трафік користувачів в IPSETах
     for ipset_name in ${ipset_list[*]}     for ipset_name in ${ipset_list[*]}
     do     do
Рядок 601: Рядок 629:
    
 prerouting() { prerouting() {
-    # Очищаем PREROUTING+    # Очищаємо PREROUTING
     $IPT -t nat -F PREROUTING     $IPT -t nat -F PREROUTING
    
-    # Пропускаем трафик к разрешенным IP+    # Пропускаємо трафік до дозволених IP
     $IPT -t nat -A PREROUTING -m set --match-set $allowed_ipset dst -j ACCEPT     $IPT -t nat -A PREROUTING -m set --match-set $allowed_ipset dst -j ACCEPT
    
-    # Перенаправляем пользователей из IPSETов на страницы заглушки+    # Перенаправляємо користувачів з IPSETів на сторінки заглушки
     $IPT -t nat -A PREROUTING -m set --match-set disabled src -p tcp --dport 80 -j DNAT --to-destination $REDIRECT_IP:80     $IPT -t nat -A PREROUTING -m set --match-set disabled src -p tcp --dport 80 -j DNAT --to-destination $REDIRECT_IP:80
    
Рядок 614: Рядок 642:
    
 allow() { allow() {
-    # Очищаем IPSET разрешенных IP+    # Очищаємо IPSET дозволених IP
     $IPS -F $allowed_ipset     $IPS -F $allowed_ipset
    
     for row in ${allowed_list[*]}     for row in ${allowed_list[*]}
     do     do
-   # проверяем запись из списка разрешенных, явлияется ли она IP адресом+   # перевіряємо запис зі списку дозволених, чи є він IP адресою
     if [[ $row =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];     if [[ $row =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]];
     then     then
-    # добавляем этот IP в список разрешенных+    # додаємо цей IP до списку дозволених
     $IPS add $allowed_ipset $row > /dev/null 2>&1     $IPS add $allowed_ipset $row > /dev/null 2>&1
     else     else
-    # запись оказалась доменом, резолвим его IP через dig+    # запис виявився доменом, резолвімо його IP через dig
       for ip in `$DIG $row +short @$DNS_lookup`       for ip in `$DIG $row +short @$DNS_lookup`
     do     do
-    # добавляем полученные через dns IP адрес в список разрешенных+    # додаємо отримані через dns IP адреси до списку дозволених
     $IPS add $allowed_ipset $ip > /dev/null 2>&1     $IPS add $allowed_ipset $ip > /dev/null 2>&1
     done     done
Рядок 735: Рядок 763:
 </code> </code>
  
-//**Обращаем внимание**// на #NAT для пользователейгде указываем какую клиентскую подсеть натить.+//**Звертаємо увагу**// на #NAT для користувачів, де вказуємо, яку клієнтську підмережу натити. 
 + 
 +Робимо наш ферволл-скрипт виконуваним:
  
-Делаем наш ферволл-скрипт исполняемым: 
 <code> <code>
 # chmod +x /etc/init.d/firewall # chmod +x /etc/init.d/firewall
Рядок 743: Рядок 772:
 </code> </code>
  
-И добавляем его в автозагрузку+ 
 +І додаємо його в автозавантаження 
 <code> <code>
 # /lib/systemd/systemd-sysv-install enable firewall # /lib/systemd/systemd-sysv-install enable firewall
 </code> </code>
  
-Смотрим или создались таблички:+Дивимося чи створилися таблички: 
 <code> <code>
 # ipset list # ipset list
 </code> </code>
  
-В ответ мы должны увидеть примерно следующее:+У відповідь ми маємо побачити приблизно таке: 
 <code ini> <code ini>
 Name: disabled Name: disabled
Рядок 774: Рядок 807:
 </code> </code>
  
-именно в эти таблички и будут запихиваться юзеры скриптами //if-up// и //if-down//+саме в ці таблички і будуть запихатися юзери скриптами //if-up// і //if-down//
  
-====Запускаем accel-ppp====+==== Запускаємо accel-ppp ====
 <code> <code>
 # service accel-ppp start # service accel-ppp start
 </code> </code>
  
-Чекаем логи+Чекаємо логи 
 <code> <code>
 # cat /var/log/accel-ppp/core.log # cat /var/log/accel-ppp/core.log
Рядок 788: Рядок 822:
 </code> </code>
  
-**В логах должно быть чисто** \\ +**В логах має бути чисто** \\ 
-//**Типичная ошибка**// - юзер не подключается с ошибкой авторизации и в логе: \\+//**Типова помилка**// - юзер не підключається з помилкою авторизації і в лозі: \\ 
 <code> <code>
 radius: out of memory radius: out of memory
 </code> </code>
- - проверьте пути к словарям и наличие самих словарей. 
  
-__Настраиваем ротацию логов:__+ - перевірте шляхи до словників і наявність самих словників. 
 + 
 +__Налаштовуємо ротацію логів:__ 
 <code> <code>
 # nano /etc/logrotate.d/accel-ppp # nano /etc/logrotate.d/accel-ppp
 </code> </code>
  
-Добавляем содержимое:+Додаємо вміст: 
 <code bash> <code bash>
 /var/log/accel-ppp/*.log { /var/log/accel-ppp/*.log {
Рядок 811: Рядок 849:
 </code> </code>
  
-====Завершающий этап==== +==== Завершувальний этап ==== 
-Ребутимся, подключаем юзера.+ 
 +Ребутуємося, підключаємо юзера
 + 
 +На стороні наса перевіряємо чи коректно видався шейп.
  
-На стороне наса проверяем или корректно выдался шейп. 
 <code> <code>
 # telnet 127.0.0.1 2001 # telnet 127.0.0.1 2001
Рядок 821: Рядок 861:
 {{:mgaccelpppoe_traff_shaping.png|}} \\ {{:mgaccelpppoe_traff_shaping.png|}} \\
  
-=====Копирайт===== +===== Копірайти ===== 
-Создатель данного мануала - [[https://local.com.ua/forum/profile/12403-maxx/|Себастьян Перейро]]+ 
 +Автор даного мануалу - [[https://local.com.ua/forum/profile/12403-maxx/|Себастьян Перейро]]
  
-{{accel_share.zip|Скачать мануал в оригинале}}+{{accel_share.zip|Завантажити мануал в оригіналі}}
  
mgaccel-ppp-pppoe.1690625461.txt.gz · Востаннє змінено: 2023/07/29 13:11 повз nightfly