Назад | Перейти на главную страницу

libvirt и брандмауэр хоста

Хихо!

Я использую libvirt с kvm, и он отлично работает. Мое желание - заблокировать хост-систему с помощью брандмауэра хоста. До сих пор я всегда использовал shorewall в качестве предпочтительной утилиты для управления iptables. Но это конфликтует с управлением iptables libvirt. Я использовал libvirt для настройки NAT для гостей kvm. Libvirt настраивает для этого MASQ, используя iptables, который отлично работает. Но как только shorewall запускается, он сбрасывает iptables и настраивает их в соответствии с конфигурацией, сделанной в файлах shorewall. Затем я попытался «перевести» все правила libvirt iptables в shorewall, чтобы предотвратить потерю функциональности. Но это работает только частично и в любом случае является уродливым взломом. Как только я изменяю конфигурацию сети с помощью libvirt для гостя, я должен также внести изменения в shorewall. Итак, каков был бы правильный способ как защитить хост-систему, так и использовать libvirt для управления сетью гостей kvm? Совместима ли libvirt с firewalld в мире CentOS? привет!

Возможно, вы можете использовать скрипт перехвата libvirt. Вы создаете сценарий оболочки, который libvirt выполнит, как только ваша виртуальная машина будет запущена.

Создайте файл /etc/libvirt/hooks/qemu с этим внутри:

    #!/bin/bash
    if [ "${1}" = "<the name of your vm>" ] ; then
      VM_NAME=${1}
      VM_IP=172.16.20.10
      if [ "${2}" = "prepare" ] ; then
        iptables -t nat -I POSTROUTING -s ${VM_IP} -o eth0 \
            -m comment --comment "${VM_NAME} nat" -j MASQUERADE
      elif [ "%{2}" = release" ] ; then
        iptables -t nat -D POSTROUTING -s ${VM_IP} -o eth0 \
            -m comment --comment "${VM_NAME} nat" -j MASQUERADE
    fi

Убедитесь, что вы заменили <the name of yout vm> и значение VM_IP соответственно. Сделайте файл также исполняемым: chmod +x /etc/libvirt/hooks/qemu.

Теперь, каждый раз, когда libvirt запускает вашу виртуальную машину, она подготавливает конфигурацию NAT и после остановки виртуальной машины деконфигурирует NAT.

Для получения дополнительной информации вы можете посмотреть Вот и Вот