Здравствуйте! Небольшая предыстория, когда я не мог настроить сетевой интерфейс: 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 Просто пинг есть.
Подскажите, пожалуйста, куда посмотреть и что можно предпринять?
Oracle Linux 6.4 Извините, очередной вопрос про проброс портов от нуба
А вот такое правило в цепочке форвард есть
[console]iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT[/console]
Без него работать не будет.
Спасибо, но как-то не! Вот 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-ая. Может в этом быть косяк?
Попробуйте явно указать маску.
ptables -A FORWARD -i eth1 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
Стоит ли описывать такие правила если стоит ?
:FORWARD ACCEPT [0:0]
А вы уверены что у вас включен rdp на локальной машине ?
На локальной машине интернет есть ?
и тут я вижу, что он автоматом поставил 32-ю?
почитайте, что такое "32" в данном случае
[quote="simple_math"]ptables -A FORWARD -i eth1 -p tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
Стоит ли описывать такие правила если стоит ?
:FORWARD ACCEPT [0:0]
А вы уверены что у вас включен rdp на локальной машине ?
На локальной машине интернет есть ?[/quote]
Ну, видимо не стоит! Извините, я только вникаю в эти вещи.
Интернет есть, по локалке без проблем по rdp подключаюсь
Интернет есть,
Могу заблуждаться.
В ваших правилах я не увидел ни одного snat или masquerade, но интернет внутри сети у вас имеется. Есть еще один источник ?
[quote="simple_math"]Интернет есть,
Могу заблуждаться.
В ваших правилах я не увидел ни одного snat или masquerade, но интернет внутри сети у вас имеется. Есть еще один источник ?[/quote]
Да!
Делайте на этом шлюзе snat.
Сейчас у вас происходит так. Вы стучитесь из интернета на свой шлюз XXX.XXX.XXX.94. Шлюз пробрасывает пакет. На локальную машину приходит запрос на подключение из интернета. Локальная машина отвечает на запрос через другой шлюз, другим маршрутом.
ТС если эта машына с которой вы привели правила фаервола не есть шлюзом в интернет, то зачем вы на ней настраиваете проброс портов. Настраивайте проброс на том шлюзе что раздаёт интернет и имеет реальный айпи.
Настраивайте проброс на том шлюзе что раздаёт интернет и имеет раельный айпи.
А если snat прописать. Теоретически локальная машина будет видеть только внутренний адрес шлюза и на него отвечать.
ТС нарисуйте схему сети, а то что не не могу понять, что вам нужно.
ТС если эта машына с которой вы привели правила фаервола не есть шлюзом в интернет, то зачем вы на ней настраиваете проброс портов. Настраивайте проброс на том шлюзе что раздаёт интернет и имеет реальный айпи.
Она является шлюзом в интернет с внешним айпи - этот канал не использовался и не был настроен, при этом есть еще шлюз с другим интернетом, через который ходит вся локальная сеть, но к нему у меня доступа нет.
ТС нарисуйте схему сети, а то что не не могу понять, что вам нужно.
Ну вот так грубо и коряво

Надо чтоб к компу можно было подключиться через rdp по внешнему айпи Интернет 2, при этом комп сохранил доступ к локалке
Ну, мне гениально посоветовали еще изменить шлюз по умолчанию на конечном компе. Пока не имею доступа к нему, но отпишусь потом
Ну, мне гениально посоветовали еще изменить шлюз по умолчанию на конечном компе.
И все равно вам прийдется делать snat на другом шлюзе.
Попробуйте
#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 - ваш внешний адрес
И все равно вам прийдется делать snat на другом шлюзе.
А может дело в маршруте. Прописать на локальной машыне, к которой конектятса маршрут типа
[console]ip add ВНЕШНИЙ_АЙПИ_2 via ЛОКАЛЬНЫЙ_АЙПИ_ШЛЮЗА_2[/console]
marikk, если не изменить на конечной машыне дефолтный шлюз с 1-го на 2-й то эти правила не помогут. Потому что всёравно комп будет отдавать ответ через шлюз 1. А вот если на целевом компе прописать такой маршрут, что искать айпи "Интернет 2" через шлюз 2, то тогда будет норм, клиент не будет использовать дефолтный маршрут для выяснения маршрута, а отправит ответ на тот шлюз с которого он пришёл.
Или я не прав?
Я конечно новичек в этом. И эти правила я написал пару лет назад на скорую руку, поэтому могу ошибаться.
iptables -t nat -A POSTROUTING -d machineIP/32 -p tcp -m tcp --dport 3389 -j SNAT --to-source gatewayIP
Данное правило меняет обратный ip адрес. В данном случае на локальную машину будут приходить пакеты в которых обратный адрес это локальный адрес нашего шлюза.