Skip to content

Security: Balbuto/RCN

Security

docs/SECURITY.md

Безопасность и ограничения

Исправления безопасности в v3

  • пользовательский ввод больше не встраивается напрямую в inline Python-код;
  • JSON-конфигурация обновляется атомарно через временный файл и os.replace();
  • для JSON используется file lock;
  • параллельные операции update/apply сериализуются через flock;
  • обновление ipset выполняется атомарно через временный set и swap.

Что остаётся важным для эксплуатации

1. Скрипт работает от root

Это необходимо для управления iptables, ipset и systemd.

2. GeoIP по странам зависит от внешнего источника CIDR

Используется ipdeny.com. Если источник недоступен:

  • уже закэшированные country CIDR будут использоваться из локального кэша;
  • если кэша нет, обновление конкретной страны не выполнится.

3. IPv6 не поддерживается

Текущая версия работает только с IPv4 (family inet).

4. GeoIP по странам — это CIDR-фильтрация, а не GeoIP БД уровня MaxMind

Это осознанное упрощение. Привязка идёт по опубликованным country-block спискам.

5. Скрипт не должен запускаться на сервере, где правила iptables управляются другой сложной системой

Например:

  • собственным orchestration-layer;
  • panel/hosting firewall manager;
  • внешней CM-системой, которая полностью перезаписывает iptables.

В таком случае сначала нужно определить, кто является источником истины для firewall.

There aren't any published security advisories