LINUX.ORG.RU
решено ФорумAdmin

Проброс портов ubuntu 12.04

 


0

1

Здравствуйте.

Столкнулся с такой проблемой:

Имеется сервер ( с белым ip ) раздающий интернет ( с помощью squid ) в локальную сеть, соотв. на нем настройки сетевых.

eth1 192.168.0.2 mask 255.255.255.0 gtw 192.168.0.1

eth2 172.33.18.65 mask 255.255.0.0 gtw 0.0.0.0 (на этом интерфейсе присутствует маршрут до 172.33.0.0 mask 255.255.0.0 gtw 172.33.18.1)

Так же в лвс находится компьютер с ip 172.33.18.64 с работающим сайтом на денвере.

Подскажите пожалуйста как правильно дать доступ сайту расположенному на пк с ip 172.33.18.64 в глобальную сеть.

К примеру набирая в браузере 192.168.0.2:5269 запрос приходил на 172.33.18.64:5269. и соотв. открывалась страница сайта

iptables -t nat -A PREROUTING --dst 192.168.0.2 -p tcp --dport 5269 -j DNAT --to-destination 172.33.18.64

iptables -t nat -A POSTROUTING --dst 172.33.18.64 -p tcp --dport 80 -j SNAT --to-source 172.33.18.65

iptables -t nat -A OUTPUT --dst 192.168.0.2 -p tcp --dport 5269 -j DNAT --to-destination 172.33.18.64

iptables -I FORWARD 1 -i eth1 -o eth2 -d 172.33.18.64 -p tcp -m tcp --dport 5269 -j ACCEPT

(пробовал такое правило, но успехом неувенчалось)

Зы: если что-то не понятно написано для читающих, то пожалуйста напишите в коментариях. Очень нужна помощь =(

eth2 172.33.18.65 mask 255.255.0.0 gtw 0.0.0.0 (на этом интерфейсе присутствует маршрут до 172.33.0.0 mask 255.255.0.0 gtw 172.33.18.1)

у тебя и так на интерфейсе 172.33.0.0/16, зачем еще какой то маршрут в эту же сеть прописывать?

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

дать доступ сайту

исче вариант, установить на шлюзе nginx и проксировать запросы на вебсервер расположенный внутри локалки

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

iptables -t nat -A POSTROUTING --dst 172.33.18.64 -p tcp --dport 80 -j SNAT --to-source 172.33.18.65

Как минимум ошибка в номере порта. И попробуй вот эти правила, может помогут:

iptables -A FORWARD -p tcp -i eth1 --destination-port 5269 --destination 172.33.18.64 -j ACCEPT
iptables -t nat -A OUTPUT  -p tcp --dport 5269 -j DNAT --to-destination 172.33.18.64:5269
iptables -t nat -A PREROUTING -p tcp -i eth1 --destination-port 5269 -j DNAT --to-destination 172.33.18.64:5269
iptables -t nat -A POSTROUTING --dst 172.33.18.64 -p tcp --dport 5269 -j SNAT --to-source 172.33.18.65

astral777 ()
Ответ на: комментарий от tonikgs
#!/bin/bash
EXT_IP=пишем ip белый # Он всё равно чаще всего один и тот же.
INT_IP=ip сетевой смотрящей в локалку # См. выше.
EXT_IF=eth1 # Внешний и внутренний интерфейсы.
INT_IF=eth2 # Для шлюза они вряд ли изменятся, поэтому можно прописать вручную.
FAKE_PORT=$1  # Вначале передаём скрипту "неправильный" порт на внешнем интерфейсе,
LAN_IP=$2     # затем - локальный адрес сервера
SRV_PORT=$3   # и в конце - реальный порт для подключения к серверу

# Здесь опять надо сделать проверку ввода данных, потому что операции всё ещё серьёзные.

iptables -t nat -A PREROUTING -d $EXT_IP -p tcp -m tcp --dport $FAKE_PORT -j DNAT --to-destination $LAN_IP:$SRV_PORT
iptables -t nat -A POSTROUTING -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j SNAT --to-source $INT_IP
iptables -t nat -A OUTPUT -d $EXT_IP -p tcp -m tcp --dport $SRV_PORT -j DNAT --to-destination $LAN_IP
iptables -I FORWARD 1 -i $EXT_IF -o $INT_IF -d $LAN_IP -p tcp -m tcp --dport $SRV_PORT -j ACCEPT
запуск скрипт.sh 21 172.24.10.65 21 (пример перенаправления на 21 порт из мира в локальную сеть на 21 порт ip 172.24.10.65) 
tonikgs ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.