Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Наступна ревізія | Попередня ревізія | ||
|
mgaccel-ppp [2022/09/24 14:39] 127.0.0.1 зовнішнє редагування |
mgaccel-ppp [2023/07/27 10:37] (поточний) borisov |
||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| - | ====== | + | ====== |
| - | {{: | + | {{: |
| - | ===== Сборка | + | ===== Збірка |
| < | < | ||
| Рядок 23: | Рядок 23: | ||
| </ | </ | ||
| - | ===== Настройка ===== | + | ===== Налаштування |
| - | Lua скрипт для формирования username-ов (/ | + | Lua скрипт для формування username-мів (/ |
| <file config / | <file config / | ||
| Рядок 70: | Рядок 70: | ||
| ===== Logrotate ===== | ===== Logrotate ===== | ||
| - | Создадим конфигурацию для ротации логов (/ | + | Створимо конфігурацію для ротації логів (/ |
| <file config / | <file config / | ||
| Рядок 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=/ | lock_path=/ | ||
| - | # Список IPSETов | + | # Список IPSETів |
| ipset_list=( | ipset_list=( | ||
| disabled | disabled | ||
| Рядок 126: | Рядок 126: | ||
| DNS_lookup=" | DNS_lookup=" | ||
| - | # OUT интерфейс (интернет) | + | # OUT інтерфейс (інтернет) |
| out_interface1=" | out_interface1=" | ||
| - | # IP SRC-NAT для | + | # IP SRC-NAT для |
| out_ext_ip1=" | out_ext_ip1=" | ||
| - | # IP для редиректа на страницу заглушку | + | # IP для редиректу на сторінку заглушки |
| REDIRECT_IP=" | REDIRECT_IP=" | ||
| - | # название | + | # назва IPSETа для |
| allowed_ipset=" | allowed_ipset=" | ||
| - | # Список | + | # Список |
| 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/ | $IPT -t nat -A POSTROUTING -s 100.64.0.0/ | ||
| echo " | echo " | ||
| Рядок 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 |
| $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ах |
| 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 |
| $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ов на страницы заглушки | + | # Перенаправляємо користувачів |
| $IPT -t nat -A PREROUTING -m set --match-set disabled src -p tcp --dport 80 -j DNAT --to-destination $REDIRECT_IP: | $IPT -t nat -A PREROUTING -m set --match-set disabled src -p tcp --dport 80 -j DNAT --to-destination $REDIRECT_IP: | ||
| Рядок 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, | + | if [[ $row =~ ^[0-9]{1, |
| then | then | ||
| - | # добавляем этот IP в список разрешенных | + | # додаємо цей |
| $IPS add $allowed_ipset $row > /dev/null 2>&1 | $IPS add $allowed_ipset $row > /dev/null 2>&1 | ||
| else | else | ||
| - | # запись оказалась доменом, | + | # запис |
| for ip in `$DIG $row +short @$DNS_lookup` | for ip in `$DIG $row +short @$DNS_lookup` | ||
| do | do | ||
| - | # добавляем полученные | + | # додаємо отримані через dns IP-адреси до списку дозволених |
| $IPS add $allowed_ipset $ip > /dev/null 2>&1 | $IPS add $allowed_ipset $ip > /dev/null 2>&1 | ||
| done | done | ||
| Рядок 368: | Рядок 368: | ||
| </ | </ | ||
| - | ===== Рекомендации ===== | + | ===== Рекомендації ===== |
| -> MTU \\ | -> MTU \\ | ||
| - | Поднимать MTU необходимо, только на qinq интерфейсе(bond и входящие в него eth).Так как используется | + | Піднімати MTU необхідно тільки на qinq-інтерфейсі (bond і eth, що входять до нього), оскільки використовується зайвий тег. На саб-інтерфейсах |
| \\ \\ | \\ \\ | ||
| - | -> Таблица ARP \\ | + | -> Таблиця ARP \\ |
| - | При количествах сессий более | + | При |
| <file config / | <file config / | ||
| net.ipv4.neigh.default.gc_thresh1 = 4096 | net.ipv4.neigh.default.gc_thresh1 = 4096 | ||
| Рядок 381: | Рядок 381: | ||
| </ | </ | ||
| - | -> Для работы шейпера\полисера на примере | + | -> Для роботи шейпера\полісера на прикладі |
| < | < | ||
| # cat / | # cat / | ||
| Рядок 396: | Рядок 395: | ||
| </ | </ | ||
| - | -> Распределение сетевых прерываний для QINQ траффика \\ | + | -> Розподіл мережевих переривань для QINQ трафіку \\ |
| - | Нужно поставить драйвера | + | Потрібно поставити драйвера |
| - | ====== Подготовка FreeRADIUS ====== | + | ====== Підготовка FreeRADIUS ====== |
| - | Не забываем про словарь | + | Не забуваємо про словник |
| - | Раскомментируем строку с последующим перезапуском freeradius. | + | Розкоментуємо рядок із подальшим перезапуском freeradius. |
| < | < | ||
| $INCLUDE | $INCLUDE | ||
| </ | </ | ||
| - | Так | + | Так |
| < | < | ||
| # service radiusd restart | # service radiusd restart | ||
| </ | </ | ||