Таблицы базы данных: відмінності між версіями
Sv (обговорення | внесок) Немає опису редагування |
Sv (обговорення | внесок) |
||
(Не показано 15 проміжних версій цього користувача) | |||
Рядок 1: | Рядок 1: | ||
=admin - | ==admin - данные администраторов== | ||
<pre> | <pre> | ||
id : id администратора | id : id администратора | ||
Рядок 18: | Рядок 18: | ||
Баланс - сумма всех платежей, которые оформил данный админ клиентам как «наличный платеж». | Баланс - сумма всех платежей, которые оформил данный админ клиентам как «наличный платеж». | ||
=auth_now - | ==auth_now - текущие авторизации== | ||
<pre> | <pre> | ||
id : автоинкрементное поле | id : автоинкрементное поле | ||
Рядок 29: | Рядок 29: | ||
properties хранит параметры авторизации, разделенные «;». Обязательный параметр mod - модуль, которым была осуществлена авторизация. «mod=dhcp;user=000cdbdff588» - мак клиента 00:0c:db:df:f5:88. | properties хранит параметры авторизации, разделенные «;». Обязательный параметр mod - модуль, которым была осуществлена авторизация. «mod=dhcp;user=000cdbdff588» - мак клиента 00:0c:db:df:f5:88. | ||
==auth_log - лог авторизаций== | |||
<pre> | |||
id : автоинкрементное поле | |||
uid : id клиента | |||
ip : ip клиента (unsigned int) | |||
start : начало сессии (timestamp) | |||
end : конец сессии (timestamp) | |||
properties : дополнительные параметры | |||
</pre> | |||
Когда клиент перестает быть авторизованным, ядро удаляет запись из таблицы auth_now и создает запись в auth_log, при этом параметр properties копируется из auth_now в auth_log | |||
==ip_pool - пул ip адресов== | |||
<pre> | |||
id : уникальный id записи | |||
ip : ip (unsigned int) | |||
type : тип ip (статический, динамический, зарезервирован) | |||
realip : флаг «реальный ip» | |||
release : timestamp освобождения, если ip динамический | |||
uid : id клиента | |||
tags : теги | |||
</pre> | |||
Если ip не привязан ни к какому клиенту, то uid = 0. Если ip статический, то он привязывается клиенту навсегда, вернее, до того момента, пока администратор не отвяжет его. | |||
Динамический ip привязывается клиенту во время первой авторизации, после чего с каждым обновлением авторизации отодвигает release в будущее. По окончанию авторизации, когда release станет большим текущего времени, поле uid устанавливается в 0. | |||
Теги - текстовые метки через запятую. | |||
==nets - описание сетей== | |||
<pre> | |||
id : автоинкрементное поле | |||
preset : не используется | |||
priority : приоритет записи | |||
class : номер направления | |||
net : сеть в виде xx.xx.xx.xx/yy | |||
port : порт (0 - любой) | |||
comment : комментарий | |||
</pre> | |||
NoDeny может классифицировать трафик на основе сетей и портов. Трафик может делиться на направления от 1 до 4 (поле class). Такое деление может использоваться для подсчета объема трафика в разные направления, либо же для предосталения разных скоростей в разные направления. | |||
==pays - таблица платежей и событий== | |||
<pre> | |||
id : уникальный id записи | |||
mid : id клиента в таблице users | |||
cash : денежная сумма, для всех нефинансовых записей = 0 | |||
time : timestamp формирования записи | |||
creator : автор записи (админ/клиент/ядро) | |||
creator_id : id автора записи | |||
creator_ip : ip автора записи, для ядра = 0, что соответствует 0.0.0.0 | |||
reason : многофункциональное поле, хранит закодированные детали платежа/события | |||
comment : обычно сообщение для клиента | |||
category : категория платежа, более детально сообщает о внутреннем устройстве | |||
текущей записи. | |||
</pre> | |||
Pay.pl по значению category декодирует поле reason. | |||
==services== | |||
<pre> | |||
service_id : id услуги | |||
module : модуль, который обрабатывает услугу | |||
category : краткое описание модуля услуги | |||
title : название услуги | |||
description : описание услуги | |||
grp_list : через запятую группы клиентов, которые могут заказать услугу | |||
conditions : условия в виде sql | |||
price : стоимость услуги | |||
auto_renew : автопродление услуги, да/нет | |||
no_renew : блокировка автопродления, да/нет | |||
param : дополнительные параметры | |||
</pre> | |||
В таблице services описываются услуги, предоставляемые разными модулями. | |||
Поле module хранит имя файла модуля без расширения pm в каталоге /usr/local/nodeny/services/. | |||
Список групп в grp_list начинается и заканчивается запятыми для упрощения sql запросов. | |||
==traflost - неучтенный трафик== | |||
traflost хранит данные о трафике, который не удалось классифицировать, что свидетельствует о неправильной настройке системы, например, пробросе трафика вне контроля NoDeny либо неправильной настройке NoDeny. | |||
<pre> | |||
time : время среза в timestamp | |||
traf : количество байт | |||
collector : номер коллектора каким он указан в настройках | |||
ip1 : ip источника | |||
ip2 : ip приемника | |||
</pre> | |||
==users - основные данные клиентов== | |||
<pre> | |||
id : id учетной записи клиента | |||
name : логин/учетное имя/серийный номер (назначение задается в настройках группы) | |||
passwd : зашифрованный пароль | |||
grp : id группы (см. табл. user_grp) | |||
contract : договор | |||
contract_date : timestamp заключения договора | |||
state : состояние доступа вкл/выкл | |||
balance : баланс | |||
limit_balance : граница отключения | |||
block_if_limit : отключать ли запись при достижении границы отключения | |||
modify_time : timestamp последней модификации записи | |||
fio : ФИО | |||
discount : % скидки | |||
cstate : техническое состояние (настроить/ремонт/вирусы...) | |||
cstate_time : timestamp последнего изменения поля cstate | |||
comment : комментарий | |||
lstate : нужна авторизация/всегда онлайн; | |||
</pre> | |||
==users_services - подключенные клиентам услуги== | |||
<pre> | |||
id : уникальный id записи | |||
uid : id учетной записи клиента | |||
pay_id : id платежа в таблице pays | |||
service_id : ссылка на id услуги в таблице services | |||
tm_start : timestamp подключения услуги | |||
tm_end : timestamp, когда услуга должна завершиться | |||
next_service_id : после завершения услуги подключится эта услуга | |||
tags : теги | |||
finish_count : сколько раз будет подключаться эта же услуга, после | |||
чего заменится на next_service_id | |||
</pre> | |||
В таблице services описываются услуги в общем виде, в таблице users_services конкретно привязываются к клиентам. | |||
Если услуга не создает запись в таблице платежей, то pay_id = 0. | |||
После окончания действия услуги, запись удаляется и если поле next_service_id не равно 0, то создается новая запись, в которой поле service_id устанавливается равным next_service_id. | |||
Теги - перечисленные через запятую ключевые слова, характеристики услуги. Например, слово inet сообщает, что услуга должна давать доступ в интернет. Модуль управления фаерволом сканирует услуги на наличие этого слова. | |||
По умолчанию поле finish_count не существует - его создает модуль long_services. | |||
==v_auth_now - некоторые данные клиентов, авторизованных в данный момент== | |||
<pre> | |||
ip : ip в текстовом виде | |||
id : id клиента | |||
balance : баланс | |||
state : 'off' - доступ заблокирован, 'on' - включен | |||
limit_money : денежная граница отключения | |||
in1..in3 : входящий трафик | |||
out1..out4 : исходящий трафик | |||
</pre> | |||
Если клиент не блокируется по лимиту (поле block_if_limit таблицы users не установлено), то limit_money в этой view = -9999. | |||
==v_ips - список ip, привязанных к клиентам в данный момент== | |||
<pre> | |||
uid : id клиента | |||
ip : ip в текстовом виде | |||
ipn : ip в unsigned int | |||
type : тип ip (статический/динамический) | |||
release : timestamp освобождения ip, если он динамический | |||
tm_auth : длительность авторизации, секунд | |||
start : timestamp начала авторизации | |||
last : timestamp последнего подтверждения авторизации | |||
properties : параметры авторизации | |||
auth : 1 - авторизован, 0 - нет | |||
</pre> | |||
Данная view - это объединение таблиц ip_pool и auth_now. Содержит список всех ip, которые выделены клиентам. Если в данный момент ip не авторизован, то tm_auth, start, last и properties равны NULL. | |||
==websessions== | |||
<pre> | |||
ses : сессия | |||
uid : id клиента либо администратора | |||
role : владелец сесии администратор или клиент | |||
trust : 0 - безопасная сессия | |||
expire : timestamp времени удаления записи | |||
</pre> | |||
По умолчанию trust=1, что дает право админу выполнять любые действия. Админ может установить поле в 0, если работает не за доверенным компьютером, поэтому в случае если он отлучится от админки, никто не сможет навредить, поскольку важные действия будут заблокированы. | |||
Если uid = 0, сессия считается служебной (вспомогательной), используется в модуле авторизации по логинуи паролю. |
Поточна версія на 11:47, 25 травня 2018
admin - данные администраторов
id : id администратора login : логин администратора passwd : зашифрованный пароль name : имя post : id в таблице users. Т.е администратор может иметь учетную запись в users privil : через запятую привилегии usr_grps : через запятую id групп, к которым есть доступ tunes : настройки ext : пока не используется balance : баланс
Привилегии задаются в виде списка чисел, разделенных запятыми. Каждое число указывает на то, что соответствующая ему привилегия включена. Список соответствий число=привилегия можно узнать из файла /usr/local/nodeny/web/lang/RU_admin.pl.
Списки привилегий и групп клиентов обязательно начинаются и заканчиваются запятыми.
Баланс - сумма всех платежей, которые оформил данный админ клиентам как «наличный платеж».
auth_now - текущие авторизации
id : автоинкрементное поле ip : ip клиента в текстовом виде start : timestamp начала авторизации last : timestamp последнего подтверждения авторизации properties : дополнительные параметры
Модули авторизации устанавливают начало авторизации в start, после чего с каждым подтвержденным запросом авторизации модифицируют поле last текущим временем. Ядро NoDeny удаляет записи, у которых last не модифицировалось в последние xx секунд, т.е. удаляет записи «по таймауту».
properties хранит параметры авторизации, разделенные «;». Обязательный параметр mod - модуль, которым была осуществлена авторизация. «mod=dhcp;user=000cdbdff588» - мак клиента 00:0c:db:df:f5:88.
auth_log - лог авторизаций
id : автоинкрементное поле uid : id клиента ip : ip клиента (unsigned int) start : начало сессии (timestamp) end : конец сессии (timestamp) properties : дополнительные параметры
Когда клиент перестает быть авторизованным, ядро удаляет запись из таблицы auth_now и создает запись в auth_log, при этом параметр properties копируется из auth_now в auth_log
ip_pool - пул ip адресов
id : уникальный id записи ip : ip (unsigned int) type : тип ip (статический, динамический, зарезервирован) realip : флаг «реальный ip» release : timestamp освобождения, если ip динамический uid : id клиента tags : теги
Если ip не привязан ни к какому клиенту, то uid = 0. Если ip статический, то он привязывается клиенту навсегда, вернее, до того момента, пока администратор не отвяжет его.
Динамический ip привязывается клиенту во время первой авторизации, после чего с каждым обновлением авторизации отодвигает release в будущее. По окончанию авторизации, когда release станет большим текущего времени, поле uid устанавливается в 0.
Теги - текстовые метки через запятую.
nets - описание сетей
id : автоинкрементное поле preset : не используется priority : приоритет записи class : номер направления net : сеть в виде xx.xx.xx.xx/yy port : порт (0 - любой) comment : комментарий
NoDeny может классифицировать трафик на основе сетей и портов. Трафик может делиться на направления от 1 до 4 (поле class). Такое деление может использоваться для подсчета объема трафика в разные направления, либо же для предосталения разных скоростей в разные направления.
pays - таблица платежей и событий
id : уникальный id записи mid : id клиента в таблице users cash : денежная сумма, для всех нефинансовых записей = 0 time : timestamp формирования записи creator : автор записи (админ/клиент/ядро) creator_id : id автора записи creator_ip : ip автора записи, для ядра = 0, что соответствует 0.0.0.0 reason : многофункциональное поле, хранит закодированные детали платежа/события comment : обычно сообщение для клиента category : категория платежа, более детально сообщает о внутреннем устройстве текущей записи.
Pay.pl по значению category декодирует поле reason.
services
service_id : id услуги module : модуль, который обрабатывает услугу category : краткое описание модуля услуги title : название услуги description : описание услуги grp_list : через запятую группы клиентов, которые могут заказать услугу conditions : условия в виде sql price : стоимость услуги auto_renew : автопродление услуги, да/нет no_renew : блокировка автопродления, да/нет param : дополнительные параметры
В таблице services описываются услуги, предоставляемые разными модулями.
Поле module хранит имя файла модуля без расширения pm в каталоге /usr/local/nodeny/services/.
Список групп в grp_list начинается и заканчивается запятыми для упрощения sql запросов.
traflost - неучтенный трафик
traflost хранит данные о трафике, который не удалось классифицировать, что свидетельствует о неправильной настройке системы, например, пробросе трафика вне контроля NoDeny либо неправильной настройке NoDeny.
time : время среза в timestamp traf : количество байт collector : номер коллектора каким он указан в настройках ip1 : ip источника ip2 : ip приемника
users - основные данные клиентов
id : id учетной записи клиента name : логин/учетное имя/серийный номер (назначение задается в настройках группы) passwd : зашифрованный пароль grp : id группы (см. табл. user_grp) contract : договор contract_date : timestamp заключения договора state : состояние доступа вкл/выкл balance : баланс limit_balance : граница отключения block_if_limit : отключать ли запись при достижении границы отключения modify_time : timestamp последней модификации записи fio : ФИО discount : % скидки cstate : техническое состояние (настроить/ремонт/вирусы...) cstate_time : timestamp последнего изменения поля cstate comment : комментарий lstate : нужна авторизация/всегда онлайн;
users_services - подключенные клиентам услуги
id : уникальный id записи uid : id учетной записи клиента pay_id : id платежа в таблице pays service_id : ссылка на id услуги в таблице services tm_start : timestamp подключения услуги tm_end : timestamp, когда услуга должна завершиться next_service_id : после завершения услуги подключится эта услуга tags : теги finish_count : сколько раз будет подключаться эта же услуга, после чего заменится на next_service_id
В таблице services описываются услуги в общем виде, в таблице users_services конкретно привязываются к клиентам.
Если услуга не создает запись в таблице платежей, то pay_id = 0.
После окончания действия услуги, запись удаляется и если поле next_service_id не равно 0, то создается новая запись, в которой поле service_id устанавливается равным next_service_id.
Теги - перечисленные через запятую ключевые слова, характеристики услуги. Например, слово inet сообщает, что услуга должна давать доступ в интернет. Модуль управления фаерволом сканирует услуги на наличие этого слова.
По умолчанию поле finish_count не существует - его создает модуль long_services.
v_auth_now - некоторые данные клиентов, авторизованных в данный момент
ip : ip в текстовом виде id : id клиента balance : баланс state : 'off' - доступ заблокирован, 'on' - включен limit_money : денежная граница отключения in1..in3 : входящий трафик out1..out4 : исходящий трафик
Если клиент не блокируется по лимиту (поле block_if_limit таблицы users не установлено), то limit_money в этой view = -9999.
v_ips - список ip, привязанных к клиентам в данный момент
uid : id клиента ip : ip в текстовом виде ipn : ip в unsigned int type : тип ip (статический/динамический) release : timestamp освобождения ip, если он динамический tm_auth : длительность авторизации, секунд start : timestamp начала авторизации last : timestamp последнего подтверждения авторизации properties : параметры авторизации auth : 1 - авторизован, 0 - нет
Данная view - это объединение таблиц ip_pool и auth_now. Содержит список всех ip, которые выделены клиентам. Если в данный момент ip не авторизован, то tm_auth, start, last и properties равны NULL.
websessions
ses : сессия uid : id клиента либо администратора role : владелец сесии администратор или клиент trust : 0 - безопасная сессия expire : timestamp времени удаления записи
По умолчанию trust=1, что дает право админу выполнять любые действия. Админ может установить поле в 0, если работает не за доверенным компьютером, поэтому в случае если он отлучится от админки, никто не сможет навредить, поскольку важные действия будут заблокированы.
Если uid = 0, сессия считается служебной (вспомогательной), используется в модуле авторизации по логинуи паролю.