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

Исходное сообщение
"Как маскарадить опеределённые порты из Интернет?"

Отправлено fbslim , 25-Апр-12 16:20 
Допустим, имеется обычная задача, маскарадить интернет с одного шлюзового интерфейса (который смотрит в интренет (eth1)) на другой (который смотрит в локальную сеть):

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Работает прекрасно, на всю локалку.


Далее.
Допустим, разрешить маскарадинг инета для определённого IP внутри локалки, а остальные останутся без инета:

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.146/32 -j MASQUERADE

Теперь комп с IP 192.168.1.146 в инет ходит, а остальные не могут.


Теперь, вопрос, как таким же образом запретить для IP 192.168.1.146 весь интернет, а разрешить только ftp сервис из интернета и только на один IP , допустим 41.42.43.44? То есть, чтобы он мог обращаться только к 41.42.43.44 ftp ресурсу на 21 порт, а всё остальное было недоступно.

Суть в том чтобы доступ из интернета к этому компьютеру был снаружи, допустим по RDP, но чтобы внутри интернет не работал (и не выполнялись команды типа tracert), но был доступен только один ресурс ftp.

Я пытался сделать хотябы доступ к любому 21 порту в инете, а не определённому:

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.146/32 -p tcp --sport 21 --dport 21 -j MASQUERADE

Не работает.

Скажите, как заставить маскарадить всего один порт на один IP?

Я на Микротике это делал - маскарадинг опеределённого порта на определённый IP. Работало замечательно, именно так как надо. Тут... с IPtables не могу понять что не так :(

Подскажите, пожалуйста, что не так.


Содержание

Сообщения в этом обсуждении
"Как маскарадить опеределённые порты из Интернет?"
Отправлено vg , 25-Апр-12 18:30 
--sport 21
source port вообщето обычно выше 1024, да еще и всегда разный
может не стоит его указывать?

"Как маскарадить опеределённые порты из Интернет?"
Отправлено PavelR , 25-Апр-12 20:09 
> --sport 21
> source port вообщето обычно выше 1024, да еще и всегда разный
> может не стоит его указывать?

кроме того, если это всё-таки FTP, то надо грузить модуль ip_conntrack_ftp + ip_nat_ftp и разрешать прохождение пакетов по признаку состояния: -m state --state ESTABLISHED,RELATED


"Как маскарадить опеределённые порты из Интернет?"
Отправлено PavelR , 25-Апр-12 20:04 
> Допустим, имеется обычная задача, маскарадить интернет с одного шлюзового интерфейса (который
> смотрит в интренет (eth1)) на другой (который смотрит в локальную сеть):
> iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
> Работает прекрасно, на всю локалку.
> Далее.
> Допустим, разрешить маскарадинг инета для определённого IP внутри локалки, а остальные
> останутся без инета:
> iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.146/32 -j MASQUERADE
> Теперь комп с IP 192.168.1.146 в инет ходит, а остальные не могут.

Так не делается. Точнее, так не правильно.

Делаем

>iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
>Работает прекрасно, на всю локалку.

А потом в filter.FORWARD запрещаем/разрешаем прохождение нужных пакетов.

nat.POSTROUTING - не для фильтрации.


"Как маскарадить опеределённые порты из Интернет?"
Отправлено fbslim , 08-Май-12 17:20 

> Делаем
>>iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
>>Работает прекрасно, на всю локалку.
> А потом в filter.FORWARD запрещаем/разрешаем прохождение нужных пакетов.
> nat.POSTROUTING - не для фильтрации.

Павел, спасибо за совет. Так судя по всему и придётся.