День добрый.
Вводная: Сижу в своей локалке, которую сам админю. Заодно периодически приходится цепляться для управления к внешним серверам. Ранее пользовался цитриксом и пробрасывал для него порт изнутри наружу
iptables -t nat -A POSTROUTING -p TCP -s $local_IP -j MASQUERADE --dport $portnumber
с помощью такого проброса выпустил уже несколько программ.
Проблема: Стало необходимо подцепиться с помощью RDP, и эта корявость не реагирует на проброс порта. Порт правильный 3389, но что-то все грустно.
Подскажите где я ошибся, а то вдруг мне снова понадобится а я не смогу цепануться :(
>iptables -t nat -A POSTROUTING -p TCP -s $local_IP -j MASQUERADE --dport $portnumberВообще-то это SNAT и каким образом связано с проброской порта непонятно. Под проброской обычно подразумевается DNAT(в паре с SNAT). Попробуйте для начала объяснить откуда куда вы пытаетесь соединится и какие правила уже есть на шлюзе.
>>iptables -t nat -A POSTROUTING -p TCP -s $local_IP -j MASQUERADE --dport $portnumber
>
>Вообще-то это SNAT и каким образом связано с проброской порта непонятно. Под
>проброской обычно подразумевается DNAT(в паре с SNAT). Попробуйте для начала объяснить
>откуда куда вы пытаетесь соединится и какие правила уже есть на
>шлюзе.Я читал про это, что-то пробовал, но у меня не вышло. Может мне кто-нибудь на пальцах объяснить в чем разница между тем, что делаю я и тем, что делают через DNAT и SNAT.
>Я читал про это, что-то пробовал, но у меня не вышло. Может
>мне кто-нибудь на пальцах объяснить в чем разница между тем, что
>делаю я и тем, что делают через DNAT и SNAT.MASQUERADE - разновидность SNAT-а для "динамических" интерфейсов. Отличие в том, что со SNAT явно указывается, какой исходящий ip "подставлять", а MASQ на каждый пакет "дёргает" интерфейс, чтобы взять с него соотв.адрес. Соответственно MASQ. "грузит" процессор больше, но необходим, когда нет "статического" внешнего ip. Или вроде того, не знаю.
Набери вверху, в [поиск]-е по форумам, например, MASQUERADE SNAT...
>[оверквотинг удален]
>
>MASQUERADE - разновидность SNAT-а для "динамических" интерфейсов. Отличие в том, что со
>SNAT явно указывается, какой исходящий ip "подставлять", а MASQ на каждый
>пакет "дёргает" интерфейс, чтобы взять с него соотв.адрес. Соответственно MASQ. "грузит"
>процессор больше, но необходим, когда нет "статического" внешнего ip. Или вроде
>того, не знаю.
>
>Набери вверху, в [поиск]-е по форумам, например, MASQUERADE SNAT...
>
>+TFM http://www.opennet.me/docs/RUS/iptables/RTFM я уже прочел на 10 раз, распечатал и он у меня как настольная книга. поэтому я это уже читал. Меня смущает другое, что цитрикс ходит через маскарад, а RDP нет, в чем принципиальная разница?
>Меня смущает другое, что цитрикс ходит через маскарад, а RDP нет, в чем принципиальная разница?Вроде, везде люди для rdp пишут "обычный" форвард одного порта.
Ну, ещё может быть ошибка в конфигурации/плавилах. Например, в -t filter -A FORWARD не написано правила для --dport $чего-там-для-rdp. Или правила "не для rdp", написанные не достаточно аккуратно _раньше_ оного, "пускают" пакеты "совсем не туда". Или ещё чего...
Еще раз. Вам из локалки нужно коннектится на rdp порт в мире или из мира нужен коннект на rdp порт машины в локалке?
Если первое то это SNAT(как было верно замечено MASQURADE его вариант для динамических ip) и если вы хотите его ограничить по портам, то пишите --dport в условии, а не в действии.
Если второе, то используется DNAT типа такого:
iptables -t nat -A PREROUTING -p tcp --dport $portnumber -j DNAT --to-destination $local_IP
>Еще раз. Вам из локалки нужно коннектится на rdp порт в мире
>или из мира нужен коннект на rdp порт машины в локалке?Да, я пытаюсь зацепиться на сервер во внешнем мире.
>Если первое то это SNAT(как было верно замечено MASQURADE его вариант для
>динамических ip) и если вы хотите его ограничить по портам, то
>пишите --dport в условии, а не в действии.а можно по подробнее об условиях и действиях, вроде в мануале я читал, что порядок команд не важен, как тогда отличить где идет условие, а где действие.
P.S. у меня динамический IP но с привязкой по mac фильтрующих правил нет, я пока с ними еще не экспериментировал. есть несколько правил с маскорадом в таблице nat, пример я уже приводил.
Нашел одну из проблем в сложной иерархии сети пакеты терялись, но сейчас другой косяк
использую правило
iptables -t nat -A POSTROUTING -s 192.168.0.98 --out-interface eth1 -j SNAT --to-source X.X.X.X
Пинг до серваков ходит, а подцепиться я никак не могу.
Как можно отследить какие правила действуют на пакет ?
>Нашел одну из проблем в сложной иерархии сети пакеты терялись, но сейчас
>другой косяк
>использую правило
>iptables -t nat -A POSTROUTING -s 192.168.0.98 --out-interface eth1 -j SNAT
> --to-source X.X.X.X
>Пинг до серваков ходит, а подцепиться я никак не могу.
>Как можно отследить какие правила действуют на пакет ?можно смотреть счетчики попаданий, но если вы не один работаете через эту машину, то так не отследите.
лучше iptables-save и в каждой таблице, сверху вниз посмотреть к каким правилам подходит ваш пакет
http:/openforum/vsluhforumID10/3860.html#4