Допустим, имеется обычная задача, маскарадить интернет с одного шлюзового интерфейса (который смотрит в интренет (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 не могу понять что не так :(
Подскажите, пожалуйста, что не так.
--sport 21
source port вообщето обычно выше 1024, да еще и всегда разный
может не стоит его указывать?
> --sport 21
> source port вообщето обычно выше 1024, да еще и всегда разный
> может не стоит его указывать?кроме того, если это всё-таки FTP, то надо грузить модуль ip_conntrack_ftp + ip_nat_ftp и разрешать прохождение пакетов по признаку состояния: -m state --state ESTABLISHED,RELATED
> Допустим, имеется обычная задача, маскарадить интернет с одного шлюзового интерфейса (который
> смотрит в интренет (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 - не для фильтрации.
> Делаем
>>iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
>>Работает прекрасно, на всю локалку.
> А потом в filter.FORWARD запрещаем/разрешаем прохождение нужных пакетов.
> nat.POSTROUTING - не для фильтрации.Павел, спасибо за совет. Так судя по всему и придётся.