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

Брандмауэр KVM для запрета доступа в Интернет для группы гостей

У меня есть KVM-сервер в локальной сети (192.168.10.0/24). Этот сервер имеет три интерфейса, все из которых соединены публичным мостом [1]. Atm Я использую только два из трех интерфейсов, поэтому виртуальные машины разделены на две группы (одна использует мост0, другой использует мост1).

Можно ли настроить брандмауэр (iptables) на хозяин, чтобы запретить доступ в Интернет для группы, использующей мост1? Или мне нужна другая настройка (маршрутизация через хост)?

[1] http://www.linux-kvm.org/page/Networking#public_bridge


Я пробовал следующее (но, похоже, не работает):

  1. разрешить все по локальной петле
  2. позволить всему закончиться мост0
  3. разрешить только локальный сетевой трафик мост1
  4. отрицать все остальное

Соответствующие iptables -S вывод:

    -P INPUT DROP
    -P FORWARD DROP
    -P OUTPUT DROP
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -i lo -m state --state NEW -j ACCEPT 
    -A INPUT -i bridge0 -m state --state NEW -j ACCEPT 
    -A INPUT -s 192.168.10.0/24 -d 192.168.10.0/24 -i bridge1 -m state --state NEW -j ACCEPT 
    -A INPUT -j DROP 
    -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A FORWARD -i bridge0 -m state --state NEW -j ACCEPT 
    -A FORWARD -o bridge0 -m state --state NEW -j ACCEPT 
    -A FORWARD -s 192.168.10.0/24 -d 192.168.10.0/24 -i bridge1 -m state --state NEW -j ACCEPT 
    -A FORWARD -s 192.168.10.0/24 -d 192.168.10.0/24 -o bridge1 -m state --state NEW -j ACCEPT 
    -A FORWARD -j DROP 
    -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A OUTPUT -o lo -m state --state NEW -j ACCEPT 
    -A OUTPUT -o bridge0 -m state --state NEW -j ACCEPT 
    -A OUTPUT -s 192.168.10.0/24 -d 192.168.10.0/24 -o bridge1 -m state --state NEW -j ACCEPT 
    -A OUTPUT -j DROP

Вы должны иметь возможность установить 2 правила iptables на хосте: одно разрешает доступ к Интернету с bridge0, а другое запрещает доступ к Интернету для всех остальных, используя параметры --in-interface / --out-interface.