Настройка и управление DosGate через CLI
Данная документация описывает взаимодействие с программным обеспечением DosGate с использованием командного интерфейса (CLI).
CLI является приоритетным способом управления системой, обеспечивая гибкость настройки и возможность автоматизации. Командный интерфейс позволяет администраторам работать с конкретными модулями системы, комбинировать параметры, правила и функции, что упрощает и ускоряет процесс конфигурирования.
Использование CLI обеспечивает полный доступ к функционалу системы и не ограничивает возможности администрирования, включая аварийные ситуации, в отличие от графических интерфейсов, подверженных перегрузке.
Адресация команд для управления таргетами (модулями) системы
Взаимодействие с модулями DosGate осуществляется через командный интерфейс (CLI) с использованием raw socket.
Команды делятся на два типа:
- Системные – выполняют общие операции с системой.
- Целевые – управляют конкретными модулями (таргетами) системы.
1. Системные команды
Формат выполнения:
dgctl -c command
Доступные команды:
# Вывести справочную информацию
dgctl -c help
# Отобразить текущую версию DosGate.
dgctl -c version
# Отобразить список всех доступных таргетов
dgctl -c targets
2. Целевые команды
Формат выполнения:
dgctl -u target://arena-name/target-name/target-options -c command -- command_options
Аргументы:
target://
– префикс, указывающий на обращение к целевому модулю.<arena-name>
– имя арены, если требуется (необязательный параметр).<target-name>
– имя целевого модуля.<target-options>
– дополнительные настройки (необязательный параметр).-c <command>
– команда, выполняемая в указанном модуле.-- <command_options>
– дополнительные аргументы команды (необязательный параметр).
Доступные целевые таргеты:
Таргет | Описание |
---|---|
system | Управление системными функциями. |
license | Управление лицензиями. |
daemon | Контроль фоновых процессов. |
geoip | Работа с географическими IP-базами. |
context | Управление контекстами работы. |
arena | Работа с аренами. |
profile | Управление профилями. |
router | Настройка маршрутизации. |
mark | Управление метками. |
prefixset | Работа с наборами префиксов. |
Доступные команды:
# Вывести системную информацию
dgctl -u system:// -c sysinfo
# Получить идентификатор системы
dgctl -u system:// -c id
# Вывести справочную информацию.
dgctl -u system:// -c help
# Показать список лицензий
dgctl -u license:// -c list
# Отобразить информацию о лицензии
dgctl -u license:// -c show license
Управление таргетом: daemon
Для таргета daemon, не требуется указывать арену
daemon - полностью дублирует системные команды
Пример адресации таргета
dgctl -u daemon:// -c help
Управление таргетом: system
Таргет system предоставляет инструменты для получения информации о системе и проверки её состояния. Используется для мониторинга состояния системы, получения идентификационных данных и проверки доступности компонентов. Таргет не требует указания арены.
Формат выполнения:
dgctl -u system:// -c help
Доступные команды:
# Вывести справочную информацию
help
# Отобразить сведения о системе и использовании ресурсов DosGate
sysinfo
# Отобразить уникальный идентификатор системы
id
# Проверить доступность таргета
ping
Управление таргетом: license
Управление лицензиями включает в себя просмотр, добавление, удаление и откат изменений, а также их экспорт. Таргет не требует указания арены.
Формат выполнения:
dgctl -u license:// -c help
Доступные команды:
# Вывести список лицензий.
list
# Отобразить сведения о конкретной лицензии.
show
# Добавить новую лицензию.
add
# Удалить лицензию.
delete
# Отменить удаление лицензии (восстановление).
undelete
# Применить изменения (удаление или добавление лицензии).
commit
# Экспортировать (скачать) лицензию.
download
# Вывести справочную информацию.
help
# Проверить доступность таргета.
ping
Управление таргетом: geoip
DosGate позволяет проверять IP-адрес отправителя и получателя на принадлежность определённому региону с использованием функции geoip.
Таргет не требует указания арены.
Формат выполнения:
dgctl -u geoip:// -c check -- <IP-адрес>
Пример:
dgctl -u geoip:// -c check -- 1.1.1.1
Вызов справки по таргету geoip:
dgctl -u geoip:// -c help
Загрузка собственной базы данных
По умолчанию DosGate загружает базу данных по пути: /etc/dosgate/GeoLite2-Country.mmdb
Резервный путь: /usr/share/dosgate/GeoLite2-Country.mmdb
Чтобы использовать свою базу данных, необходимо:
-
Разместить файл GeoLite2-Country.mmdb в каталоге /etc/dosgate/.
-
Перезагрузить сервис DosGate:
sudo service dosgate restart
Содержимое базы данных
Для получения актуальной версии базы данных можно направить запрос по адресу: dosgate@servicepipe.ru
Теги geoip
Список всех тегов geoip
Countries
Code Name
=========================================================================
AF Afghanistan
AX Åland Islands
AL Albania
DZ Algeria
AS American Samoa
AD Andorra
AO Angola
AI Anguilla
AQ Antarctica
AG Antigua and Barbuda
AR Argentina
AM Armenia
AW Aruba
AU Australia
AT Austria
AZ Azerbaijan
BS Bahamas
BH Bahrain
BD Bangladesh
BB Barbados
BY Belarus
BE Belgium
BZ Belize
BJ Benin
BM Bermuda
BT Bhutan
BO Bolivia, Plurinational State of
BQ Bonaire, Sint Eustatius and Saba
BA Bosnia and Herzegovina
BW Botswana
BV Bouvet Island
BR Brazil
IO British Indian Ocean Territory
BN Brunei Darussalam
BG Bulgaria
BF Burkina Faso
BI Burundi
KH Cambodia
CM Cameroon
CA Canada
CV Cape Verde
KY Cayman Islands
CF Central African Republic
TD Chad
CL Chile
CN China
CX Christmas Island
CC Cocos (Keeling) Islands
CO Colombia
KM Comoros
CG Congo
CD Congo, the Democratic Republic of the
CK Cook Islands
CR Costa Rica
CI Côte d'Ivoire
HR Croatia
CU Cuba
CW Curaçao
CY Cyprus
CZ Czech Republic
DK Denmark
DJ Djibouti
DM Dominica
DO Dominican Republic
EC Ecuador
EG Egypt
SV El Salvador
GQ Equatorial Guinea
ER Eritrea
EE Estonia
ET Ethiopia
FK Falkland Islands (Malvinas)
FO Faroe Islands
FJ Fiji
FI Finland
FR France
GF French Guiana
PF French Polynesia
TF French Southern Territories
GA Gabon
GM Gambia
GE Georgia
DE Germany
GH Ghana
GI Gibraltar
GR Greece
GL Greenland
GD Grenada
GP Guadeloupe
GU Guam
GT Guatemala
GG Guernsey
GN Guinea
GW Guinea-Bissau
GY Guyana
HT Haiti
HM Heard Island and McDonald Islands
VA Holy See (Vatican City State)
HN Honduras
HK Hong Kong
HU Hungary
IS Iceland
IN India
ID Indonesia
IR Iran, Islamic Republic of
IQ Iraq
IE Ireland
IM Isle of Man
IL Israel
IT Italy
JM Jamaica
JP Japan
JE Jersey
JO Jordan
KZ Kazakhstan
KE Kenya
KI Kiribati
KP Korea, Democratic People's Republic of
KR Korea, Republic of
KW Kuwait
KG Kyrgyzstan
LA Lao People's Democratic Republic
LV Latvia
LB Lebanon
LS Lesotho
LR Liberia
LY Libya
LI Liechtenstein
LT Lithuania
LU Luxembourg
MO Macao
MK Macedonia, the Former Yugoslav Republic of
MG Madagascar
MW Malawi
MY Malaysia
MV Maldives
ML Mali
MT Malta
MH Marshall Islands
MQ Martinique
MR Mauritania
MU Mauritius
YT Mayotte
MX Mexico
FM Micronesia, Federated States of
MD Moldova, Republic of
MC Monaco
MN Mongolia
ME Montenegro
MS Montserrat
MA Morocco
MZ Mozambique
MM Myanmar
NA Namibia
NR Nauru
NP Nepal
NL Netherlands
NC New Caledonia
NZ New Zealand
NI Nicaragua
NE Niger
NG Nigeria
NU Niue
NF Norfolk Island
MP Northern Mariana Islands
NO Norway
OM Oman
PK Pakistan
PW Palau
PS Palestine, State of
PA Panama
PG Papua New Guinea
PY Paraguay
PE Peru
PH Philippines
PN Pitcairn
PL Poland
PT Portugal
PR Puerto Rico
QA Qatar
RE Réunion
RO Romania
RU Russian Federation
RW Rwanda
BL Saint Barthélemy
SH Saint Helena, Ascension and Tristan da Cunha
KN Saint Kitts and Nevis
LC Saint Lucia
MF Saint Martin (French part)
PM Saint Pierre and Miquelon
VC Saint Vincent and the Grenadines
WS Samoa
SM San Marino
ST Sao Tome and Principe
SA Saudi Arabia
SN Senegal
RS Serbia
SC Seychelles
SL Sierra Leone
SG Singapore
SX Sint Maarten (Dutch part)
SK Slovakia
SI Slovenia
SB Solomon Islands
SO Somalia
ZA South Africa
GS South Georgia and the South Sandwich Islands
SS South Sudan
ES Spain
LK Sri Lanka
SD Sudan
SR Suriname
SJ Svalbard and Jan Mayen
SZ Swaziland
SE Sweden
CH Switzerland
SY Syrian Arab Republic
TW Taiwan, Province of China
TJ Tajikistan
TZ Tanzania, United Republic of
TH Thailand
TL Timor-Leste
TG Togo
TK Tokelau
TO Tonga
TT Trinidad and Tobago
TN Tunisia
TR Turkey
TM Turkmenistan
TC Turks and Caicos Islands
TV Tuvalu
UG Uganda
UA Ukraine
AE United Arab Emirates
GB United Kingdom
US United States
UM United States Minor Outlying Islands
UY Uruguay
UZ Uzbekistan
VU Vanuatu
VE Venezuela, Bolivarian Republic of
VN Viet Nam
VG Virgin Islands, British
VI Virgin Islands, U.S.
WF Wallis and Futuna
EH Western Sahara
YE Yemen
ZM Zambia
ZW Zimbabwe
XK Kosovo
Continents
Code Name
=========================================================================
AF Africa
AN Antarctica
AS Asia
EU Europe
NA North America
OC Oceania
SA South America
Управление таргетом: context
Таргет context позволяет централизованно изменять параметры арен и управлять ими без необходимости указывать каждую арену отдельно.
Контекст (context) — необязательный компонент подсистемы, предназначенный для группировки нескольких арен в единый логический объект. Это позволяет упростить массовое управление аренами в процессе конфигурирования dosgate через файл dosgate.conf.
Формат выполнения:
dgctl -u context:// -c help
Доступные команды:
# Отобразить список всех арен, включенных в контекст.
show
# Сохранить текущее состояние контекста.
save
# Применить изменения в контексте, включая все арены и профили, входящие в него.
commit
# Откатить контекст к предыдущему сохраненному состоянию, если команда commit не была выполнена.
rollback
# Пересобрать все программы dosgate. Используется для отладки. Не рекомендуется запускать во время активной эксплуатации.
rebuild
# Вывести справочную информацию.
help
# Проверить доступность таргета.
ping
Управление таргетом: arena
Таргет arena предоставляет ряд функций, позволяющих управлять профилями, их версиями и состоянием в системе DosGate.
Формат выполнения:
dgctl -u arena://arena-name -c help
Доступные команды:
# Добавить профиль.
add
# Удалить профиль.
delete
# Отобразить список всех профилей арены.
list
# Применить все профили арены.
commit
# Откатить контекст к предыдущему сохраненному состоянию, если команда commit не была выполнена.
rollback
# Сохранить все профили арены.
save
# Вывести справочную информацию.
help
# Проверить доступность таргета.
ping
Управление таргетом: profile
Таргет profile предназначен для управления профилями защиты в системе DosGate. Профиль представляет собой набор правил, применяемых к сетевому трафику, проходящему через систему. С его помощью можно управлять фильтрацией пакетов, анализировать их характеристики и применять необходимые действия.
Основные возможности профиля:
-
Определение IP-адресов получателей, привязанных к профилю (один IP-адрес не может быть закреплён за несколькими профилями одновременно).
-
Задание набора правил фильтрации трафика.
-
Применение правил в порядке следования (правила обрабатываются сверху вниз).
-
Использование трёх основных сущностей в правилах:
-
Match
- параметры пакета, по которым выполняется фильтрация. -
Action
- действие, выполняемое при соответствии пакета условиям фильтрации. -
Stats
- запись статистики обработки трафика. Подробнее о метках статистики.
-
При отсутствии match
в правиле действие action
применяется ко всем пакетам. Если указан только match
без action
, правило не влияет на трафик.
Формат выполнения команд:
dgctl -u profile://arena-name/profile-name -c <команда>
Новые правила применяются только при использовании команды insert:
dgctl -u profile://arena-name/profile-name -c insert -- rule
Пример добавления правила с фильтрацией TCP-трафика:
dgctl -u profile://arena-name/profile-name -c insert -- -m protocol tcp -j DROP
Пример адресации таргета
dgctl -u profile://arena-name/profile-name -c command -- rule
Команды для цели profile
# Добавить правило.
insert
#Можно указать позицию вставки (опция `-i`). Правило будет добавлено на четвёртую позицию:
dgctl -u profile://first/test -c insert -i 4 -- rule
# Удалить правило. Указывается позиция (или диапазон через `-`).
remove
#Удаление правила на 4-й позиции:
dgctl -u profile://first/test -c remove -i 4
#Удаление нескольких правил на указанных позициях (например, 1, 3 и 5):
dgctl -u profile://first/test -c remove -i 1,3,5
#Удаление диапазона правил (например, с 1-й по 5-ю позицию):
dgctl -u profile://first/test -c remove -i 1-5
# Заменить правило на заданной позиции.
replace
#Замена правила другим правилом на 3 позиции:
dgctl -u profile://first/test -c replace -i 3 -- rule
# Отобразить список правил профиля.
list
# Применить набор правил.
commit
# Для сохранения набора правил в профиле. Команда доступна только после выполнения *commit*. Сохраненный набор правил будет автоматически применен при перезагрузке сервиса DosGate.
save
# Откатить профиль до предыдущей версии (если не был выполнен commit).
rollback
# Переименовать профиль и изменить его описание.
rename
# Проверить доступность таргета.
ping
# Используется для внутренней отладки.
backref_stats
# Вывести справочную информацию.
help
Документация сущностей (match & action rule)
Основные параметры:
-
-m
(match) - определяет характеристики пакетов для фильтрации. -
-j
(action) - указывает действие, выполняемое при соответствии условиям. -
-c
(comment) — добавляет комментарий к правилу.
Usage: [-m <match>]... [-j <action>]... [-c <comment>...]
Комбинирование параметров match и action
Параметры match и action могут использоваться совместно для точного определения характеристик пакета и применения соответствующих действий.
В командной строке двойное тире --
используется для разделения команды и параметров правила (match & action).
Вызов справки по match и action
Для просмотра доступных параметров фильтрации и возможных действий используйте команду:
dgctl -u profile://arena-name/profile-name -c insert -- help
Пример комбинации правил
Пример 1: Фильтрация по протоколу TCP с выполнением действий STATS
и DROP
:
dgctl -u profile://first/test -c insert -- -m protocol tcp -j STATS UDP_protocol -j DROP
Пример 2: Фильтрация по протоколу TCP, TTL, геолокации с выполнением действий STATS
и ACCEPT
:
dgctl -u profile://first/test -c insert -- -m protocol tcp -m ttl 155 -m geoip cntr RU -j STATS bypass_for_ru_ttl_155_tcp -j ACCEPT
Пример 3: Фильтрация ACL для веб-ресурса, с выполнением действий MARK
и DROP
:
dgctl -u profile://first/test -c insert -- -m protocol tcp -m dport 80,443 -j MARK value 1 ! -m mark 1 -j STATS WEB_ACL -j DROP
Получение справки по параметрам
В справке (help) подробно описано, как использовать каждый параметр match и action, а также доступные для них опции.
Пример:
dgctl -u profile:/arena-name/profile-name -c insert -- -m protocol help
dgctl -u profile://first/test -c insert -- -j RATELIMIT help
dgctl -u profile://first/test -c insert -- -m icmp help
dgctl -u profile://first/test -c insert -- -m geoip help
Опция "NOT"
Перед параметром match
допустимо использование символа !
, который выполняет функцию логического оператора NOT.
Пример:
-m protocol tcp ! -m dport 443,80 -j DROP
Данное правило означает: если пакет использует протокол TCP, но порт получателя не 80 или 443 — сбросить пакет.
Примечание:
Оператор
!
нельзя использовать с-m protocol
.
Список доступных match & action
Просмотреть все доступные параметры можно с помощью команды:
dgctl -u profile://arena-name/profile-name -c insert -- help
Match
Match | Описание |
---|---|
protocol | Протокол |
mark | Общая метка фрейма |
len | Длина элемента фрейма |
ttl | Время жизни (TTL) |
frag | Фрагментация пакета на сетевом уровне |
src | Сетевой адрес источника |
dst | Сетевой адрес получателя |
spi | IPSec SPI |
tsrc | Туннелированный адрес источника |
tdst | Туннелированный адрес назначения |
tspi | Туннелированный IPSec SPI |
dport | Порт назначения на транспортном уровне |
sport | Порт источника на транспортном уровне |
gre | Элементы GRE-заголовка |
tcpflags | Флаги TCP |
hmark | Метка хоста источника |
sdhmark | Метка хоста источника и назначения |
connmark | Метка соединения |
dhmark | Метка хоста назначения |
verdict | Результат предыдущего действия |
seq | Последовательность байтов |
dns | Заголовок DNS |
tcpopts | Опции TCP |
tcpmss | Максимальный размер сегмента TCP |
tcpws | Масштаб окна TCP |
icmp | Тип/код ICMP |
icmp6 | Тип/код ICMPv6 |
pset | Совпадение с префиксом из набора, заданного на основе IP-адреса |
tpset | Совпадение с префиксом из набора, заданного на основе туннелированного IP-адреса |
geoip | Совпадение с данными в GeoIP-базе на основе IP-адреса |
tgeoip | Совпадение с данными в GeoIP-базе на основе туннелированного IP-адреса |
Action
Action | Описание |
---|---|
ACCEPT | Принять фрейм и прекратить дальнейшую обработку |
DROP | Немедленно отбросить фрейм |
PASS | Передать пакет в сетевой стек ОС |
STATS | Собирать статистику по всем обрабатываемым пакетам |
MARK | Изменить общий маркер фрейма |
HMARK | Добавить запись в таблицу меток для источника |
SDHMARK | Добавить запись в таблицу меток для источника и назначения |
CONNMARK | Добавить запись в таблицу меток для соединения |
DHMARK | Добавить запись в таблицу меток для назначения |
VERDICT | Изменить вердикт |
RATELIMIT | Применить ограничение скорости |
SAMPLE | Провести выборку трафика |
TCPAUTH | Выполнить авторизацию TCP |
SNAT | Источник статического NAT |
DNAT | Назначение статического NAT |
CAPTURE | Захватить пакет |
GOTO | Перейти к указанной цепочке правил |
RATE | Механизм ограничения скорости с расширенными возможностями подсчёта |
Управление таргетом: router
Таргет router используется для настройки маршрутизации пакетов в рамках профиля. Каждому профилю назначается индивидуальный набор IP-префиксов, которые определяют, какие пакеты должны обрабатываться данным профилем.
Пакеты, чей IP-адрес получателя соответствует указанному в конфигурации префиксу, направляются на профиль. Если IP-адрес отсутствует в маршрутизаторе и пакет не является L2-multicast (при работе в режимах inline или transparent), он передается в операционную систему.
Формат выполнения:
dgctl -u router://arena-name/profile-name -c command -- prefix
Добавление и удаление префиксов поддерживает указание нескольких значений через запятую, а также диапазонов (через тире -
).
После внесения изменений в конфигурацию маршрутизатора требуется применить их с помощью команд:
dgctl -u profile://first/test -c commit
dgctl -u profile://first/test -c save
Доступные команды:
# Добавить указанный IP-префикс в таблицу маршрутизации профиля.
insert
# Удалить указанный префикс из таблицы маршрутизации.
remove
#Удаляет указанный префикс, автоматически разбивая оставшиеся адреса по маскам.
pin
#Пример: Если в маршрутизаторе имеется запись 1.1.1.0/24 и требуется удалить 1.1.1.88/32, выполняется команда:
#dgctl -u router://first/test -c pin -- 1.1.1.88
#Система автоматически удалит только 1.1.1.88/32, разделяя оставшийся диапазон на соответствующие маски.
# Выводит полный список маршрутов, заданных в профиле.
list
# Выводит список маршрутов непосредственно из программы dosgate в ядре Linux.
list_kernel
# Показывает несохраненные изменения в таблице маршрутизации профиля.
diff
# Вывести справочную информацию.
help
# Проверяет доступность таргета.
ping
Управление таргетом: mark
Таргет mark используется индивидуально для каждого профиля и представляет собой механизм хранения и обработки меток. Метки позволяют временно сохранять информацию о пакетах и использовать её в последующих правилах фильтрации.
Метка (mark) может как записывать информацию из пакета (например, -j HMARK id 1 value 1 lifetime 600
), так и проверять её наличие (-m hmark id 1 status valid
).
Важно: в метках поддерживаются только адреса с маской /32. Другие маски не применяются.
Типы меток
Метки представляют собой быстрые таблицы данных:
-
hmark - Хранит в себе IP-адреса отправителя.
-
sdhmark - Хранит в себе IP-адреса отправителя и IP-адрес получателя.
-
dmark - Хранит в себе IP-адрес получателя.
-
connmark - Хранит в себе IP-адрес отправителя, IP-адрес получателя, протокол, порт отправителя и порт получателя.
Формат выполнения:
dgctl -u mark://arena-name/profile-name -c command -- command_options
Доступные команды:
# Отобразить содержимое метки. (Не рекомендуется использовать без фильтров
# которые указываются в \<command-options\>, при большом объёме данных.)
list
# Добавить информацию в метку.
insert
# Удалить информацию из метки.
delete
# Вывести справочную информацию.
help
# Проверить доступность таргета.
ping
Опции команд
Usage: [[type] <type>] id <id> [<field_name> <field_value>]... value <val> [expire <exp>]
Параметры метки:
- type – Тип метки. По умолчанию
shost
. - id – Идентификатор метки, диапазон: [0, 2^32-1].
- field_name – Имя поля метки. См. ниже.
- field_value – Значение поля метки, специфично для протокола.
- val – Значение метки, диапазон: [0, 2^32-1].
- exp – Время жизни в секундах, начиная с текущего момента. По умолчанию – без срока действия.
Названия полей:
- l3_proto – Протокол сетевого уровня
- l3_src – Исходный адрес сетевого уровня
- l3_dst – Адрес назначения сетевого уровня
- sec_proto – Протокол безопасности IP
- sec_id – Идентификатор безопасности IP (SPI)
- tun_proto – Протокол туннеля
- tun_id – Идентификатор туннеля
- l3_tun_proto – Туннелируемый протокол сетевого уровня
- l3_tun_src – Исходный адрес туннелируемого сетевого уровня
- l3_tun_dst – Адрес назначения туннелируемого сетевого уровня
- sec_tun_proto – Туннелируемый протокол безопасности IP
- sec_tun_id – Идентификатор безопасности туннелируемого IP (SPI)
- l4_proto – Протокол транспортного уровня
- l4_src – Исходный адрес транспортного уровня (порт)
- l4_dst – Адрес назначения транспортного уровня (порт)
Протоколы сетевого уровня:
- ipv4 – IPv4
- ipv6 – IPv6
Протоколы безопасности:
- ah – Заголовок аутентификации (AH)
- esp – Инкапсулированная полезная нагрузка безопасности (ESP)
Протоколы туннелей:
- ipip – Туннель IP-IP (ipencap)
- gre – Универсальная инкапсуляция маршрутизации (GRE)
Туннелируемые протоколы сетевого уровня:
- tun_ipv4 – Туннелируемый IPv4
- tun_ipv6 – Туннелируемый IPv6
Туннелируемые протоколы безопасности:
- tun_ah – Туннелируемый заголовок аутентификации (AH)
- tun_esp – Туннелируемая инкапсулированная полезная нагрузка безопасности (ESP)
Протоколы транспортного уровня:
- udp – Протокол пользовательских датаграмм (UDP)
- tcp – Протокол управления передачей (TCP)
- sctp – Протокол управления потоком передачи (SCTP)
Типы меток:
- shost – Исходный адрес сетевого уровня
- dhost – Адрес назначения сетевого уровня
- sdhost – Исходный и адрес назначения сетевого уровня
- conn – Полное соединение (Ntuple)
Управление таргетом: prefixset
Таргет prefixset может быть двух типов:
- Глобальный: применяется ко всей системе.
- Индивидуальный: специфичен для конкретного профиля.
В prefixset поддерживаются все маски IP-адресов. Префикс-сет представляет собой таблицу данных, которую может редактировать только администратор вручную. Данные в префикс-сет нельзя добавить автоматически через правила, что отличает его от меток (быстрых таблиц данных).
Функциональность
- Поиск: По префикс-сету можно осуществлять поиск с использованием команды
match
. Поиск может выполняться как по IP-адресу отправителя, так и по IP-адресу получателя. - Применение изменений: После внесения изменений в префикс-сет необходимо применить их с помощью команды
-c commit
. Сохранение (-c save
) не требуется.
Формат выполнения:
Примеры индивидуального префикс-сета:
dgctl -u prefixset://arena-name/profile-name/prefixset -c command
dgctl -u prefixset://arena-name/profile-name/ -c command
Примеры глобального префикс-сета:
dgctl -u prefixset://arena-name/prefixset-name -c command
dgctl -u prefixset://arena-name/ -c command
Доступные команды:
#Показать список префикс-сетов или их содержимое.
list
#Создать новый префикс-сет.
new
# Переименовать префикс-сет.
rename
# Очистить префик-сет.
free
# Отменить очистку (до применения commit).
unfree
# Применить изменения.
commit
# Откатить изменения (до применения commit).
rollback
# Добавить данные в префикс-сет.
insert
# Заменить данные в префикс-сете.
replace
# Удалить данные из префикс-сета.
delete
# Удалить все указанные суб-префиксы.
# Например, указав delete_sub 0.0.0.0/0 - префикс-сет полностью очистится.
delete_sub
# Удалить префикс, автоматически разбивая его
# Например, если в префикс-сете есть 1.1.1.0/24, и нужно удалить 1.1.1.88/32,
# выполните команду: dgctl -u prefixset://first/test/test -c pin -- 1.1.1.88/32
# Система удалит только .88/32, оставив остальные префиксы (1.1.1.0/25, 1.1.1.128/25 и т.д.)
pin
# Показать изменения, ожидающие применения (до выполнения commit).
diff
# Используется для внутренней отладки.
backref
# Проверить доступность таргета.
ping
# Вывести справочную информацию.
help
Управление таргетом: chain
Таргет chain позволяет создавать дополнительные цепочки правил, которые могут использоваться для перенаправления пакетов с помощью команды -j GOTO chain-name
. Цепочки уникальны для каждого профиля защиты.
Перед этим – chain нужно создать
- Применение изменений: Применение (
-c commit
) и сохранение (-c save
) цепочек происходит автоматически при применении профиля. Отдельно применять цепочки не требуется.
Формат выполнения:
dgctl -u chain://arena-name/profile-name/chain-name -c command -- command options` или `dgctl -u chain://arena-name/profile-name -c command
Доступные команды:
# Показать список цепочек в профиле или правила в цепочке.
list
# Добавить новую пустую цепочку или правила в существующую цепочку.
insert
# Удалить цепочку или правила в цепочке.
delete
# Заменить правила в цепочке.
replace
# Удалить все правила из цепочки.
clear
# Отменить предыдущее удаление цепочки.
undelete
# Переименовать существующую цепочку.
rename
# Показать все ссылки на цепочку (используется для внутренней отладки).
backref
# Показать справку по командам.
help
# Проверить доступность таргета.
ping
Примеры использования
Создать цепочку под именем "acl" с описанием "access list rules set":
dgctl -u chain://first/test -c insert acl access list rules set
Добавить правило в цепочку:
dgctl -u chain://first/test/acl -c insert -- ! -m dport 80,443 -j STATS incorrect_proto_and_ports -j DROP
Добавить второе правило:
dgctl -u profile://first/test -c insert -- -m protocol tcp -j GOTO acl
Применить и сохранить измнения:
dgctl -u profile://first/test -c commit
dgctl -u profile://first/test -c save