falcon92
23-04-2011, 01:46
Доброго времени суток.
Не выходит зафорвардить порт..
Столкнулся с проблемой.
Стоит Ubuntu Lucid (10.04.2 LTS)
Стоит 2.6.32.28-openvz
Стоит Openvz.
Имею Хардварную Ноду с внешним ip адресом (допустим $ExtIp).
Имею виртуальную машину, висящую по адресу 192.168.0.101
Имею 1 Хардварный интерфейс eth0 с $ExtIp
Имею интерфес venet0 (как понимаю интерфейс для openvz)
Виртульную машину выпускаю в интернет через на HardwNode
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Пинги на виртуалке проходят.
На виртуалке стоит apache на 80 порту. С Хардварной Ноды по адресу 192.168.0.101:80 заходит в апач нормально.
Не могу пробросить порт так, чтобы заходя по $ExtIp:80, заходило на 192.168.0.101:80
То есть нужно поднять несколько виртуалок, и пробросить им порты, допустим 3 виртуалки, 3 вебсервера, порты 80, 81, 82.
Заходим по $ExtIP:80 - попадаем на http 1ой виртуалки, Заходим по $ExtIP:81 - попадаем на http 2ой виртуалки, ...
Хоть убейте.. часа 3 прыгаю с бубном.
Пробовал так -
# iptables -t nat -A PREROUTING -p tcp -d $ExtIp --dport 80 -i eth0 -j DNAT --to-destination 192.168.0.101:80
# iptables -t nat -A POSTROUTING -s 192.168.0.101 -o eth0 -j SNAT --to $ExtIp
В чем проблема? Я туго шарю в айпитэйблах.. Но уже столько вариантов пропробовал.. Кто шарит - помогите.. Курсовик встал :/
Надеюсь более-менее понятно изложил свою мысль.
UPDATE1:
Сейчас заюзал скрипт http://wiki.openvz.org/Setting_up_an_iptables_firewall
Запускаю.
# service firewall start
root@sysadmin:~# service firewall start
Starting firewall...
Firewall: Purging and allowing all traffic...success
Firewall: Setting default policies to DROP...success
Firewall: Allowing access to HN
port 53...success
port 80...success
port 443...success
port 8080...success
DMZ 12.34.56.78...success
DMZ $ExtIp...success
DMZ 127.0.0.1...success
DMZ localhost...success
Делаю вывод
# service firewall status
Выводит
root@sysadmin:~# service firewall status
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- $ExtIp 0.0.0.0/0
ACCEPT all -- 12.34.56.78 0.0.0.0/0
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:8080
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:8080
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:443
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:443
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:80
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:80
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:53
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:53
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- $ExtIp 0.0.0.0/0
ACCEPT all -- 12.34.56.78 0.0.0.0/0
ACCEPT all -- 192.168.0.0/24 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Но по 127.0.0.1:80; $ExtIp:80 - Ошибка ;/
Всё пахать по идее должно ..
localhost - вводил для теста. Без него тоже не валит..
Запарился.
Не выходит зафорвардить порт..
Столкнулся с проблемой.
Стоит Ubuntu Lucid (10.04.2 LTS)
Стоит 2.6.32.28-openvz
Стоит Openvz.
Имею Хардварную Ноду с внешним ip адресом (допустим $ExtIp).
Имею виртуальную машину, висящую по адресу 192.168.0.101
Имею 1 Хардварный интерфейс eth0 с $ExtIp
Имею интерфес venet0 (как понимаю интерфейс для openvz)
Виртульную машину выпускаю в интернет через на HardwNode
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Пинги на виртуалке проходят.
На виртуалке стоит apache на 80 порту. С Хардварной Ноды по адресу 192.168.0.101:80 заходит в апач нормально.
Не могу пробросить порт так, чтобы заходя по $ExtIp:80, заходило на 192.168.0.101:80
То есть нужно поднять несколько виртуалок, и пробросить им порты, допустим 3 виртуалки, 3 вебсервера, порты 80, 81, 82.
Заходим по $ExtIP:80 - попадаем на http 1ой виртуалки, Заходим по $ExtIP:81 - попадаем на http 2ой виртуалки, ...
Хоть убейте.. часа 3 прыгаю с бубном.
Пробовал так -
# iptables -t nat -A PREROUTING -p tcp -d $ExtIp --dport 80 -i eth0 -j DNAT --to-destination 192.168.0.101:80
# iptables -t nat -A POSTROUTING -s 192.168.0.101 -o eth0 -j SNAT --to $ExtIp
В чем проблема? Я туго шарю в айпитэйблах.. Но уже столько вариантов пропробовал.. Кто шарит - помогите.. Курсовик встал :/
Надеюсь более-менее понятно изложил свою мысль.
UPDATE1:
Сейчас заюзал скрипт http://wiki.openvz.org/Setting_up_an_iptables_firewall
Запускаю.
# service firewall start
root@sysadmin:~# service firewall start
Starting firewall...
Firewall: Purging and allowing all traffic...success
Firewall: Setting default policies to DROP...success
Firewall: Allowing access to HN
port 53...success
port 80...success
port 443...success
port 8080...success
DMZ 12.34.56.78...success
DMZ $ExtIp...success
DMZ 127.0.0.1...success
DMZ localhost...success
Делаю вывод
# service firewall status
Выводит
root@sysadmin:~# service firewall status
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- $ExtIp 0.0.0.0/0
ACCEPT all -- 12.34.56.78 0.0.0.0/0
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:8080
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:8080
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:443
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:443
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:80
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:80
ACCEPT udp -- 192.168.0.0/24 $ExtIp udp dpt:53
ACCEPT tcp -- 192.168.0.0/24 $ExtIp tcp dpt:53
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- 127.0.0.1 0.0.0.0/0
ACCEPT all -- $ExtIp 0.0.0.0/0
ACCEPT all -- 12.34.56.78 0.0.0.0/0
ACCEPT all -- 192.168.0.0/24 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Но по 127.0.0.1:80; $ExtIp:80 - Ошибка ;/
Всё пахать по идее должно ..
localhost - вводил для теста. Без него тоже не валит..
Запарился.