Форум русскоязычного сообщества Ubuntu


Автор Тема: Переброс порта в виртуальную машину  (Прочитано 1459 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн neurotoxin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
  • Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3
    • Просмотр профиля
    • Neuronix Creative Solution
Доброго времени суток.
Люди добрые, товарищи, братья. Выручайте. Я уже дымлю второй день, начал заикаться и появился тремор, от простой задачи, которую раньше я выполнял без вопросов, по памяти.

Есть сервер с установленной Ubuntu 12.04 Server x64. на ней две сетевые карты, одана смотрит в мир, другая в локальную сеть, вообщем классика.

eth1 - это мир
eth0 - 10.10.0.1

Между ними настроен forward, то есть я из локальной машины без вопросов попадаю в мир.
На машине установлена qemu-kvm (libvirt) и настроена виртуальная машина с тем же ubuntu server 12.04 у неё ip адрес 192.168.122.179 выданный автоматически.

Задача стоит следующая, нужно чтобы из мира, был виден порт 80 виртуальной машины. Как правильно это организовать?

Проще говоря кто-то в браузере набирает мой IP и видит It's works от апача установленного на виртуальной машине.

Вот вывод iptables-save
# Generated by iptables-save v1.4.12 on Tue Jun 19 19:15:59 2012
*nat
:PREROUTING ACCEPT [5681:2689560]
:INPUT ACCEPT [2825:295677]
:OUTPUT ACCEPT [121:7901]
:POSTROUTING ACCEPT [0:0]
[5:284] -A PREROUTING -d 93.126.72.214/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.122.179:80
[0:0] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
[1:76] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
[0:0] -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
[1269:112164] -A POSTROUTING -j MASQUERADE
COMMIT
# Completed on Tue Jun 19 19:15:59 2012
# Generated by iptables-save v1.4.12 on Tue Jun 19 19:15:59 2012
*mangle
:PREROUTING ACCEPT [23272:13639568]
:INPUT ACCEPT [3772:484322]
:FORWARD ACCEPT [17793:10865702]
:OUTPUT ACCEPT [2956:318063]
:POSTROUTING ACCEPT [20744:11183481]
[4:1316] -A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Tue Jun 19 19:15:59 2012
# Generated by iptables-save v1.4.12 on Tue Jun 19 19:15:59 2012
*filter
:INPUT ACCEPT [3280:429127]
:FORWARD ACCEPT [1567:132801]
:OUTPUT ACCEPT [2918:314953]
[4:242] -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
[0:0] -A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
[4:1312] -A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
[0:0] -A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
[183:14463] -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
[0:0] -A INPUT -p udp -m multiport --dports 22,80 -j ACCEPT
[258:35152] -A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -i eth1 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
[0:0] -A INPUT -s 192.168.122.179/32 -i eth1 -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
[0:0] -A INPUT -s 192.168.122.179/32 -i eth1 -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
[4:304] -A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
[4:304] -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
[0:0] -A FORWARD -i virbr0 -o virbr0 -j ACCEPT
[5:284] -A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
[0:0] -A FORWARD -s 10.10.0.0/24 -i eth1 -o eth0 -m conntrack --ctstate NEW -j ACCEPT
[16211:10731835] -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
[0:0] -A FORWARD -d 192.168.122.179/32 -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Tue Jun 19 19:15:59 2012
Вот route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         ip-4801.proline 0.0.0.0         UG    100    0        0 eth1
10.10.0.0       *               255.255.255.0   U     0      0        0 eth0
93.126.72.0     *               255.255.252.0   U     0      0        0 eth1
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
и ifconfig
eth0      Link encap:Ethernet  HWaddr 00:04:75:75:7a:fe 
          inet addr:10.10.0.1  Bcast:10.255.255.255  Mask:255.255.255.0
          inet6 addr: fe80::204:75ff:fe75:7afe/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11041 errors:0 dropped:0 overruns:9 frame:0
          TX packets:9018 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9255700 (9.2 MB)  TX bytes:3286762 (3.2 MB)
          Interrupt:20 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 1c:c1:de:5d:d2:c0 
          inet addr:93.126.72.214  Bcast:93.126.75.255  Mask:255.255.252.0
          inet6 addr: fe80::1ec1:deff:fe5d:d2c0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:35082 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13743 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7513594 (7.5 MB)  TX bytes:9649568 (9.6 MB)
          Interrupt:18

lo        Link encap:Локальная петля (Loopback) 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:76 (76.0 B)  TX bytes:76 (76.0 B)

virbr0    Link encap:Ethernet  HWaddr fe:54:00:85:9e:f7 
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2354 (2.3 KB)  TX bytes:2657 (2.6 KB)

vnet0     Link encap:Ethernet  HWaddr fe:54:00:85:9e:f7 
          inet6 addr: fe80::fc54:ff:fe85:9ef7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:905 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:2662 (2.6 KB)  TX bytes:48795 (48.7 KB)


Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Переброс порта в виртуальную машину
« Ответ #1 : 19 Июня 2012, 20:50:12 »
Я бы вот это правило
[0:0] -A FORWARD -d 192.168.122.179/32 -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
повыше первого REJECT поднял

Оффлайн neurotoxin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
  • Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3
    • Просмотр профиля
    • Neuronix Creative Solution
Re: Переброс порта в виртуальную машину
« Ответ #2 : 19 Июня 2012, 21:23:35 »
Тот REJECT прописывает libvirt как и где он это делает, для меня загадка, потому я не знаю где поправить, чтобы поднять выше то правило.
Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Переброс порта в виртуальную машину
« Ответ #3 : 19 Июня 2012, 21:29:14 »
Цитировать
-I FORWARD -d 192.168.122.179/32 -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT

Оффлайн neurotoxin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
  • Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3
    • Просмотр профиля
    • Neuronix Creative Solution
Re: Переброс порта в виртуальную машину
« Ответ #4 : 19 Июня 2012, 21:41:58 »
Спасибо большое, получилось, я даже не верю своему счастью, только делать пришлось через %№:;? проход, а именно 0пу.

взял вывод iptables-save, удалил то правило, в rc.local прописал

# сброс всех настроек
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# восстановление
iptables-restore /etc/iptables.rules

В iptable.rules подправленый вывод iptables.save убрал REJECT

Пользователь решил продолжить мысль 19 Июня 2012, 21:49:39:
Вопрос теперь в другом, как вывод iptables-save, перевести в нормальный скрипт
« Последнее редактирование: 19 Июня 2012, 21:49:39 от neurotoxin »
Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Переброс порта в виртуальную машину
« Ответ #5 : 19 Июня 2012, 21:53:20 »
Что Вы называете нормальным скриптом? Как раз выхлоп iptables-save самый правильный скрипт для правил

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Переброс порта в виртуальную машину
« Ответ #6 : 20 Июня 2012, 09:21:24 »
Так надо сделать, я думаю!
OpenWrt 19.07

Оффлайн neurotoxin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
  • Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3
    • Просмотр профиля
    • Neuronix Creative Solution
Re: Переброс порта в виртуальную машину
« Ответ #7 : 22 Июня 2012, 17:44:56 »
Спасибо, это я понимаю, но тот вариант годится, если виртуальной машине выделяется дополнительный реальный ip, у меня его пока нет.
Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Переброс порта в виртуальную машину
« Ответ #8 : 22 Июня 2012, 19:00:05 »
Ничего подобного для моста не нужно. Виртуальная машина участвует в сети 10.10.0.0/24 ( к примеру ) наравне с другими хостами.
Попробую изобразить наглядно:
(Нажмите, чтобы показать/скрыть)
OpenWrt 19.07

Оффлайн neurotoxin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
  • Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3
    • Просмотр профиля
    • Neuronix Creative Solution
Re: Переброс порта в виртуальную машину
« Ответ #9 : 23 Июня 2012, 16:44:55 »
Ок, как это сделать? Ну допустим через мост, я смогу расшарить машину в локальную сеть и дать ей ip 10.10.0.5, тогда как у моего ноута 10.10.0.2 а у хост машины 10.10.0.1, это во внутреннюю сеть, а в мир как? У меня нет для неё ещё одного реального ip.
Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Переброс порта в виртуальную машину
« Ответ #10 : 23 Июня 2012, 17:07:48 »
Объясни зачем для виртуалки еще один реальный IP в твоей ситуации? Что на основном 80-й порт занят?
OpenWrt 19.07

Оффлайн neurotoxin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 14
  • Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3
    • Просмотр профиля
    • Neuronix Creative Solution
Re: Переброс порта в виртуальную машину
« Ответ #11 : 23 Июня 2012, 18:16:09 »
нет, не занят.... ага ... теперь я понял
Ubuntu 12.04 x86_64 @ Intel T7250 + 6Gb DDR3

 

Страница сгенерирована за 0.04 секунд. Запросов: 25.