URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 30293
[ Назад ]

Исходное сообщение
"Натить локальную машинку только при запросе на определенный ..."

Отправлено gumar , 26-Май-03 18:31 
Есть сервер с RedHat 8.0, NAT работает на iptables. Необходимо натить один компьютер из локальной сети только при запросе на определенный порт. При запросе же на любой другой порт - отбрасывать пакет. Удалось этого добиться только совмещением таблиц filter и nat, т.е. фильтром закрывать все порты кроме необходимого, а уже после этого натить. Хотелось бы знать, возможно ли более рациональное решение с использованием только одной таблицы nat? И если да то какое?

Я недавно в линуксе, так что прошу строго не судить за возможно слишком простой вопрос.


Содержание

Сообщения в этом обсуждении
"Натить локальную машинку только при запросе на определенный ..."
Отправлено Михаил , 26-Май-03 19:43 
>Есть сервер с RedHat 8.0, NAT работает на iptables. Необходимо натить один
>компьютер из локальной сети только при запросе на определенный порт. При
>запросе же на любой другой порт - отбрасывать пакет. Удалось этого
>добиться только совмещением таблиц filter и nat, т.е. фильтром закрывать все
>порты кроме необходимого, а уже после этого натить. Хотелось бы знать,
>возможно ли более рациональное решение с использованием только одной таблицы nat?
>И если да то какое?
>
>Я недавно в линуксе, так что прошу строго не судить за возможно
>слишком простой вопрос.

так в нате и добавь условия на исходные/конечные порты, исходные/конечные адреса.
там можно довольно разнообразные условия задать...


"Натить локальную машинку только при запросе на определенный ..."
Отправлено gumar , 26-Май-03 20:09 
>>Есть сервер с RedHat 8.0, NAT работает на iptables. Необходимо натить один
>>компьютер из локальной сети только при запросе на определенный порт. При
>>запросе же на любой другой порт - отбрасывать пакет. Удалось этого
>>добиться только совмещением таблиц filter и nat, т.е. фильтром закрывать все
>>порты кроме необходимого, а уже после этого натить. Хотелось бы знать,
>>возможно ли более рациональное решение с использованием только одной таблицы nat?
>>И если да то какое?
>>
>>Я недавно в линуксе, так что прошу строго не судить за возможно
>>слишком простой вопрос.
>
>так в нате и добавь условия на исходные/конечные порты, исходные/конечные адреса.
>там можно довольно разнообразные условия задать...

пробовал следующие варианты:

1. /sbin/iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx/32 --dport zzz -j SNAT --to-source yyy.yyy.yyy.yyy
не получилось, т.к. --dport можно использовать только при --protocol tcp
2. /sbin/iptables -t nat -A POSTROUTING -p tcp -s xxx.xxx.xxx.xxx/32 --dport zzz -j SNAT --to-source yyy.yyy.yyy.yyy
при выполнении из командной строки глотал, но не работал, при запуске из скрипта фаервола выдавал ошибку, хотя судя по логике и man iptables все правильно.

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

В любом случае спасибо.