Libvirt hooks или как убрать default правила iptables (KVM, libvirt)

799 views
Skip to first unread message

Serge Torop

unread,
Apr 27, 2015, 4:16:21 PM4/27/15
to spbl...@googlegroups.com
Hello, all,

есть Centos 6.6, libvirt, KVM.

Есть свои правила (проброс портов и пр. фильтрация) в /etc/sysconfig/iptables.

При старте машины применяются дефолтные правила (добавляются в частности

MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24,

что портит мои правила.

Как это побороть, отключить libvirt masquerade?

Рекомендуется использовать http://libvirt.org/hooks.html ,
но не могу найти / как писать в хуках свои правила для netfilter.

То есть перезапустил libvirt - делай очистку правил iptables и применяй свои, что не правильно.
Есть решение этому? 


--
Serge P. Torop

Aleks Mayer

unread,
Apr 28, 2015, 1:41:11 AM4/28/15
to spbl...@googlegroups.com
27.04.2015 22:02, Serge Torop пишет:
Просто удалить сеть default из virtual networks не помогает?
--
Serge P. Torop
--
--
Read http://wiki.spblug.org/maillist befor post!
Прочтите http://wiki.spblug.org/maillist перед написанием сообщений в рассылку!

---
Вы получили это сообщение, поскольку подписаны на группу "spb.linux".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес spblinux+u...@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Aleks Mayer

unread,
Apr 28, 2015, 2:21:18 AM4/28/15
to spbl...@googlegroups.com
28.04.2015 08:41, Aleks Mayer пишет:

27.04.2015 22:02, Serge Torop пишет:
Hello, all,

есть Centos 6.6, libvirt, KVM.

Есть свои правила (проброс портов и пр. фильтрация) в /etc/sysconfig/iptables.

При старте машины применяются дефолтные правила (добавляются в частности

MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24,

что портит мои правила.

Как это побороть, отключить libvirt masquerade?

Рекомендуется использовать http://libvirt.org/hooks.html ,
но не могу найти / как писать в хуках свои правила для netfilter.

То есть перезапустил libvirt - делай очистку правил iptables и применяй свои, что не правильно.
Есть решение этому? 


Просто удалить сеть default из virtual networks не помогает?
--
Или у тебя в этой подсети машины есть? Тогда может лучше создать новую virtual network, а эту отключить?

Serguey Khvatov

unread,
Apr 28, 2015, 5:05:07 AM4/28/15
to spbl...@googlegroups.com, serge...@gmail.com


понедельник, 27 апреля 2015 г., 23:16:21 UTC+3 пользователь Serge Torop написал:
Hello, all,

есть Centos 6.6, libvirt, KVM.

Есть свои правила (проброс портов и пр. фильтрация) в /etc/sysconfig/iptables.

При старте машины применяются дефолтные правила (добавляются в частности

MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24,

что портит мои правила.

Как это побороть, отключить libvirt masquerade?

Вы же сами заказали отдельную виртуальную сеть с маскарадингом. Если вы хотите что-то другое (изолированную виртуальную сеть, маршрутизируемую или бриджуемую в физическую) настройте свой менеджер и сами VM адекватно. Только сначала решите для себя и объясните, что вы хотите.

andrey i. mavlyanov

unread,
Apr 28, 2015, 5:18:02 AM4/28/15
to spbl...@googlegroups.com


On 27/04/15 22:02, Serge Torop wrote:

>
> Как это побороть, отключить libvirt masquerade?
>

надо вырубить дефолтную сеть которую libvirt делает

как это сделать описано вот тут:
http://www.cyberciti.biz/faq/linux-kvm-disable-virbr0-nat-interface/


--
/aim [ http://aim.pp.ru/ ]

Serge Torop

unread,
Apr 28, 2015, 4:22:31 PM4/28/15
to spbl...@googlegroups.com
Спасибо всем за советы, 
в частности про "удалить дефолтную сеть". Но у меня гости сидят на серых адресах
"192.168.122.1", в /etc/libvirt/qemu/networks/default.xml (default сеть) я вижу конфиг:

<network>
  <name>default</name>
  <uuid>b85ee937-c41c-4caa-a43b-d74e33de9a95</uuid>
  <bridge name="virbr0" />
  <mac address='52:54:00:C7:7D:A1'/>
  <forward/>
  <ip address="192.168.122.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.122.2" end="192.168.122.254" />
    </dhcp>
  </ip>
</network>

То есть libvirt делает свою работу, прописывает сеть и NAT правила. Может я не корректно
описал ситуацию, но я хотел применимости именно своих правил в /etc/sysconfig/iptables,
где есть все нужные правила NAT и проброса портов.

То есть системный /etc/sysconfig/iptables применяется как сервис, но в наборе правил
присутствует дефолтный маскарадинг от libvirt, который мешает. Вот я и спросил, можно ли
это убрать.

Или есть другой, более правильный способ применения именно своих правил iptables
совместно или внутри libvirt, например, проброс портов или IP фильтры (видимо я этого не знаю)?

Или можно удалить default сеть, создать свою и тогда всё будет правильно (ещё не успел опробовать)?


28 апреля 2015 г., 12:17 пользователь andrey i. mavlyanov <a...@aim.pp.ru> написал:
--
--
Read http://wiki.spblug.org/maillist befor post!
Прочтите http://wiki.spblug.org/maillist перед написанием сообщений в рассылку!

--- Вы получили это сообщение, поскольку подписаны на группу spb.linux.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес spblinux+u...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
Serge P. Torop

andrey i. mavlyanov

unread,
Apr 28, 2015, 4:41:00 PM4/28/15
to spbl...@googlegroups.com


On 28/04/15 23:22, Serge Torop wrote:

> То есть системный /etc/sysconfig/iptables применяется как сервис, но в
> наборе правил
> присутствует дефолтный маскарадинг от libvirt, который мешает. Вот я и
> спросил, можно ли
> это убрать.

https://libvirt.org/firewall.html

тут написано что есть три типа "частных" сетей: сеть есть, но она
"изолирована", "маскарадинг" и routed. Возможно тебе подойдёт последнее.
Почитай там подробности.

--
/aim [ http://aim.pp.ru/ ]

Serge Torop

unread,
May 7, 2015, 4:07:36 AM5/7/15
to spbl...@googlegroups.com

Решение можно применить такое:

Libvirtd hook для применения правил iptables

При установке виртуализации KVM/qemu и использовании NAT существует проблема применения правил /etc/sysconfig/iptables. При загрузке системы на ранней стадии стартует сервис iptables: /etc/rc3.d/S08iptables -> ../init.d/iptables

Далее в конце загрузки стартует libvirtd: /etc/rc3.d/S08iptables -> ../init.d/iptables который применяет свои default правила, если используется NAT для гостевых ОС.

Выглядеть это может так:

MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535 
MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535 
MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24  

В итоге правила NAT не работают так, как это применялось в /etc/sysconfig/iptables.

Ниже указано решение использования hooks в libvirtd для перезапуска сервиса iptables после старта libvirtd:

1. mkdir /etc/libvirt/hooks
2. vi /etc/libvirt/hooks/network

#!/bin/bash

# for iptables reloading after host booted 

if [ "$2" = "started" ]; then

/etc/init.d/iptables restart

fi;

exit 0;

3. chmod 755 /etc/libvirt/hooks/network

То есть сервис iptables перезагружается после старта демона libvirtd, применяя системные правила iptables.

Описание libvirt hooks:





28 апреля 2015 г., 23:40 пользователь andrey i. mavlyanov <a...@aim.pp.ru> написал:


--
 /aim        [ http://aim.pp.ru/ ]

--
--
Read http://wiki.spblug.org/maillist befor post!
Прочтите http://wiki.spblug.org/maillist перед написанием сообщений в рассылку!

--- Вы получили это сообщение, поскольку подписаны на группу spb.linux.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес spblinux+u...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
Serge P. Torop
Reply all
Reply to author
Forward
0 new messages