Настройки firewall nftables (firewall.toml)
По умолчанию настройки от firewall находятся тут:
/etc/kor-elf-shield/firewall.toml
Путь к этим настройкам можно поменять в главных настройках и ознакомиться можно тут (параметр firewall).
Копия полноценого файл настроек находится тут.
В этом файле есть несколько разделов:
- Настройки портов
- Настройки IPv4
- Настройки IPv6
- Общие настройки
- Политика действий по умолчанию
- Именование метаданных
Настройки портов
Эти настройки должны находиться вначале файла до разделов: "Настройки IPv4", "Настройки IPv6", "Общие настройки", "Политика действий по умолчанию", "Именование метаданных".
| Параметр | [[ports]] |
| Значение | Указываем группу настроек портов |
| По умолчанию | |
| Описание | Это группа настроек портов. [[ports]] можно указывать неограниченное количество групп. [[ports]] numbers - Номера портов (обязательное поле) directions - Входящий (in), исходящий трафик (out) (обязательное поле) protocols - Протокол: tcp, udp (обязательное поле) action - Действие: accept, drop или reject (обязательное поле) limit_rate - Указываем ограничения если будет нужно (не обязательное поле) numbers - можно указывать одно или несколько портов, но правила будут создаваться отдельно для каждого порта. directions - если указываем in и out, то создаться каждое правило отдельно в своей цепочке. protocols - если указано tcp и udp, то создаться каждое правило отдельно для каждого протокола. action: accept - разрешить drop - блокировать молча reject - блокировка с обратной связью limit_rate - устанавливайте его в соответствии с документацией nftables (limit rate). |
| Примеры |
Другой пример:
Другой пример:
|
| *** | |
|---|---|
| Параметр | [[ips]] |
| Значение | Указываем группу настроек IP адресов |
| По умолчанию | |
| Описание |
Указываем IP адреса, которые надо разрешить или запретить. [[ips]] можно указывать неограниченное количество групп. |
| Примеры |
Другой пример:
|
Настройки IPv4
Указывать параметры для этого раздела нужно вначале указать [ip4], а после уже указывать остальные параметры этого раздела. Пример:
[ip4]
icmp_in = true
icmp_in_rate = "1/second"
icmp_out = true
| Параметр | icmp_in |
| Значение | true или false |
| По умолчанию | true |
| Описание | Разрешить входящий PING. Отключение PING может нарушить работу внешнего мониторинга. true - включает false - выключает |
| Примеры |
|
| *** | |
|---|---|
| Параметр | icmp_in_rate |
| Значение | Установите ограничения на количество одновременных пакетов в секунду |
| По умолчанию | 1/second |
| Описание | Установите ограничения на количество одновременных входящих пакетов в секунду. Если превысит количество пакетов за указанный период, оставшиеся пакеты будут отброшены. Если вы заметите нежелательные потери, увеличьте значение или отключите его. Чтобы отключить ограничение скорости, установите значение "0", в противном случае установите его в соответствии с документацией nftables (limit rate). Например, «1/second» ограничит передачу одним пакетом в секунду. |
| Примеры |
|
| *** | |
| Параметр | icmp_out |
| Значение | true или false |
| По умолчанию | true |
| Описание | Разрешить исходящий PING. Если нет особых причин, то лучше не отключать иначе может нарушить работу ОС. true - включает false - выключает |
| Примеры |
|
| *** | |
| Параметр | icmp_out_rate |
| Значение | Установите ограничения на количество одновременных пакетов в секунду. |
| По умолчанию | 0 |
| Описание | Установите ограничения на количество одновременных исходящих пакетов в секунду. Если превысит количество пакетов за указанный период, оставшиеся пакеты будут отброшены. Если нет особых причин, то лучше не включать ограничения иначе может нарушить работу ОС. Чтобы отключить ограничение скорости, установите значение "0", в противном случае установите его в соответствии с документацией nftables (limit rate). Например, «1/second» ограничит передачу одним пакетом в секунду. |
| Примеры |
|
| *** | |
| Параметр | icmp_timestamp_drop |
| Значение | true или false |
| По умолчанию | false |
| Описание | Блокировать ICMP timestamp-запросы. На самом деле реальной угрозы почти нет, но иногда ИТ-аудиторы настаивают на блокировке ICMP timestamp-запросов. true - включает false - выключает |
| Примеры |
|
Настройки IP6
Указывать параметры для этого раздела нужно вначале указать [ip6], а после уже указывать остальные параметры этого раздела. Пример:
[ip6]
enable = true
icmp_strict = false
| Параметр | enable |
| Значение | true или false |
| По умолчанию | false |
| Описание | Включает поддержку IPv6. Если IPv6 выключен, то все настройки связанные с IPv6 будут игнорироваться. true - включает false - выключает |
| Примеры |
|
| *** | |
|---|---|
| Параметр | icmp_strict |
| Значение | true или false |
| По умолчанию | false |
| Описание | IPv6 активно использует пакеты ICMPV6, поэтому по умолчанию строгий режим ICMPV6 выключен. Однако это может увеличить риск атак на ICMPV6. Можно включить строгий режим, но это может спровоцировать проблемы с некоторыми типами подключений. true - включает false - выключает |
| Примеры |
|
Общие настройки
Указывать параметры для этого раздела нужно вначале указать [options], а после уже указывать остальные параметры этого раздела. Пример:
[options]
saves_rules = false
saves_rules_path = "/etc/nftables.conf"
dns_strict = false
| Параметр | saves_rules |
| Значение | true или false |
| По умолчанию | false |
| Описание | Будет ли демон сохранять правила в системный файл nftables. Не забудьте проверить, что путь к nftables соответствует вашей ОС. Если не сохранять правила в системный файл nftables, то после перезапуска программы nftables (например после обновления) все правила сотрутся. Тем не менее мы по умолчанию решили отключить автоматическое сохранения правил в системный файл nftables, потому что надо вначале убедиться, что параметре saves_rules_path указывает на правильный файл. true - включает false - выключает |
| Примеры |
|
| *** | |
|---|---|
| Параметр | saves_rules_path |
| Значение | Указываем путь к файлу |
| По умолчанию | /etc/nftables.conf |
| Описание | Путь, где будут сохранены правила для nftables. Укажите путь, соответствующий вашей ОС. Путь должен быть абсолютный. Относительный путь вызовет ошибку! Обязательно в конце должно быть указано .conf. |
| Примеры |
|
| *** | |
| Параметр | dns_strict |
| Значение | true или false |
| По умолчанию | false |
| Описание | Включает строгие правила nftables к DNS-трафику. Если включить этот режим, то некоторые правила, связанные с DNS, не добавятся в nftables. Что улучшит безопасность и предотвратить злоупотребление локальным DNS-сервером. Но может вызвать проблемы связанным с DNS. true - включает false - выключает |
| Примеры |
|
| *** | |
| Параметр | dns_strict_ns |
| Значение | true или false |
| По умолчанию | false |
| Описание | Включает строгие правила nftables к DNS-трафику. Если включить этот режим, то не добавятся правила, разрешающие IP адресам порт 53 (входящим и исходящим), которые указаны в /etc/resolv.conf. Это может спровоцировать проблему с DNS. true - включает false - выключает |
| Примеры |
|
| *** | |
| Параметр | packet_filter |
| Значение | true или false |
| По умолчанию | true |
| Описание | Добавляет в nftables фильтирацию пакетов, которые нарушают порядок. Отключать не рекомендуется! true - включает false - выключает |
| Примеры |
|
Политика действий по умолчанию
Указывать параметры для этого раздела нужно вначале указать [policy], а после уже указывать остальные параметры этого раздела. Пример:
[policy]
default_allow_input = false
default_allow_output = false
default_allow_forward = false
| Параметр | default_allow_input |
| Значение | true или false |
| По умолчанию | false |
| Описание | Разрешить входящий трафик по умолчанию. true - включает false - выключает |
| Примеры |
|
| *** | |
|---|---|
| Параметр | default_allow_output |
| Значение | true или false |
| По умолчанию | false |
| Описание | Разрешить исходящий трафик по умолчанию. true - включает false - выключает |
| Примеры |
|
| *** | |
| Параметр | default_allow_forward |
| Значение | true или false |
| По умолчанию | false |
| Описание | Разрешить forward трафик по умолчанию. true - включает false - выключает |
| Примеры |
|
| *** | |
| Параметр | input_drop |
| Значение | drop или reject |
| По умолчанию | drop |
| Описание | Как заблокировать входящий трафик. drop - блокировать молча reject - блокировка с обратной связью |
| Примеры |
|
| *** | |
| Параметр | output_drop |
| Значение | drop или reject |
| По умолчанию | reject |
| Описание | Как заблокировать исходящий трафик. drop - блокировать молча reject - блокировка с обратной связью |
| Примеры |
|
| *** | |
| Параметр | forward_drop |
| Значение | drop или reject |
| По умолчанию | drop |
| Описание | Как заблокировать трафик forward. drop - блокировать молча reject - блокировка с обратной связью |
| Примеры |
|
Именование метаданных
Указывать параметры для этого раздела нужно вначале указать [metadataNaming], а после уже указывать остальные параметры этого раздела. Пример:
[metadataNaming]
table_name = "shield"
chain_input_name = "input"
chain_output_name = "output"
chain_forward_name = "forward"
| Параметр | table_name |
| Значение | От 1 символа по 32 символа Разрешены символы: a-zA-Z0-9_- |
| По умолчанию | shield |
| Описание | Имя таблицы в nftables. |
| Примеры |
|
| *** | |
|---|---|
| Параметр | chain_input_name |
| Значение | От 1 символа по 32 символа Разрешены символы: a-zA-Z0-9_- |
| По умолчанию | input |
| Описание | Имя цепочки для входящего трафика. |
| Примеры |
|
| *** | |
| Параметр | chain_output_name |
| Значение | От 1 символа по 32 символа Разрешены символы: a-zA-Z0-9_- |
| По умолчанию | output |
| Описание | Имя цепочки для исходящего трафика. |
| Примеры |
|
| *** | |
| Параметр | chain_forward_name |
| Значение | От 1 символа по 32 символа Разрешены символы: a-zA-Z0-9_- |
| По умолчанию | forward |
| Описание | Имя цепочки для forward трафика. |
| Примеры |
|