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

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


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації щодо оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

purenasrscriptd

Це стара версія документу!


PureNAS з rscriptd на Debian 13.2

Домовленості

Для прикладу припустимо, що Ubilling з усіма потрохами розташований на сервері доступному за адресою 1.2.3.6 а Чистий Debian 13.2 встановлено на сервер, з відповідними інтерфейсами. Ви не повинні конфігурувати інтерфейси самостійно, PureNAS зробить це автоматично за вас при своїй ініціалізації. Основна ідея - PureNAS сам все налаштовує і запускає, базуючись на своєму одному і єдиному файлі конфігурації.

Встановлення PureNAS

su -
apt install -y ethtool net-tools conntrack tcpdump htop mtr-tiny sudo irqbalance
apt install -y git expat libexpat1-dev build-essential softflowd snmpd snmp
apt install -y php8.4-cli php8.4-mysqli php8.4-mbstring php8.4-bcmath php8.4-curl
apt install -y build-essential libncurses-dev libssl-dev bc flex bison dwarves rsync libelf-dev
apt install -y autoconf libtool pkg-config libpcap-dev libnfnetlink-dev libbpf-dev libdbus-1-dev 
apt install -y libvirt-dev libxml2-dev uuid-dev clang

після чого просто клонуємо його поточну гілку собі:

git clone https://github.com/nightflyza/PureNAS.git /etc/PureNAS

вмикаємо автоматичний старт при запуску

cp -R /etc/PureNAS/dist/purenas.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable purenas.service

розгортаємо пресет автоматичних тюнячок

cp -R /etc/PureNAS/dist/99-nat-tuning.conf /etc/sysctl.d/
sysctl -p /etc/sysctl.d/99-nat-tuning.conf

Компілюємо rscriptd

wget http://ubilling.net.ua/stg/stg-2.409.tar.gz
tar zxvf stg-2.409.tar.gz
cd stg-2.409/projects/rscriptd/
./build 
/usr/bin/gmake install

розгортаємо заготовки конфігів та скриптів ініціалізації користувачів

cp -R /etc/PureNAS/dist/rscriptd/* /etc/rscriptd/

Налаштування PureNAS

Всі налаштування PureNAS відбуваються в одному єдиному файлі /etc/PureNAS/purenas.conf. Для зображеного на схемі прикладу всі важливі налаштування, які базово треба модифікувати, будуть виглядати якось так:

LAN_IF="enp0s3"
WAN_IF="enp0s8"
 
USER_NET="172.16.0.0/17"
USER_GATEWAY_IP="172.16.0.1/17"
FORCE_ASSIGN_GATEWAY_IP="YES"
 
WAN_IP="1.2.3.5/24"
WAN_DEFAULT_ROUTE="1.2.3.4"
 
SHAPER_ENABLED="YES"
 
NAT_ENABLED="YES"
 
RSCRIPTD_ENABLED="YES"

взагалі пробіжіться очима по конфігу - там всі опції прокоментовані і доволі самоочевидні.

Налаштування rscriptd

/etc/rscriptd/rscriptd.conf
ExecutersNum=4
ConfigDir=/etc/rscriptd
Password=тут_ваш_пароль_rscriptd_з_stargazer.conf
Port=9999
UserTimeout=3600
ScriptOnConnect=/etc/rscriptd/OnConnect
ScriptOnDisconnect=/etc/rscriptd/OnDisconnect
/etc/rscriptd/dbconfig.conf
host = 1.2.3.6
port = 3306
username = somelogin
password = somepassword
database = stg

З боку Ubilling-a

Перед першим використанням, переконайтеся, що з боку сервера білінгу, в /etc/stargazer.conf присутня розкоментована секція вигляду

<Module remote_script>
SendPeriod = 10
SubnetFile =/etc/stargazer/remote_nas.conf
Password = тут_ваш_пароль_rscriptd
UserParams=Cash Tariff
Port = 9999
</Module>

Також потрібні увімкнені опції RESET_AO та STGNASHUP у billing.ini для запобігання проблемам із реініціалізацією користувачів на віддалених NAS.

Також варто додати ваш сервер rscriptd в табличку безпечних хостів у firewall.conf з боку вашого біллінгу, якось ось так

${FwCMD} table 22 add 1.2.3.5

Про створення користувача з віддаленим доступом до бази

CREATE USER 'somelogin'@'%' IDENTIFIED BY 'somepassword';
GRANT ALL PRIVILEGES ON *.* TO 'somelogin'@'%' WITH GRANT OPTION;

Запуск PureNAS

Робиться однією командою: /etc/PureNAS/init та виглядає наступним чином

__________                      _______      _____    _________
\______   \__ _________   ____  \      \   /  _  \  /   _____/
|     ___/  |  \_  __ \_/ __ \ /   |   \  /  /_\  \ \_____  \ 
|    |   |  |  /|  | \/\  ___//    |    \/    |    \/        \
|____|   |____/ |__|    \___  >____|__  /\____|__  /_______  /
                             \/        \/         \/        \/ 

== Initializing PureNAS ==
== Loading kernel modules ==
== Reapplying sysctl settings ==
== Sysctl settings reapplied ==
== DONE ==
== Enabling IP forwarding ==
== Configuring interfaces ==
== Enabling internal interface enp0s3 ==
== Assigning gateway IP(s) to enp0s3 ==
== Configuring firewall ==
== Cleaning up existing firewall configuration ==
== Configuring user networks ==
== Configuring user gateways ==
== Configuring banned hosts ==
== Configuring allowed DNS servers ==
== Configuring protected ports ==
== Configuring safe zones ==
== Configuring DNS restrictions for user network ==
== Configuring allowed always hosts ==
== Configuring user isolation ==
== Configuring blocked incoming ports ==
== Configuring blocked outgoing ports ==
== Configuring default firewall block policy for inactive users ==
== Configuring NAT ==
== Configuring shaper ==
== Cleaning up existing shaper configuration ==
== Loading kernel modules ==
== Created interface ifb0 ==
== Using enp0s3 as user gateway ==
== Initializing hash table structure ==
== Shaper configuration complete ==
== Starting rscriptd ==
== FINISHED ==

Як перевірити, чи користувачів ініціалізовано? Ну хоча б якось так:

Також можете подивитись, шейпера всіх або конкретного користувача за допомогою /etc/PureNAS/actions/uc

журнал з'єднання та роз'єднання користувачів знаходиться в /var/log/allconnect.log.

Про підрахунок трафіку

Якщо ви з якоїсь причини не використовуєте OphanimFlow та покладаєтесь на cap_nf, вам може знадобитись NetFlow, його можна просто ввімкнути ось так:

NETFLOW_SENSOR_ENABLED="YES"
NETFLOW_SAMPLING_RATE="100"
NETFLOW_COLLECTOR="1.2.3.6"
NETFLOW_PORT="42111"

У випадку, якщо в вас є вже налаштований OphanimFlow здоровий глузд та міркування швидкодії, підказують зібрати sFlow сенсор та використовувати вже його

git clone https://github.com/sflow/host-sflow.git
cd host-sflow
make clean
make FEATURES="HOST"
make install

після чого просто його ввімкнути якось так:

SFLOW_SENSOR_ENABLED="YES"
SFLOW_SAMPLING_RATE="100"
SFLOW_COLLECTOR="192.168.0.223"
SFLOW_PORT="6343"

(тут очевидно ми вважаємо, що OphanimFlow знаходиться на доступному хості 192.168.0.223)

purenasrscriptd.1768239348.txt.gz · Востаннє змінено: 2026/01/12 19:35 повз nightfly