LINUX.ORG.RU
ФорумAdmin

Проброс диапазона портов в виртуальную машину (CentOS+ VM Win2012R2)

 , , , ,


0

1

Всем Привет!

Несколько дней уже бьюсь с проблемой (может вовсе, это и не проблема для многих)

Есть CentOS 6.7 с выделенным IP допустим 7.7.7.7 (Пров Hetzner). На этой системе стоит виртуалка (qemu, libvirt) Windows Server 2012 R2.

интерфейс виртуалки: virbr0
интерфейс внешки: eth0
IP-адрес WS2012R2: 192.168.122.253
Проблема: Не могу пробросить диапазон портов (6601-6615) для tcp и udp, в виртуалку, Эти порты использует облачный сервис (вебсерв, ftp, cms итд). Проверяю через сервис, работает только 6603 (конфиг ниже).

Проверял с помощью zyxel . ru /openport/

Брандамуэр на винде отключен

В общем изначально нужны были пробросы 80, 3389 портов, с ними все ок. Вот так

iptables -t nat -A PREROUTING --dst 7.7.7.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.122.253
iptables -I FORWARD 1 -i eth0 -o virbr0 -d 192.168.122.253 -p tcp -m tcp --dport 80 -j ACCEPT

с 3389 сделал через скрипт, закинул в папку hooks после сделал:

chmod +x /etc/libvirt/hooks/qemu
service libvirtd restart
Сам скрипт, внешний порт для RDP сделал 8888 и 8889
#!/bin/bash
Guest_name=wsvm
Guest_ipaddr=192.168.122.253
Host_ipaddr=7.7.7.7
Host_port=(  '8888' '8889' )
Guest_port=( '3389' '3389' )

length=$(( ${#Host_port[@]} - 1 ))
if [ "${1}" = "${Guest_name}" ]; then
   if [ "${2}" = "stopped" ] || [ "${2}" = "reconnect" ]; then
       for i in `seq 0 $length`; do
               iptables -t nat -D PREROUTING -d ${Host_ipaddr} -p tcp --dport ${Host_port[$i]} -j DNAT --to ${Guest_ipaddr}:${Guest_port[$i]}
               iptables -D FORWARD -d ${Guest_ipaddr}/32 -p tcp -m state --state NEW -m tcp --dport ${Guest_port[$i]} -j ACCEPT
       done
   fi
   if [ "${2}" = "start" ] || [ "${2}" = "reconnect" ]; then
       for i in `seq 0 $length`; do
               iptables -t nat -A PREROUTING -d ${Host_ipaddr} -p tcp --dport ${Host_port[$i]} -j DNAT --to ${Guest_ipaddr}:${Guest_port[$i]}
               iptables -I FORWARD -d ${Guest_ipaddr}/32 -p tcp -m state --state NEW -m tcp --dport ${Guest_port[$i]} -j ACCEPT
       done
   fi
fi

Вот iptables -nvL

Chain INPUT (policy ACCEPT 687 packets, 85560 bytes)
 pkts bytes target     prot opt in     out     source               destination
  114  7940 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    2   686 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:67
    0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:67

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  418 37969 ACCEPT     tcp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     tcp dpts:6601:6615
  695  215K ACCEPT     tcp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     tcp dpt:80
    0     0 ACCEPT     udp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     udp dpts:6601:6615
    2   104 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.122.253     state NEW tcp dpt:3389
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.122.253     state NEW tcp dpt:3389
 6762 8980K ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24    state RELATED,ESTABLISHED
 8401 1861K ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0
    0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0
  137  7660 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
    0     0 ACCEPT     tcp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     tcp dpt:23
   25  8050 ACCEPT     tcp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     tcp dpt:80
   13   756 ACCEPT     tcp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     tcp dpts:6601:6612
    0     0 ACCEPT     tcp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     tcp dpts:6601:6618
    0     0 ACCEPT     tcp  --  eth0   virbr0  0.0.0.0/0            192.168.122.253     tcp dpt:80

Вот iptables -L -t nat --line-numbers

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpt:http to:192.168.122.253
2    DNAT       udp  --  anywhere             CentOS-67-64-minimal udp dpts:6601:6615 to:192.168.122.253
3    DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpts:mstmg-sstp:6615 to:192.168.122.253
4    DNAT       udp  --  anywhere             CentOS-67-64-minimal udp dpt:6602 to:192.168.122.253
5    DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpt:6602 to:192.168.122.253
6    DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpt:telnet to:192.168.122.253
7    DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpt:ddi-tcp-1 to:192.168.122.253:3389
8    DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpt:ddi-tcp-2 to:192.168.122.253:3389
9    DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpt:http to:192.168.122.253
10   DNAT       udp  --  anywhere             CentOS-67-64-minimal udp dpts:6601:6615 to:192.168.122.253
11   DNAT       tcp  --  anywhere             CentOS-67-64-minimal tcp dpts:mstmg-sstp:6615 to:192.168.122.253

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination
1    MASQUERADE  tcp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
2    MASQUERADE  udp  --  192.168.122.0/24    !192.168.122.0/24    masq ports: 1024-65535
3    MASQUERADE  all  --  192.168.122.0/24    !192.168.122.0/24

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination



Последнее исправление: Ozymandis (всего исправлений: 3)

А они у вас локально-то хоть открыты?

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.