Описание базы данных
Ниже приводится схема и описание таблиц базы данных, созданных для стандартного использования HBF-Server.
HBF-Server поддерживает PostgreSQL версии 14.8
Поскольку HBF-Server взаимодействует с этой базой данных самостоятельно, конечному пользователю не нужно беспокоиться о ее структуре и о том как хранятся данные.
Схема базы данных
На диаграмме ниже представлен визуальный обзор базы данных HBF-Server и связей между таблицами. В приведенном ниже Обзоре Таблиц, содержатся дополнительные сведения о таблицах и столбцах базы данных.
Обзор таблиц (сущности)
В этом разделе представлен обзор всех таблиц, созданных для стандартного использования HBF-Server. С последующим детальным описанием, что находится в каждой таблице.
| Название таблицы | Описание | Соответствующие области взаимодействия интерфейса (API) |
|---|---|---|
| tbl_network | таблица tbl_network хранит информацию о IP Subnets c уникальным названием, CIDR и ссылкой на SG к сети которой она принадлежит | |
| tbl_sg | таблица tbl_sg хранит информацию о Security Groups (SG) с уникальным названием, правилом применяемым для входящих или исходящих пакетов, также возможностью включить логирование | |
| tbl_ie_sg_sg_rule | таблица tbl_ie_sg_sg_rule хранит информацию SG-SG правил для входящего и исходящего траффика с сетевым транспортным протоколами и диапазоном портов | |
| tbl_ie_sg_sg_icmp_rule | таблица tbl_ie_sg_sg_icmp_rule хранит информацию SG-SG правил для входящего и исходящего траффика через сетевой протокол ICMP | |
| tbl_cidr_sg_rule | таблица tbl_cidr_sg_rule хранит информацию CIDR-SG правил для входящего и исходящего траффика с сетевым транспортным протоколом, бесклассовой междоменной маршрутизацией (CIDR) и диапазоном портов | |
| tbl_cidr_sg_icmp_rule | таблица tbl_cidr_sg_icmp_rule хранит информацию CIDR-SG правил для входящего и исходящего траффика с сетевым протоколом ICMP, бесклассовой междоменной маршрутизацией (CIDR) | |
| tbl_fqdn_rule | таблица tbl_fqdn_rule хранит информацию SG-to-FQDN правил с сетевым транспортным протоколом и диапазоном портов | |
| tbl_sg_icmp_rule | таблица tbl_sg_icmp_rule хранит информацию SG:ICMP правил | |
| tbl_sg_rule | таблица tbl_sg_rules хранит информацию о правилах виртуального файрволла который можно настраивать для того чтобы контролировать входящий и выходящий трафик | |
| tbl_sg_sg_icmp_rule | таблица tbl_sg_sg_icmp_rule хранит информацию SG-SG:ICMP правил | |
| tbl_sync_status | в таблице tbl_sync_status хранится информация об изменениях внесенных пользователем (дата последнего успешного изменения и кол-во изменённых строк) | |
| tbl_host2sg | в таблице tbl_host2sg хранится информация о связи хоста (Host) с группой безопасности (SG) | |
| tbl_host_ipset | в таблице tbl_host_ipset хранится информация о IP адресах, которыми оперирует Host | |
| tbl_host | в таблице tbl_host хранится информация о хостах (Host) с уникальным названием, UUID и ссылкой на SG к которой она принадлежит | |
| tbl_svc2sg | в таблице tbl_svc2sg хранится информация о связи сервиса (Services) с группой безопасности (SG) |
|
| tbl_service | в таблице tbl_service хранится информация о сервисах (Service) с уникальным названием. |
|
| tbl_transport_spec | в таблице tbl_transport_spec хранится информация о портах на которых слушает сервис (Service). |
|
Подробное описание таблиц
Ниже приведены конкретные поля в каждой из таблиц, созданных для стандартного использования HBF-Server
tbl_network
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| sg | int(8) | YES | FK | внешний ключ к таблице tbl_sg.id | |
| name | cname | ALT |
| ||
| network | cidr |
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Simple Key | cname |
tbl_sg
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| name | cname | ALT |
| ||
| logs | bool | false | |||
| trace | bool | false | |||
| default_action | chain_default_action | ‘DROP’::chain_default_action | одно из двух значений:
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Simple Key | cname |
tbl_ie_sg_sg_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| proto | proto | ALT | одно из двух значений:
| ||
| sg | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| sg_local | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| traffic | traffic | ALT | одно из двух значений:
| ||
| ports | sg_rule_ports[] | YES |
| ||
| logs | bool | ||||
| trace | bool | ||||
| action | rule_action | одно из двух значений:
| |||
| priority | smallint | 0 |
|
Ключи
| Имя ключа | Тип | Пол я |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_ie_sg_sg_icmp_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| sg | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| sg_local | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| traffic | traffic | ALT | одно из двух значений "ingress" или "egress" | ||
| ip_v | ip_family | ALT | одно из двух значений "IPv6" или "IPv4" | ||
| types | icmp_types | массив из smallint[] кодов типа ICMP | |||
| logs | Boolean | false | |||
| trace | Boolean | false | |||
| action | rule_action | одно из двух значений:
| |||
| priority | smallint | 0 |
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_cidr_sg_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| proto | proto | ALT | одно из двух значений:
| ||
| cidr | cidr | ALT | значение cidr (диапазон ip адресов) в рамках одного правила (proto, sg, traffic) не должны пересекаться | ||
| sg | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| traffic | traffic | ALT |
| ||
| ports | sg_rule_ports[] | YES |
| ||
| logs | bool | ||||
| trace | bool | ||||
| action | rule_action | одно из двух значений:
| |||
| priority | smallint | 0 |
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_cidr_sg_icmp_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| cidr | cidr | ALT | значение cidr (диапазон ip адресов) в рамках одного правила (ip_v, sg, traffic) не должны пересекаться | ||
| sg | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| traffic | traffic | ALT |
| ||
| ip_v | ip_family | ALT | одно из двух значений:
| ||
| types | icmp_types | массив из smallint[] кодов типа ICMP | |||
| logs | bool | ||||
| trace | bool | ||||
| action | rule_action | одно из двух значений:
| |||
| priority | smallint | 0 |
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_fqdn_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| sg_from | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| fqdn_to | fqdn | ALT |
| ||
| proto | proto | ALT | одно из двух значений:
| ||
| ports | sg_rule_ports[] | YES |
| ||
| logs | bool | false | |||
| ndpi_protocols | citext |
| |||
| action | rule_action | одно из двух значений:
| |||
| priority | smallint | 0 |
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_sg_icmp_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| ip_v | ip_family | ALT | одно из двух значений:
| ||
| types | icmp_types | массив из smallint[] кодов типа ICMP | |||
| sg | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| logs | bool | ||||
| trace | bool | ||||
| action | rule_action | одно из двух значений:
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_sg_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| sg_from | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| sg_to | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| proto | proto | ALT | одно из двух значений:
| ||
| ports | sg_rule_ports[] | YES |
| ||
| logs | bool | false | |||
| action | rule_action | одно из двух значений:
| |||
| priority | smallint | 0 |
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_sg_sg_icmp_rule
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| ip_v | ip_family | ALT | одно из двух значений:
| ||
| types | icmp_types | массив из smallint[] кодов типа ICMP | |||
| sg_from | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| sg_to | int(8) | FK/ALT | внешний ключ к таблице tbl_sg.id | ||
| logs | bool | ||||
| trace | bool | ||||
| action | rule_action | одно из двух значений:
| |||
| priority | smallint | 0 |
|
Ключи
| Имя ключа | Тип | Поля |
|---|---|---|
| Alternative key | Compound Key |
|
tbl_sync_status
| Поле | Тип | Null | Ключ | По умолчанию | Дополнительно |
|---|---|---|---|---|---|
| id | int(8) | PRI | auto_increment | ||
| total_affected_rows | int(8) | при любой процедуре (удаление/добавление/редактирование) данных в таблицах, tbl_network, tbl_sg, tbl_fqdn_rule, tbl_sg_rule, tbl_sg_icmp_rule, tbl_sg_sg_icmp_rule, будет учтена сумма всех изменённых строк | |||
| updated_at | timstamptz | YES | дата изменения |
tbl_host2sg
TODO
tbl_host_ipset
TODO
tbl_host
TODO
tbl_svc2sg
TODO
tbl_service
TODO
tbl_transport_spec
TODO