LinuxForum.Fans
Тема

Oracle Linux 6.4 Извините, очередной вопрос про проброс портов от нуба

Автор: simple_math 25 сообщений 3372 просмотров
#361955

Здравствуйте! Небольшая предыстория, когда я не мог настроить сетевой интерфейс: https://toster.ru/q/66090

В итоге что бы имеем: eth1 смотрит в интернет, eth0 смотрит в локальную сеть.
Хочется пробросить порт для подключения по RDP на компьютер в локалке из интернета.

Пишу:
iptables -A FORWARD -i eth1 -p tcp --dport 3389 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.94 --dport 3389 -j DNAT --to-destination X.X.X.X:3389 (ip компа в локалке)

Ну и вот как-то не очень все это дело работает! Пытаюсь подключиться по rdp по ip на eth1 - пишет, что подключиться не может.

Ресурс http://rassanov.ru/web-tools/ping-IP-domain.htm пингует по tcp и протоколу 3389 шлюз, но не пингует по протоколу 3389 сам ip XXX.XXX.XXX.94 Просто пинг есть.

Подскажите, пожалуйста, куда посмотреть и что можно предпринять?

#361987

А вот такое правило в цепочке форвард есть
[console]iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT[/console]
Без него работать не будет.

#362155

Спасибо, но как-то не! Вот iptables-save

[console]# Generated by iptables-save v1.4.7 on Fri Jan 24 09:19:41 2014
*nat
:PREROUTING ACCEPT [154348:37250176]
:INPUT ACCEPT [241:12876]
:OUTPUT ACCEPT [17221:1036087]
:POSTROUTING ACCEPT [17221:1036087]
-A PREROUTING -d XXX.XXX.XXX.94/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 10.30.105.62:3389
COMMIT
# Completed on Fri Jan 24 09:19:41 2014
# Generated by iptables-save v1.4.7 on Fri Jan 24 09:19:41 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8120:1146157]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -i eth1 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth1 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -i eth1 -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT [/console]


В правиле POSTROUTING я просто писал ip без указания маски и тут я вижу, что он автоматом поставил 32-ю? Хотя на самом интерфейсе маска настроена 255.255.255.252, т.е. 30-ая. Может в этом быть косяк?

#362157

Попробуйте явно указать маску.

#362163
"simple_math" написал:
ptables -A FORWARD -i eth1 -p tcp --dport 3389 -j ACCEPT
"kisil" написал:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Стоит ли описывать такие правила если стоит ?

"simple_math" написал:
:FORWARD ACCEPT [0:0]

А вы уверены что у вас включен rdp на локальной машине ?
На локальной машине интернет есть ?

#362165
"simple_math" написал:
и тут я вижу, что он автоматом поставил 32-ю?

почитайте, что такое "32" в данном случае

#362170
marikk написал:
[quote="simple_math"]ptables -A FORWARD -i eth1 -p tcp --dport 3389 -j ACCEPT
"kisil" написал:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Стоит ли описывать такие правила если стоит ?

"simple_math" написал:
:FORWARD ACCEPT [0:0]

А вы уверены что у вас включен rdp на локальной машине ?
На локальной машине интернет есть ?[/quote]

Ну, видимо не стоит! Извините, я только вникаю в эти вещи.

Интернет есть, по локалке без проблем по rdp подключаюсь

#362172
"simple_math" написал:
Интернет есть,

Могу заблуждаться.
В ваших правилах я не увидел ни одного snat или masquerade, но интернет внутри сети у вас имеется. Есть еще один источник ?

#362173
marikk написал:
[quote="simple_math"]Интернет есть,

Могу заблуждаться.
В ваших правилах я не увидел ни одного snat или masquerade, но интернет внутри сети у вас имеется. Есть еще один источник ?[/quote]

Да!

#362176

Делайте на этом шлюзе snat.

Сейчас у вас происходит так. Вы стучитесь из интернета на свой шлюз XXX.XXX.XXX.94. Шлюз пробрасывает пакет. На локальную машину приходит запрос на подключение из интернета. Локальная машина отвечает на запрос через другой шлюз, другим маршрутом.

#362179

ТС если эта машына с которой вы привели правила фаервола не есть шлюзом в интернет, то зачем вы на ней настраиваете проброс портов. Настраивайте проброс на том шлюзе что раздаёт интернет и имеет реальный айпи.

#362180
"kisil" написал:
Настраивайте проброс на том шлюзе что раздаёт интернет и имеет раельный айпи.

А если snat прописать. Теоретически локальная машина будет видеть только внутренний адрес шлюза и на него отвечать.

#362183

ТС нарисуйте схему сети, а то что не не могу понять, что вам нужно.

#362185
kisil написал:
ТС если эта машына с которой вы привели правила фаервола не есть шлюзом в интернет, то зачем вы на ней настраиваете проброс портов. Настраивайте проброс на том шлюзе что раздаёт интернет и имеет реальный айпи.

Она является шлюзом в интернет с внешним айпи - этот канал не использовался и не был настроен, при этом есть еще шлюз с другим интернетом, через который ходит вся локальная сеть, но к нему у меня доступа нет.

#362196
kisil написал:
ТС нарисуйте схему сети, а то что не не могу понять, что вам нужно.

Ну вот так грубо и коряво



Надо чтоб к компу можно было подключиться через rdp по внешнему айпи Интернет 2, при этом комп сохранил доступ к локалке

#362198

Ну, мне гениально посоветовали еще изменить шлюз по умолчанию на конечном компе. Пока не имею доступа к нему, но отпишусь потом

#362199
"simple_math" написал:
Ну, мне гениально посоветовали еще изменить шлюз по умолчанию на конечном компе.

И все равно вам прийдется делать snat на другом шлюзе.

Попробуйте

text

#iptables -F
#iptables -t nat -F

#iptables -t nat -A POSTROUTING -s LNETWORK -o eth1 -j SNAT --to-source SIP

#iptables -t nat -A PREROUTING -d SIP/32 -p tcp -m tcp --dport 3389 -j DNAT --to-destination machineIP:3389 #iptables -t nat -A POSTROUTING -d machineIP/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source gatewayIP #echo 1 > /proc/sys/net/ipv4/ip_forward

machineIP - внутренний адрес машины на которую пробрасываете порт
gatewayIP - внутренний адрес шлюза
LNETWORK - внутренний ip по типу 192.168.55.0/4
SIP - ваш внешний адрес

#362205
"marikk" написал:
И все равно вам прийдется делать snat на другом шлюзе.

А может дело в маршруте. Прописать на локальной машыне, к которой конектятса маршрут типа
[console]ip add ВНЕШНИЙ_АЙПИ_2 via ЛОКАЛЬНЫЙ_АЙПИ_ШЛЮЗА_2[/console]

#362206

marikk, если не изменить на конечной машыне дефолтный шлюз с 1-го на 2-й то эти правила не помогут. Потому что всёравно комп будет отдавать ответ через шлюз 1. А вот если на целевом компе прописать такой маршрут, что искать айпи "Интернет 2" через шлюз 2, то тогда будет норм, клиент не будет использовать дефолтный маршрут для выяснения маршрута, а отправит ответ на тот шлюз с которого он пришёл.
Или я не прав?

#362207

Я конечно новичек в этом. И эти правила я написал пару лет назад на скорую руку, поэтому могу ошибаться.

text

iptables -t nat -A POSTROUTING -d machineIP/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source gatewayIP

Данное правило меняет обратный ip адрес. В данном случае на локальную машину будут приходить пакеты в которых обратный адрес это локальный адрес нашего шлюза.

Войдите или зарегистрируйтесь, чтобы ответить.