LINUX.ORG.RU
ФорумAdmin

iptables forwadr


0

0

помогите разобраться есть сеть в сети есть несколько машин на одной из них реальный ип и Линух красная шапка, так же другая пара машин с виртуальными ипами 172.16..... на линухе одна сетевая с реальным ипом, ВНИМАНЕЕ ВОПРОС можно ли настроить так, что запросы приходяшие из вне на реальный ип по определенным портам пересылались на машины с виртуальными айпишниками, например обрашение на реальный ип по 8031 порту пересылается на 172.16...1 на порт 80, а обращение на реальный ип по 8032 порту пересылаются на 172.16...2 тоже на порт 80! ВОТ ТАКОЙ ВОТ ВОПРОС!!! P.S. в локалке, что реальные ипы, что виртуальные маршрутизятся нормально! Заранее спасибо!

anonymous

Ответ на: комментарий от spirit

Спасибо за подсказку но ситуация немного другая у меня нет в машине ещё одного локального IP как описано в мануале по DNAT и SNAT а хотелось бы реализовать это с одного ипа! или просто я немного не понял, не могли бы вы на примере показать какие строки надо добавить в правила?

anonymous
()

$EXT="eth0"
$INT="eth1"
$WEBPORT="80"
$HTTP="172.16.1.3"
iptables -A FORWARD -i $EXT -o $INT -p tcp --dport $WEBPORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A PREROUTING -t nat -i $EXT -p tcp --dport $WEBPORT -j DNAT --to $HTTP:$WEBPORT
если надо на другой порт, меняешь последний параметр

anonymous
()

>на порт 80

Мне кажется, что для перенаправления именно http лучше подходит reverse proxy. Например pound (http://www.apsis.ch/pound).

qwe ★★★
()
Ответ на: комментарий от anonymous

я бы так и сдалал будь у меня две сетевые, но сетевая ведь одна и айпишники маршрутизятся провайдерскими маршрутизаторами как мне написать правила вида если пришел пакет на eth0(реальный ип) на порт 8081 то перенаправление c eth0 на 172.16.1.3 на порт 80, и обратная цепочка!!!

anonymous
()
Ответ на: комментарий от anonymous

echo 1 > /proc/sys/net/ipv4/ip_forward

# Сделать DNAT для входящих пакетов
iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 8031 -j DNAT --to-destination 172.16...1:80
iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 8032 -j DNAT --to-destination 172.16...2:80

# Разрешить прохождение пакетов в обе стороны
iptables -A FORWARD -s ! 172.16.0.0/16 -d 172.16...1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s ! 172.16.0.0/16 -d 172.16...2 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -d ! 172.16.0.0/16 -s 172.16...1 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -d ! 172.16.0.0/16 -s 172.16...2 -p tcp --sport 80 -j ACCEPT

# Сделать SNAT для исходящих пакетов
iptables -t nat -A POSTROUTING -d ! 172.16.0.0/16 -s 172.16...1 -p tcp --sport 80 -j SNAT --to-source x.x.x.x:8031
iptables -t nat -A POSTROUTING -d ! 172.16.0.0/16 -s 172.16...2 -p tcp --sport 80 -j SNAT --to-source x.x.x.x:8032

где x.x.x.x - ваш внешний адрес.

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