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

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


mgaccel-ppp

Розбіжності

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

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

Наступна ревізія
Попередня ревізія
mgaccel-ppp [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
mgaccel-ppp [2023/07/27 10:37] (поточний)
borisov
Рядок 1: Рядок 1:
-====== Установка и настройка Accel-ppp на примере Debian 9 ======+====== Встановлення та налаштування Accel-ppp на прикладі Debian 9 ======
  
-{{:accel-ppp-logo.png? |https://accel-ppp.org/wiki/doku.php?id=ru:start}}  [[https://accel-ppp.org/wiki/doku.php?id=ru:start|Официальная документация]] +{{:accel-ppp-logo.png? |https://accel-ppp.org/wiki/doku.php?id=ru:start}}  [[https://accel-ppp.org/wiki/doku.php?id=ru:start|Офіційна документація]] 
-===== Сборка и установка =====+===== Збірка та встановлення =====
  
 <code> <code>
Рядок 23: Рядок 23:
 </code> </code>
  
-===== Настройка =====+===== Налаштування =====
  
  
-Lua скрипт для формирования username-ов (/etc/accel-ppp.lua):+Lua скрипт для формування username-мів (/etc/accel-ppp.lua):
  
 <file config /etc/accel-ppp.lua> <file config /etc/accel-ppp.lua>
Рядок 70: Рядок 70:
 ===== Logrotate ===== ===== Logrotate =====
  
-Создадим конфигурацию для ротации логов (/etc/logrotate.d/accel-ppp): +Створимо конфігурацію для ротації логів (/etc/logrotate.d/accel-ppp): 
  
 <file config /etc/logrotate.d/accel-ppp> <file config /etc/logrotate.d/accel-ppp>
Рядок 86: Рядок 86:
  
 ===== Firewall ===== ===== Firewall =====
-Проверьте что все команды из скрипта (vconfig, ifconfig, ethtool, iptables, ipset, dig, sysctl) у вас доступныВ случае отсутствия каких-либо бинарников нужно установить их самостоятельно. \\ +Перевірте, що всі команди зі скрипта (vconfig, ifconfig, ethtool, iptables, ipset, dig, sysctl) у вас доступніУ разі відсутності будь-яких бінарників потрібно встановити їх самостійно. \\ 
-Скрипт для запуска на автостарте. Например в кронтаб:+Скрипт для запуску на автостарті. Наприклад у кронтаб:
  
 <file crontab> <file crontab>
Рядок 111: Рядок 111:
 lock_path=/var/lock/firewall.lock lock_path=/var/lock/firewall.lock
  
-# Список IPSETов+# Список IPSETів
 ipset_list=( ipset_list=(
 disabled disabled
Рядок 126: Рядок 126:
 DNS_lookup="1.1.1.1" DNS_lookup="1.1.1.1"
  
-# OUT интерфейс (интернет)+# OUT інтерфейс (інтернет)
 out_interface1="eth1" out_interface1="eth1"
  
-# IP SRC-NAT для пользователей+# IP SRC-NAT для користувачів
 out_ext_ip1="public_ip_for_nat" out_ext_ip1="public_ip_for_nat"
  
-# IP для редиректа на страницу заглушку+# IP для редиректу на сторінку заглушки
 REDIRECT_IP="10.100.1.2" REDIRECT_IP="10.100.1.2"
  
-# название IPSETа для разрешенных IP+# назва IPSETа для дозволених IP
 allowed_ipset="allowed" allowed_ipset="allowed"
  
-# Список разрешенных сайтов и IP+# Список дозволених сайтів та IP
 allowed_list=( allowed_list=(
 ubilling.isp ubilling.isp
Рядок 185: Рядок 185:
  $IPT -t nat -F POSTROUTING  $IPT -t nat -F POSTROUTING
  
- # NAT для пользователей+ # NAT для користувачів
  $IPT -t nat -A POSTROUTING -s 100.64.0.0/22 -o $out_interface1 -j SNAT --to-source $out_ext_ip1 --persisten  $IPT -t nat -A POSTROUTING -s 100.64.0.0/22 -o $out_interface1 -j SNAT --to-source $out_ext_ip1 --persisten
  echo "POSTROUTING done"  echo "POSTROUTING done"
Рядок 193: Рядок 193:
         $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
Рядок 208: Рядок 208:
  
 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
Рядок 219: Рядок 219:
  $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
Рядок 232: Рядок 232:
    
 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
  
Рядок 245: Рядок 245:
  
 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}\.[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
Рядок 368: Рядок 368:
 </file> </file>
  
-===== Рекомендации =====+===== Рекомендації =====
  
 -> MTU \\ -> MTU \\
-Поднимать MTU необходимотолько на qinq интерфейсе(bond и входящие в него eth).Так как используется лишний тег. На саб-интерфейсах с одной меткой можно не подниматьтак как поле vlan id и так во фрейме есть и за счет тега не растет. \\+Піднімати MTU необхідно тільки на qinqнтерфейсі (bond і eth, що входять до нього), оскільки використовується зайвий тег. На саб-інтерфейсах з однією міткою можна не підніматиоскільки поле vlan id і так у фреймі є і за рахунок тега не зростає. \\
 \\ \\ \\ \\
--> Таблица ARP \\ +-> Таблиця ARP \\ 
-При количествах сессий более 700 и при режиме DHCP v4 необходимо править sysctl, а именно расширять таблицу ARP, так как новые ядра не пишут ругань в dmesg и происходит аномалия при параметрах по умолчанию. \\+При кількостях сесій понад 700 і при режимі DHCP v4 необхідно правити sysctl, а саме розширювати таблицю ARP, так як нові ядра не пишуть лайку в dmesg і відбувається аномалія при параметрах за замовчуванням. \\
 <file config /etc/sysctl.conf> <file config /etc/sysctl.conf>
 net.ipv4.neigh.default.gc_thresh1 = 4096 net.ipv4.neigh.default.gc_thresh1 = 4096
Рядок 381: Рядок 381:
 </file> </file>
  
--> Для работы шейпера\полисера на примере eth1 \\ +-> Для роботи шейпера\полісера на прикладі eth1 \\
 <code> <code>
 # cat /etc/network/interfaces.d/eth1 # cat /etc/network/interfaces.d/eth1
Рядок 396: Рядок 395:
 </code> </code>
  
--> Распределение сетевых прерываний для QINQ траффика \\  +-> Розподіл мережевих переривань для QINQ трафіку \\  
-Нужно поставить драйвера с [[https://github.com/serhepopovych/ixgbe/tree/ixgbe-5.6.3/double-vlan|гита]]  +Потрібно поставити драйвера з [[https://github.com/serhepopovych/ixgbe/tree/ixgbe-5.6.3/double-vlan|гіта]]  
-====== Подготовка FreeRADIUS ====== +====== Підготовка FreeRADIUS ====== 
-Не забываем про словарь для нашего NAS. Правим файл (на биллинговом сервере!) /usr/local/etc/raddb/dictionary. \\ +Не забуваємо про словник для нашого NAS. Правимо файл (на білінговому сервері!) /usr/local/etc/raddb/dictionary. \\ 
-Раскомментируем строку с последующим перезапуском freeradius.+Розкоментуємо рядок із подальшим перезапуском freeradius.
 <code> <code>
 $INCLUDE       /usr/local/etc/raddb/dictionary_preset/accel-ppp.dictionary $INCLUDE       /usr/local/etc/raddb/dictionary_preset/accel-ppp.dictionary
 </code> </code>
  
-Так же, не забываем, что добавление новых серверов доступа требует перезапуска FreeRADIUS:+Так само, не забуваємощо додавання нових серверів доступу вимагає перезапуску FreeRADIUS:
 <code> <code>
 # service radiusd restart # service radiusd restart
 </code> </code>
mgaccel-ppp.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1