Пересылка iptables в Linux libvirt с использованием режима NattedLinux

Ответить Пред. темаСлед. тема
Anonymous
 Пересылка iptables в Linux libvirt с использованием режима Natted

Сообщение Anonymous »

Я пытаюсь разместить веб-сервер на виртуальной машине с использованием переадресации портов. Я настроил необходимые правила iptables и могу успешно получить доступ к своему веб-сайту, используя IP-адрес хоста. Однако после установки этих правил виртуальная машина не может получить доступ к удаленным веб-сайтам через порт 80.
Что работает
внешнее устройство => хост => гостевая виртуальная машина
гостевая виртуальная машина => хост => внешнее устройство на портах, отличных от 80/443
что работает (без настройки IPTABLES)
гостевая виртуальная машина => хост => внешнее устройство (он же google. com:80)
что не работает (при настройке IPTABLES)
гостевая виртуальная машина => хост => внешнее устройство (он же google.com:80)Применены правила Iptables:

Код: Выделить всё

sudo iptables -I FORWARD -o virbr0 -p tcp -d 192.168.122.138 --dport 8080 -j ACCEPT
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.122.138:8080
sudo iptables -I FORWARD -o virbr0 -p tcp -d 192.168.122.138 --dport 8443 -j ACCEPT
sudo iptables -t nat -I PREROUTING -p tcp --dport 443 -j DNAT --to 192.168.122.138:8443

вывод iptables -S

Код: Выделить всё

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N LIBVIRT_FWI
-N LIBVIRT_FWO
-N LIBVIRT_FWX
-N LIBVIRT_INP
-N LIBVIRT_OUT
-A INPUT -j LIBVIRT_INP
-A FORWARD -d 192.168.122.138/32 -o virbr0 -p tcp -m tcp --dport 8443 -j ACCEPT
-A FORWARD -d 192.168.122.138/32 -o virbr0 -p tcp -m tcp --dport 8080 -j ACCEPT
-A FORWARD -d 192.168.122.138/32 -o virbr0 -p tcp -m tcp --dport 8080 -j ACCEPT
-A FORWARD -j LIBVIRT_FWX
-A FORWARD -j LIBVIRT_FWI
-A FORWARD -j LIBVIRT_FWO
-A OUTPUT -j LIBVIRT_OUT
-A LIBVIRT_FWI -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A LIBVIRT_FWI -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWO -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A LIBVIRT_FWO -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A LIBVIRT_FWX -i virbr0 -o virbr0 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A LIBVIRT_INP -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
-A LIBVIRT_OUT -o virbr0 -p tcp -m tcp --dport 68 -j ACCEPT

вывести iptables -S -t nat

Код: Выделить всё

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-N LIBVIRT_PRT
-A PREROUTING -p tcp -m tcp --dport 443 -j DNAT --to-destination 192.168.122.138:8443
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.122.138:8080
-A POSTROUTING -j LIBVIRT_PRT
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE

Я пытался изменить гостевой порт с 80 на 8080 (при этом порт хоста iptables остался на 80)
Я чувствую, что это как-то связано с таблицей nat, поскольку удаление правило

Код: Выделить всё

sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.122.138:8080

правило исправляется, но (конечно) сервер больше недоступен из Интернета

Подробнее здесь: https://stackoverflow.com/questions/787 ... atted-mode
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка установки libvirt-python в Rocky Linux 9: pkg-config не может найти libvirt
    Anonymous » » в форуме Linux
    0 Ответы
    89 Просмотры
    Последнее сообщение Anonymous
  • Пересылка пакетов TEE iptables [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Является ли пересылка rvalue напрямую столь же эффективной, как и идеальная пересылка в простом случае?
    Гость » » в форуме C++
    0 Ответы
    53 Просмотры
    Последнее сообщение Гость
  • Настройте Libvirt KVM для подключения к локальной сети и использования ее DHCP
    Anonymous » » в форуме Linux
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Получить информацию о работающих доменах с помощью Python + libvirt
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Linux»