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

Проброс портов с разных реальных IP

 ,


0

1

Здравствуйте. Помогите пожалуйста решить проблему.

Есть 2 здания в разных концах города.

1 здание схема
роутер с белым IP(176.95.81.136) - комп с серым IP(192.168.0.100), на компе программа работающая на порту 6666

2 здание схема
прокси сервер (ubuntu) с 2-мя сетевыми картами белый и серый ip
eth0 188.17.0.135 - смотрит в глобальную сеть
eth1 172.25.5.2 - смотрит в локальную сеть

второй комп с серым ip 172.25.5.3 (на нем установлена программа с портом 6666)

Нужно их подружить чтобы комп 172.25.5.3 подключался к 192.168.0.100 по порту 6666, иначе программа не будет работать.

Что я сделал:
в здании 1 на роутере настроил чтобы при написании 176.95.81.136 перенаправляло на 192.168.0.100:6666. Благо это не так уж сложно) Во 2 здании на сервере (ubuntu) открыл порт 6666. Проверял сервисами 2ip и т.д. показывает, что порты в обоих случая открыты. Попробовал написать правило для iptables чтобы при вводе 188.17.0.135:6666 направляло к 172.25.5.3:6666 но правило не сработало, либо я допустил ошибку.

Само правило

 iptables -t nat -A PREROUTING -d 188.17.0.135 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 172.25.5.3:6666

iptables -t nat -A POSTROUTING -d 172.25.5.3 -p tcp -m tcp --dport 6666 -j SNAT --to-source 172.25.5.2

iptables -t nat -A OUTPUT -d 188.17.0.135 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 172.25.5.3

iptables -I FORWARD 1 -i eth0 -o eth1 -d 172.25.5.3 -p tcp -m tcp --dport 6666 -j ACCEPT 

PS: из 2 здания пинг до 176.95.81.136 только с сетевой карты с белым ip (188.17.0.135), с серых пинг не идет. (думаю, что вся проблема в сетевой карте 172.25.5.2, точнее нужно наверное направить через нее запросы на локальную сеть, а вот как хз) В 1 же здании наоборот, могу пинговать с любого серого ip 188.17.0.135

Задавайте пожалуйста вопросы если что-то не понятно написал.

Что-то ты перемудрил.

Я так понимаю, что маскарадинг или SNAT там уже работает. Тогда по уму достаточно только первой строчки iptables -t nat -A PREROUTING -d 188.17.0.135 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 172.25.5.3 и разрешить входящие соединения на порт 6666, если по-умолчанию они дропаются.

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

Благодарю вас за помощь.

попробовал правило хм... не работает. Возможно потому что для передачи пакетов 2 сетевые карты на сервере (ubuntu) работают.

запрос приходит сначала на 188.17.0.135, потом перенаправляется на 172.25.5.3 и только потом 172.25.5.2

Или я не правильно думаю вообще)))

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

172.25.5.3 обращается к 176.95.81.136:6666, 176.95.81.136 пересылает пакеты на 192.168.0.100:6666. Исходящий пакет так и так получит адрес 176.95.81.136 при прохождении шлюза. Программа на 6666 порту будет видеть в пакетах 188.17.0.135 в качестве адреса источника. Т.е. стучаться будешь на 176.95.81.136:6666, а попадать на 192.168.0.100:6666.

По уму вообще надо вместо адреса внешнего надо писать wan-интерфейс.

Radjah ★★★★★ ()
Последнее исправление: Radjah (всего исправлений: 1)
Ответ на: комментарий от Deleted

Пожалуйста, iptables-save

# Generated by iptables-save v1.4.12 on Thu Oct 13 14:06:02 2016
*nat
:PREROUTING ACCEPT [5469:318940]
:INPUT ACCEPT [4020:205482]
:OUTPUT ACCEPT [5027:308536]
:POSTROUTING ACCEPT [5347:333047]
-A PREROUTING -d 188.17.0.135/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.25.5.3:80
-A PREROUTING -d 188.17.0.135/32 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 172.25.5.3
-A PREROUTING -d 188.17.0.135/32 -p tcp -m tcp --dport 6666 -j DNAT --to-destination 172.25.5.3
-A OUTPUT -d 188.17.0.135/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 172.25.5.3
-A POSTROUTING -d 172.25.5.3/32 -p tcp -m tcp --dport 80 -j SNAT --to-source 172.25.5.2
COMMIT
# Completed on Thu Oct 13 14:06:02 2016
# Generated by iptables-save v1.4.12 on Thu Oct 13 14:06:02 2016
*filter
:INPUT ACCEPT [3173420:336706817]
:FORWARD ACCEPT [7171:3785313]
:OUTPUT ACCEPT [8778289:560915156]
-A INPUT -p tcp -m tcp --dport 6666 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 6666 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 6666 -j ACCEPT
-A FORWARD -d 172.25.5.3/32 -i eth1 -o eth2 -p tcp -m tcp --dport 80 -j ACCEPT
COMMIT
# Completed on Thu Oct 13 14:06:02 2016

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