Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
Наступна ревізія | Попередня ревізія | ||
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 | ||
</ | </ |