109 lines
3.4 KiB
Markdown
109 lines
3.4 KiB
Markdown
|
|
# UFW Service
|
|||
|
|
|
|||
|
|
### *class* services.ufw_service.UFWService
|
|||
|
|
|
|||
|
|
Bases: `object`
|
|||
|
|
|
|||
|
|
Сервис взаимодействия с UFW (Uncomplicated Firewall).
|
|||
|
|
|
|||
|
|
Назначение:
|
|||
|
|
: - Чтение статуса и списка правил брандмауэра.
|
|||
|
|
- Добавление, удаление и массовая обработка правил с поддержкой диапазонов портов,
|
|||
|
|
комментариев и выбором протоколов.
|
|||
|
|
|
|||
|
|
Детали реализации:
|
|||
|
|
: - Команды выполняются через sudo ufw …; вывод парсится в модели pydantic.
|
|||
|
|
- Для операций удаления соблюдается порядок с конца, чтобы не нарушать нумерацию.
|
|||
|
|
|
|||
|
|
#### add_rules(rules: List[UFWRule]) → dict
|
|||
|
|
|
|||
|
|
Добавляет правила UFW.
|
|||
|
|
|
|||
|
|
* **Parameters:**
|
|||
|
|
**rules** – Список правил для добавления
|
|||
|
|
* **Returns:**
|
|||
|
|
Результат добавления правил
|
|||
|
|
* **Return type:**
|
|||
|
|
dict
|
|||
|
|
|
|||
|
|
#### add_rules_base(rules: List[UFWRule], direction: str = '') → bool
|
|||
|
|
|
|||
|
|
Базовый метод для добавления правил UFW.
|
|||
|
|
|
|||
|
|
* **Parameters:**
|
|||
|
|
* **rules** – Список правил для добавления
|
|||
|
|
* **direction** – Направление трафика (“in” или “out”)
|
|||
|
|
* **Returns:**
|
|||
|
|
True если все правила были успешно добавлены, False в противном случае
|
|||
|
|
* **Return type:**
|
|||
|
|
bool
|
|||
|
|
|
|||
|
|
#### add_ufw_in_rules(rules: List[UFWRule]) → bool
|
|||
|
|
|
|||
|
|
Добавляет входящие (in) правила UFW.
|
|||
|
|
|
|||
|
|
* **Parameters:**
|
|||
|
|
**rules** (*List* *[**UFWRule* *]*) – Список правил для добавления
|
|||
|
|
* **Returns:**
|
|||
|
|
True если все правила были успешно добавлены, False в противном случае
|
|||
|
|
* **Return type:**
|
|||
|
|
bool
|
|||
|
|
|
|||
|
|
#### add_ufw_out_rules(rules: List[UFWRule]) → bool
|
|||
|
|
|
|||
|
|
Добавляет исходящие (out) правила UFW.
|
|||
|
|
|
|||
|
|
* **Parameters:**
|
|||
|
|
**rules** (*List* *[**UFWRule* *]*) – Список правил для добавления
|
|||
|
|
* **Returns:**
|
|||
|
|
True если все правила были успешно добавлены, False в противном случае
|
|||
|
|
* **Return type:**
|
|||
|
|
bool
|
|||
|
|
|
|||
|
|
#### delete_rules(rule_numbers: List[int]) → dict
|
|||
|
|
|
|||
|
|
Удаляет правила UFW по их номерам.
|
|||
|
|
|
|||
|
|
* **Parameters:**
|
|||
|
|
**rule_numbers** (*List* *[**int* *]*) – Список номеров правил для удаления
|
|||
|
|
* **Returns:**
|
|||
|
|
Результат операции удаления
|
|||
|
|
* **Return type:**
|
|||
|
|
dict
|
|||
|
|
|
|||
|
|
#### disable_ufw() → bool
|
|||
|
|
|
|||
|
|
Выключает UFW.
|
|||
|
|
|
|||
|
|
* **Returns:**
|
|||
|
|
True если успешно выключен, False в противном случае
|
|||
|
|
* **Return type:**
|
|||
|
|
bool
|
|||
|
|
|
|||
|
|
#### enable_ufw() → bool
|
|||
|
|
|
|||
|
|
Включает UFW.
|
|||
|
|
|
|||
|
|
* **Returns:**
|
|||
|
|
True если успешно включен, False в противном случае
|
|||
|
|
* **Return type:**
|
|||
|
|
bool
|
|||
|
|
|
|||
|
|
#### get_ufw_rules() → UFWRulesResponse
|
|||
|
|
|
|||
|
|
Получает список правил UFW.
|
|||
|
|
|
|||
|
|
* **Returns:**
|
|||
|
|
Объект, содержащий статус UFW и список правил
|
|||
|
|
* **Return type:**
|
|||
|
|
UFWRulesResponse
|
|||
|
|
|
|||
|
|
#### get_ufw_status() → UFWStatus
|
|||
|
|
|
|||
|
|
Проверяет статус UFW.
|
|||
|
|
|
|||
|
|
* **Returns:**
|
|||
|
|
Объект с информацией о статусе UFW
|
|||
|
|
* **Return type:**
|
|||
|
|
UFWStatus
|