Хабравчане, нужна помощь. Сегодня как к самому «продвинутому компьютерщику» обратились, нужно помочь.
Есть небольшой офис. В офисе стоит сервер, а так же штук 5 юзеров (бывает больше, бывает меньше), в основном с ноутбуками, а так же роутер Netgear. Сеть создана через этот роутер, то есть к нему подключен сервер и остальные юзеры (вроде как все с помощью wi-fi).
Задача следующая: самый главный захотел, что бы, допустим, вместо сайта vkontaktah.com открывался свой сайт на офисном сервере, настроил это, и у всех юзеров вместо сайта vkontaktah.com открывался свой сайт, на сервере.
Я не знаю как правильно это описать, но попробую. Нужно так: юзер ввёл адрес в браузер. Если этот адрес не «забит» на офисном сервере, то открывать его в интернете. Если же «забит» — грузить сайт с офисного сервера.
Ещё важно, что бы не приходилось ничего править на компьютерах юзеров (к примеру файл hosts).
Так же нужно, что бы папки сайта распологались в отдельной папочке, в home. На пример сайт vkontaktah.com доложен лежать в /home/server/public_html/vkontaktah.com/.
Долго обмозговывал как всё описать, надеюсь понятно.
Самая загвостка в том, что нельзя подключить интернет в начале к серверу, а от сервера уже к роутеру. Уже нашёл под такое маны, а так сделать нельзя. Нужно, что бы интернет в начале был подключен к роутеру, затем к нему уже от него и сервер, и юзеры.
Роутер взяли по моему совету — Netgear WNR3500L-100RUS. Сервер — старенькая машинка на 4-ом пне и с гигом оперативы. На нём крутится серверная убунта.
Спрашивал на хабре как то похожее, но тут немного по другому.
Офис ещё «бедноват», поэтому админа не могут нанять. Да и помочь нужно. Хабр, помоги мне помочь хорошему знакомому. :)
Netgear WNR3500L — поставить прошивку Tomato и в dnsmasq разрешать нужные домены на ваш сервер.
Подозреваю это не офис, а компьютерный клуб, где вы собираетесь воровать пароли клиентов…
Если так, то на вашей карме это скажется…
У меня Asus N16 поэтому все закладки для него, вам будет проще погуглить. Главное направление понять:
1. Найти и установить прошивку tomato или dd-wrt
2. поставить optware и прописывать в файл: /opt/etc/hosts любые строки типа:
192.168.0.2 www.vk.com
192.168.0.2 vk.com
Если возникнет желание то прямо на роутер можно поставить nginx и он будет выдавать нужные странички в зависимости от запроса.
На сервере поднимаем DCHP и DNS (кэширующий). На роутере отключаем DCHP.
Настраиваем DCHP на отдачу в качестве шлюза — ip роутера, а в качестве DNS — ip сервера.
Далее, если нужно заблокировать какой -либо сайт, создаем виртуалхост (на www сервере) с нужным ip адресом, а так же в dns создаем зону для нужного домена (A записи указывают на локальный адрес сервера).
Надеюсь, понятно объяснил.
В принципе, виртуалхост для каждого домена не обязательно создавать — apache (другие тоже) по умолчанию будут на первый виртуалхост (конечно данный вариант, если не нужно создавать индивидуальную страницу для каждого блокируемого домена).
Поподробнее:
Нужно сделать чтоб Ваш сервер для компов в Вашей сети, был DNS-сервером.
То есть, допустим, комп в сети получает:
ip: 192.168.2.17
gw: 192.168.2.1
dsn: 192.168.2.2 (ip Вашего сервера).
Далее, на сервере, создается виртуальный хост в апаче(нджинкс), достаточно одного хоста, куда добавляются ServerAlias все нужные Вам домены.
Далее, в named.conf, создаете зоны для каждого из этих доменов, а в файле зоны, указываете A-записью ваш сервер (192.168.2.2 например).
Кто будет раздавать DHCP не важно (рутер или сервер), если есть возможность прописать в настройках DHCP отдавать нужный Вам DNS.
Вот в принципе и все.
Но это вариант для дилетантов, обходится элементарной заменой DNS на клиенте.
Если все хочется сделать по-человечески, то шлюзом все-таки необходимо сделать сервер, а не рутер (как в Вашем случае), и на нем уже все что нужно резать.
А, еще нужно фильтровать DNS-запросы на «неправильные» DNS-серверы, а так же, HTTP-запросы с заголовком Host: с «неправильным» хостом, а так же, вообще вообще все TCP-запросы на «неправильные» IP-адреса, и пресекать все попытки использования веб-прокси, в том числе «Опера-турбо».