iptables и правила на основе доменных имен

Здравствуйте all!
Есть такая ситуация: на один внешний реальный ИП привязано несколько доменных имен. Все это хозяйство настроено в apache и postfix как виртуальные хосты и работает. Тут недавно ковырялся с DNAT и SNAT и обнаружил что можно компам в локальной сети инет давать через iptables (ну не знал я его!). Можно ли сделать каким-нибудь способом так, что когда хотят зайти на domen.com - попадают на сервер, а когда на domen1.org - на один из внутренних компов. Своего DNS в интернете нет, использую NOIP. Все это нужно чисто из интереса.

Нельзя. Браузер

Нельзя. Браузер коннектится когда, передает строкой Host какой домен он запрашивал, tcp пакеты домена не содержат.

МожноДля

Можно
Для начала тебе нужен DNS, можеш поставить bind как кэширующий. Те обслуживающий клиентов в только твоей сети. Потом пропиши полномочную зону mydomain.local, в ней будут узлы machine1.mydomain.local, machine2.mydomain.local, mymachine.mydomain.local итп
Короче читай маны по BIND и удачи.
PS Смотри чтобы у клиентов был указан твой DNS
PPS iptables тут не причем - хотя запросы к другим DNS можно заворачивать на твой ;-)

через DNAT

можно сделать таким макаром, зарегить домен на внешний ip, у своего прова, который выдал тебе ip-адрес(у него полюбому есть свои DNS), например domen1.org и в iptables прописать (перед табличкой INPUT)

iptables -t nat -A PREROUTING -i eth0 -d domen1.org -j DNAT --to-destination 192.168.50.10

предполагается что eth0 это внешний интерфейс глядящий в инет, а 192.168.50.10 это внутренний комп

И тогда юзеры

И тогда юзеры никогда не попадут на этот шлюз. Вопрос автора был не в том, что такое DNAT, а можно ли через DNAT рулить не по IP, а по доменам. В общем ответ - нет. Но можно реализовать нужное автору через свой DNS как написал Worm.

зачем юзерам

что значит "рулить по доменам" ? в скрипте можно запросто указать в качестве источника или назначения полнценное доменное имя www.dom.com
Вобще из первого сообщения я так понял, что на внутреннем ресурсе крутится некий сайт, и к нему нужен доступ из вне, если я правильно понял то зачем интернет-юзерам попадать на шлюз?? чтобю шарится по сетке?? те кто вовнутренней сетке сидят будут нормально ходить через инет. И текто в инете смогут заглядывать на сайт.

У него есть

У него есть комп с 1 IP. И несколько доменов резолвящихся на этот IP.

Цитата:
в скрипте можно запросто указать в качестве источника или назначения полнценное доменное имя www.dom.com

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

Именно с этого

Именно с этого я и начал. А получил действительно в правиле только ИП и все. Я просто предполагал, что есть надстройка для iptables, которая могла бы ковырятся в недрах tcp-пакета на предмет поиска доменного имени. Как например есть подобные надстройки для FTP, IRC...

Можно, есть

Можно, есть l7-filter. Только DNAT таким образом не сделать, пакет TCP SYN на открытие соединения еще не содержит никакой инфы о домене. Да и нет факт что следующий пакет, уже с HTTP сессией будет содержать строку Host.
Теоретически оно конечно можно ждать пока Host не пройдет, если коннект идет на http-порт, и потом уже редиректить. Но по нормальному такие вещи делаются через dns/proxy.

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

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