Рейтинг:0

Как перезагрузить firewalld без потери правил переадресации Libvirt iptables

флаг cn

Хорошо известно, что firewalld сбрасывает правила Libvirt при перезагрузке и, таким образом, прерывает переадресацию портов на виртуальные машины, пока вы не перезапустите libvirtd. Вот что я сделал:

  1. Создавать /etc/systemd/system/firewalld-reload-hook.service
[Ед. изм]
Description=firewalld reload hook — запустить скрипт ловушки при перезагрузке firewalld
Хочет = dbus-broker.service
После = dbus-broker.service

[Оказание услуг]
Тип=простой
ExecStart=/bin/bash -c '/bin/busctl monitor --system --json=short --match "interface=org.fedoraproject.FirewallD1,member=Reloaded" | при чтении строки -r; do [ -x /sbin/firewalld-reload-hook ] && /sbin/firewalld-reload-hook ; сделано'

[Установить]
WantedBy=многопользовательская.цель
  1. Создавать /sbin/firewalld-reload-hook
#!/бин/баш

# Вызывается /etc/systemd/system/firewalld-reload-hook.service
установить -е

logger "$BASH_SOURCE: сработал хук перезагрузки брандмауэра."

/usr/bin/systemctl перезапустить libvirtd

logger "$BASH_SOURCE: Libvirt перезапущен."

выход 0

и сделать его исполняемым chmod +x /sbin/firewalld-reload-hook

  1. Установить libvirt-hook-qemu
клон git https://github.com/saschpe/libvirt-hook-qemu.git
сделать установку
  1. Редактировать /etc/libvirt/хуки/хуки.json чтобы соответствовать вашим потребностям. Это просто пример
{
    "www": {
        "частный_ip": "192.168.122.100",
        "port_map": {
            "TCP": [80, 443]
        }
    },
    "почта": {
        "частный_ip": "192.168.122.101",
        "port_map": {
            "TCP": [25, 465]
        }
    }
}
  1. Включить и начать firewalld-reload-hook.service
systemctl включить firewalld-reload-hook.service
systemctl запустить firewalld-reload-hook.service
  1. брандмауэр-cmd --перезагрузить

На данном этапе systemctl перезапустить libvirtd и брандмауэр-cmd --перезагрузить дают те же результаты и выдерживают перезагрузки (проверено на Debian Bullseye с nftables и libvirt 7.0/NAT network)

Итак, это лучший способ сделать это?

Ссылаться libvirt-hook-qemu, firewalld-reload-hook.service, firewalld.dbus

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.