- пользовательский ввод больше не встраивается напрямую в inline Python-код;
- JSON-конфигурация обновляется атомарно через временный файл и
os.replace(); - для JSON используется file lock;
- параллельные операции
update/applyсериализуются черезflock; - обновление ipset выполняется атомарно через временный set и
swap.
Это необходимо для управления iptables, ipset и systemd.
Используется ipdeny.com. Если источник недоступен:
- уже закэшированные country CIDR будут использоваться из локального кэша;
- если кэша нет, обновление конкретной страны не выполнится.
Текущая версия работает только с IPv4 (family inet).
Это осознанное упрощение. Привязка идёт по опубликованным country-block спискам.
5. Скрипт не должен запускаться на сервере, где правила iptables управляются другой сложной системой
Например:
- собственным orchestration-layer;
- panel/hosting firewall manager;
- внешней CM-системой, которая полностью перезаписывает
iptables.
В таком случае сначала нужно определить, кто является источником истины для firewall.