Iptables + bind DNS в локальной сети

Приветствую сообщество.
Имею:
локальная сеть 192.168.0.0/24
шлюз 192.168.0.1 Gentoo
ДНС сервер 192.168.0.10
На шлюзе для ДНС сервера прописан маскарад и это работает.
Все клиенты в локальной сети используют ДНС сервер.
ДНС сервер не использует ДНС сервера провайдера.
На ДНС прописан query-source address * port 53;

А теперь проблема. Как прописать правильные правила для ДНС сервера,
что бы он ходин в интернет не через маскарад, а только в мир к другим ДНС серверам на 53 порт и ответ из мира возвращался соответственно для 192.168.0.10 порт 53.

Прошу помощи в решении данной проблемы. Спасибо.

?

SimbioS написал(а):
...что бы он ходин в интернет не через маскарад, а только в мир к другим ДНС серверам на 53 порт и ответ из мира возвращался...

Вы намекаете на динамический IP на "бордере" + невозможность SNAT/DNAT?
Ну а если пользоваться возможностями пакета iproute2, типа:
ExtIp=`/sbin/ip -4 address show dev eth0 | /bin/grep inet | /bin/awk '{print $2}'`?
Или я недопонял чего?

Нет. IP статический получает

Нет. IP статический получает ppp0.
Тобиш хочу выпустить ДНС сервер наружу для резольвования адресов для клиентов(ходят через маскарад) локальной сети.

Пример, реализовывал на ipfw, в iptables загруз.

для клиентбанка
клиент Петров с IP 192.168.0.100 должен ходить в мир только на этот сервер (например) 195.195.195.1 и на порт 8974

Возможность использования SNAT/DNAT существует, так как разные там порты (80,21,1194) я пробросил внутрь сетки.

Спасибо.

Никак! Если он во внутренней

Никак!
Если он во внутренней сети, то без NAT'а не обойтись.
А почему это нельзя, не поясните? :)

Ok, NAT это хорошо.

Ok, NAT это хорошо.
примерчик киньте, тогда я возможно пойму что не прав, или объясню почему нельзя...

Спасибо.

Я отвечу "по-еврейски" :D

Можно увидеть рабочие правила ipfw, которые позволяют клиенту с IP=192.168.0.10 "общаться напрямки во внешке"?

Ну, например iptables -t nat

Ну, например

iptables -t nat -I POSTROUTING 1 -o ppp0 -s 192.168.0.10 -p udp --dport 53 -j MASQUERADE
iptables -t nat -I POSTROUTING 1 -o ppp0 -s 192.168.0.10 -p tcp --dport 53 -j MASQUERADE

Хотя я думаю, что вам сюда :)

А если нагородить

такой ахинеи:
Поставить bind на шлюзе, сделать оного "хозяином", а второго бинда (192.168.0.10) - "простым смертным"
Создать acl на мастере с дозволением ведомому:

allow-query-cache
allow-recursion
allow-transfer

Ну и пущай себе трудятся... ?

Чтобы сэкономить на

Чтобы сэкономить на правилах?! :) - очень смешно!
И вообще - это дурная привычка - на рутерах/фаерволах ставить сервисы!
Теоритически на фаерволе не должно быть никаких коннектов (тем более снаружи!) - только трансфер внешних коннектов к соответствующим серверам и внутреннего трафика наружу. С соответствующей фильтрацией всего и вся.

Согласен

С этим абсолютно согласен. Это правильная реализация шлюза.
+DMZ

Спасибо.

Чрезвычайно польщен Вашим

Чрезвычайно польщен Вашим признанием моих скромных познаний.
И совершенно сражен столь глубоким по смыслу упоминанием такого чуда, как DMZ.
Но соблаговолит ли великий гуру прояснить, как быть, если серверов несколько/много и они принадлежат к различным уровням безопасности, которых тоже несколько/много? И как будет выглядеть это Ваше великое чудо DMZ? И сохранит ли имя свое?

SysA написал(а): Чрезвычайно

SysA написал(а):
Чрезвычайно польщен Вашим признанием моих скромных познаний.
И совершенно сражен столь глубоким по смыслу упоминанием такого чуда, как DMZ.
Но соблаговолит ли великий гуру прояснить, как быть, если серверов несколько/много и они принадлежат к различным уровням безопасности, которых тоже несколько/много? И как будет выглядеть это Ваше великое чудо DMZ? И сохранит ли имя свое?

Это зависит от ваших требований к "различным уровням безопасности".

Юзаю DMZ - "5 минут, полёт нормальный"

Но это уже другой вопрос.

Мой же остаётся в силе.

>>Как что-то подобное прописать в IPTABLES не знаю, рассчитываю на вашу помощь.

Спасибо.

Бред

Сори но это полный бред.

ДА это оно

Долго я ходил вокруг да около.
Ваши правила подошли мне.
Может быть ещё подскажите вот это:

клиент Петров с IP 192.168.0.100 должен ходить в мир только на этот сервер (например) 195.195.195.1 и на порт 8974

Спасибо.

Только после того, как

Только после того, как ответите на "еврейский" вопрос Willy ;) - иначе - по линку, что я дал!.. :)
Это уже сер'езно, поскольку юзер может быть не один, тогда могут понадобиться свои цепочки и т.д. и т.п.

SysA написал(а): Только после

SysA написал(а):
Только после того, как ответите на "еврейский" вопрос Willy ;) - иначе - по линку, что я дал!.. :)
Это уже сер'езно, поскольку юзер может быть не один, тогда могут понадобиться свои цепочки и т.д. и т.п.

К сожалению теперешний админ убил эти правила на моей позапрошлой работе.
Мотивируя это тем что они были глючные. У меня работали без проблем.
Дал он этим компутерам с клиентбанками полный НАТ.

Попробую вспомнить:

${fwcmd} add pass any from VASY_BANK port to BANK_BANK port
${fwcmd} add pass any from BANK_BANK port to VASY_BANK port

С клиентской тачки порт можно не указывать, но есть такие п**доватые клиентбанки которые щимятся с определённого порта.
Вместо IP я указывал хостнейм, только для удобства, так как кассиры шото часто менялись.

Как что-то подобное прописать в IPTABLES не знаю, рассчитываю на вашу помощь.

Да, кстати http://www.freebsd.org/doc/handbook/firewalls-ipfw.html ;)

Спасибо.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".