есть роутер:
eth0 - интернет
eth1 - подсеть серверов (веб/фтп/почта) (реальные айпишники)
eth2 - локальная сеть 1 (192.168.0.0/24)
eth3 - локальная сеть 2 (192.168.1.0/24)в интернет народ из сети выпускаю так:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.*.* -j MASQUERADEхочу сделать, чтобы если маскарад на кого-то не прописан, то его "заворачивало"-бы на локальный порт роутера, но, в подсеть серверов он-бы остался ходить без проблем...
очень-бы устроил вариант с:
iptables -t nat -A PREROUTING -s 192.168.*.* -o eth0 --dport 80 -j DNAT --to 192.168.0.1
но, PREROUTING с -o, как известно, не работает...кто-нибудь что-нибудь может посоветовать? засунуть всё в PREROUTING и в -d перечислить все неинтернетовские айпишники - не хочется (да и не понял, можно-ли вообще указать несколько айпишников в этом самом -d)...
и, блин, POSTROUTING не умеет DNAT делать :(
>есть роутер:
>eth0 - интернет
>eth1 - подсеть серверов (веб/фтп/почта) (реальные айпишники)
>eth2 - локальная сеть 1 (192.168.0.0/24)
>eth3 - локальная сеть 2 (192.168.1.0/24)
>
>в интернет народ из сети выпускаю так:
>iptables -t nat -A POSTROUTING -o eth0 -s 192.168.*.* -j MASQUERADE
>
>хочу сделать, чтобы если маскарад на кого-то не прописан, то его "заворачивало"-бы
>на локальный порт роутера, но, в подсеть серверов он-бы остался ходить
>без проблем...
>А прописать алиасы на eth1 с внутренних подсетей неподходит?
>очень-бы устроил вариант с:
>iptables -t nat -A PREROUTING -s 192.168.*.* -o eth0 --dport 80 -j
>DNAT --to 192.168.0.1
>но, PREROUTING с -o, как известно, не работает...
>
>кто-нибудь что-нибудь может посоветовать? засунуть всё в PREROUTING и в -d перечислить
>все неинтернетовские айпишники - не хочется (да и не понял, можно-ли
>вообще указать несколько айпишников в этом самом -d)...
>и, блин, POSTROUTING не умеет DNAT делать :(
>А прописать алиасы на eth1 с внутренних подсетей неподходит?
нет... это я дал немного упрощённые условия... в реале всё ещё сложнее (локальных подсетей больше и серверов не одна подсеть, а три)... так что этот вариант отпадает :(
>>А прописать алиасы на eth1 с внутренних подсетей неподходит?
>нет... это я дал немного упрощённые условия... в реале всё ещё сложнееда хоть 100.
>(локальных подсетей больше и серверов не одна подсеть, а три)... так
>что этот вариант отпадает :(Мне кажется, судя по заявленному, топология сети плохо продуманна.
И не понятно, какой смысл натить в локальных сетях? Чем тут не устраивает обычный форвард.
>>>А прописать алиасы на eth1 с внутренних подсетей неподходит?
>>нет... это я дал немного упрощённые условия... в реале всё ещё сложнее
>
>да хоть 100.
>
>>(локальных подсетей больше и серверов не одна подсеть, а три)... так
>>что этот вариант отпадает :(
>
>Мне кажется, судя по заявленному, топология сети плохо продуманна.
почему? что непродумано? и, какие варианты есть ещё при таком раскладе?>И не понятно, какой смысл натить в локальных сетях? Чем тут не
>устраивает обычный форвард.
в локальных сетях ната нету... нат появляется только если пакет уходит на eth0 (-o eth0)
повторю задачу в более другой формулировке: из локалки люди ходят в инет... если доступ открыт (есть маскарад), то они идут в инет, если доступ закрыт (маскарада нет), то хотелось-бы все запросы перенаправлять на веб-сервер роутера, на котором поднят апач и страничка типа "доступ закрыт" (типа ввёл www.yandex.ru, а попал на локальный апач). но, при этом доступ на "свои" веб/фпт/итд-сервера должен быть всегда...
>>>>А прописать алиасы на eth1 с внутренних подсетей неподходит?
>>>нет... это я дал немного упрощённые условия... в реале всё ещё сложнее
>>
>>да хоть 100.
>>
>>>(локальных подсетей больше и серверов не одна подсеть, а три)... так
>>>что этот вариант отпадает :(
>>
>>Мне кажется, судя по заявленному, топология сети плохо продуманна.
>почему? что непродумано? и, какие варианты есть ещё при таком раскладе?
>
>>И не понятно, какой смысл натить в локальных сетях? Чем тут не
>>устраивает обычный форвард.
>в локальных сетях ната нету... нат появляется только если пакет уходит на
>eth0 (-o eth0)
>повторю задачу в более другой формулировке: из локалки люди ходят в инет...
>если доступ открыт (есть маскарад), то они идут в инет, если
>доступ закрыт (маскарада нет), то хотелось-бы все запросы перенаправлять на веб-сервер
>роутера, на котором поднят апач и страничка типа "доступ закрыт" (типа
>ввёл www.yandex.ru, а попал на локальный апач). но, при этом доступ
>на "свои" веб/фпт/итд-сервера должен быть всегда...
вот как задача повернулась :)
ну тогда используйте прокси, думаю самый грамотный без лишних заморочек
Создаётся впечатление что ты путаешь мягкое с тёплым :-)
>
>>И не понятно, какой смысл натить в локальных сетях? Чем тут не
>>устраивает обычный форвард.
>в локальных сетях ната нету... нат появляется только если пакет уходит на
>eth0 (-o eth0)
>повторю задачу в более другой формулировке: из локалки люди ходят в инет...
ты считаешь что ходят в инет - это только www/ftp?
>если доступ открыт (есть маскарад), то они идут в инет, если
>доступ закрыт (маскарада нет), то хотелось-бы все запросы перенаправлять на веб-сервер
>роутера, на котором поднят апач и страничка типа "доступ закрыт" (типа
>ввёл www.yandex.ru, а попал на локальный апач). но, при этом доступ
а куда я должен попасть если введу telnet mail.yandex.ru 110 ?
>на "свои" веб/фпт/итд-сервера должен быть всегда...
>Создаётся впечатление что ты путаешь мягкое с тёплым :-)
гм...я просто уменьшаю себе гемор и, добавляю удобства юзерам...>>повторю задачу в более другой формулировке: из локалки люди ходят в инет...
>ты считаешь что ходят в инет - это только www/ftp?
а где написано, что я так считаю?>>ввёл www.yandex.ru, а попал на локальный апач). но, при этом доступ
>а куда я должен попасть если введу telnet mail.yandex.ru 110 ?
никуда - у тебя не будет маскарада... а если по 80-му порту пойдёшь (эксплорером), то должна появиться "блокирующая страница" с разъяснениями...
хочется-таки поднять эту тему, так как вопрос не решён...а что если маркировать пакеты через iptables mangle и, потом их редиректить? так возможно? маркировать-то возможно, а вот что с этим маркированным пакетом дальше делать?