This commit is contained in:
parent 06a5a758a3
commit 58fa7d1ee6
19 changed files with 567 additions and 377 deletions

View file

@ -41,9 +41,9 @@ class UFWService:
print(f"Command error: {result.stderr}")
if result.returncode != 0:
raise subprocess.CalledProcessError(
result.returncode, command, result.stdout, result.stderr
)
raise subprocess.CalledProcessError(result.returncode, command,
result.stdout,
result.stderr)
return result.stdout
@ -116,9 +116,8 @@ class UFWService:
"""
try:
status_result = self._run_command("ufw status")
first_line = (
status_result.splitlines()[0] if status_result.splitlines() else ""
)
first_line = (status_result.splitlines()[0]
if status_result.splitlines() else "")
is_enabled = "Status: active" in first_line
message = "UFW активен" if is_enabled else "UFW неактивен"
@ -166,7 +165,9 @@ class UFWService:
print(f"Ошибка при выключении UFW: {e}")
return False
def add_rules_base(self, rules: List[UFWRule], direction: str = "") -> bool:
def add_rules_base(self,
rules: List[UFWRule],
direction: str = "") -> bool:
"""
Базовый метод для добавления правил UFW.
@ -296,7 +297,10 @@ class UFWService:
except Exception as e:
error_msg = f"Ошибка выполнения команды: {str(e)}"
print(error_msg)
results.append({"success": False, "message": error_msg})
results.append({
"success": False,
"message": error_msg
})
except Exception as e:
error_msg = f"Ошибка при добавлении правила: {str(e)}"
@ -334,7 +338,7 @@ class UFWService:
try:
# Извлекаем номер правила из строки [N]
rule_num = int(line[1 : line.index("]")])
rule_num = int(line[1:line.index("]")])
rules.append(rule_num)
except (ValueError, IndexError):
continue
@ -349,32 +353,37 @@ class UFWService:
try:
# Проверяем существует ли правило с таким номером
if rule_number not in rules:
results.append(
{
"number": rule_number,
"success": False,
"error": f"Правило с номером {rule_number} не найдено",
}
)
results.append({
"number":
rule_number,
"success":
False,
"error":
f"Правило с номером {rule_number} не найдено",
})
continue
# Удаляем правило
self._run_command(f"ufw --force delete {rule_number}")
results.append(
{
"number": rule_number,
"success": True,
"message": f"Правило {rule_number} успешно удалено",
}
)
results.append({
"number":
rule_number,
"success":
True,
"message":
f"Правило {rule_number} успешно удалено",
})
except Exception as e:
if DEBUG:
print(f"Ошибка при удалении правила {rule_number}: {e}")
results.append(
{"number": rule_number, "success": False, "error": str(e)}
)
print(
f"Ошибка при удалении правила {rule_number}: {e}")
results.append({
"number": rule_number,
"success": False,
"error": str(e)
})
# Подсчитываем статистику
total = len(rule_numbers)