к оглавлению

Доступ к Денверу из локальной сети или Интернета

Можно ли настроить систему, чтобы сайты, расположенные на локальном компьютере, были доступны всем пользователям локальной сети, к которой я подключен, или же даже из Интернета?..

Проекты, заведенные в Денвере, по умолчанию не доступны из локальной сети. Это достигается благодаря тому, что все виртуальные хосты имеют IP-адрес 127.0.0.1, всегда обозначающий "текущая локальная машина".

Тем не менее, все же существует возможность назначить тому или иному виртуальному хосту "внешний" IP-адрес, доступный из вашей локальной сети или даже Интернета (если компьютер имеет постоянный IP-адрес в Интернете).

Помните: Денвер - это инструмент разработчика, а не средство хостинга. Несмотря на то, что проекты в Денвере можно открыть для всеобщего доступа, мы категорически не рекомендуем это делать. Дело тут в безопасности: Денвер, как правило, запускается с правами Администратора, а значит, скрипты, запущенные под его управлением, могут делать на машине все, что угодно. Малейшая "дыра" в безопасности скрипта откроет хакеру доступ к вашей машине.

Авторы Денвера не несут ответственности за любые разрушения, причиненные хакерами тем, кто открыл Денвер наружу и по неосторожности допустил в своих скриптах уязвимость в безопасности.

Определение вашего IP-адреса

Для начала следует узнать, какой IP-адрес назначен вам в локальной сети или Интернете. Проще всего это сделать, открыв Командную строку Windows и набрав там:

ipconfig

Вы увидите что-то типа следующего:

Настройка протокола IP для Windows
WiFi - Ethernet адаптер:
  DNS-суффикс этого подключения . . :
  IP-адрес  . . . . . . . . . . . . : 192.168.0.49
  Маска подсети . . . . . . . . . . : 255.255.255.0
  Основной шлюз . . . . . . . . . . : 192.168.0.1

В данном случае внешний IP-адрес машины в локальной сети — 192.168.0.49. В списке могут быть перечислены сразу несколько сетевых интерфейсов (если ваш компьютер оборудован несколькими сетевыми картами или беспроводными устройствами). В этом случае вам нужно определить, какой из интерфейсов является внешним, доступным из локальной сети. (IP-адреса, начинающиеся с 192.168 или 10, зарезервированы только для доступа из локальной сети, но не из Интернета. Т.е. они являются "приватными".)

Убедитесь, что ваш IP-адрес является статическим, т.е. не меняется при следующем включении машины или перезагрузке. Если IP-адрес выдается динамически, то не существует простого способа, позволяющего подключить к нему Денвер.

Настройка межсетевого экрана (брандмауэра, фаервола) Windows

В большинстве Windows-систем встроенный (либо установленный вами вручную) межсетевой экран или антивирус блокируют подключения с внешних машин к текущей. Это сделано по соображениям безопасности. Конечно, в случае, если вы открываете сайт наружу, эту блокировку следует отключить, в противном случае сайт никто не увидит.

Наша цель — разрешить Windows подключения к порту 80 (протокол HTTP) вашего IP-адреса 192.168.0.49, на котором будет "висеть" Apache. Приведем инструкции, как это сделать в Windows XP:

  1. Откройте Пуск — Панель управления, выберите Брандмауэр Windows.
  2. Перейдите на вкладку Исключения.
  3. Нажмите кнопку Добавить порт, в поле Имя введите ваш IP-адрес, а в поле Номер порта укажите 80.

Если вы устанавливали свой собственный брандмауэр или антивирус, то, конечно, вам придется обратиться к их документации.

Простой способ открытия сайта наружу

Предположим, ваш IP-адрес равен 192.168.0.49, как в примере выше. Самый простой способ заставить Денвер открывать по адресу http://192.168.0.49 определенный сайт — это расположить документы сайта в директории:

/home/192.168.0.49/www

Да, имя директории содержит точки! Не забудьте также перезапустить Денвер.

Более того: если ваш провайдер выдал вам не только IP-адрес, но также и связанное с ним доменное имя, то сайт будет сразу же доступен по этому доменному имени. В случае статического IP-адреса домен выдается почти всегда, вам лишь нужно узнать его у провайдера. Например, если ваше доменное имя равно abcd.ints.ru (провайдер Корвет-Телеком НЭКСТ), то сайт будет доступен по адресу http://abcd.ints.ru.

Другой способ назначения IP-адреса сайту

Если у вас уже имеется виртуальный хост в Денвере и вы не хотите переименовывать его директорию документов, то вы можете назначить сайту свой собственный IP-адрес и сделать его доступным снаружи. Предположим, что ваш хост хранится в директории /home/mysupersite/www. Чтобы назначить ему IP-адрес 192.168.0.49, необходимо создать файл /home/mysupersite/.htaccess и добавить в него строчки:

## Файл /home/mysupersite/.htaccess
## Укажите здесь ваш внешний IP-адрес, а не 192.168.0.49!
# dnwr_ip 192.168.0.49
Кстати, вы можете узнать, какие еще существуют директивы, заглянув в файл /home/custom/.htaccess.

Перезапустите Денвер. Проверьте, что по адресу http://192.168.0.49 (вместо 192.168.0.49, конечно, нужно подставить ваш собственный IP-адрес) открывается ваш сайт /home/mysupersite/www.

    Предупреждение службы безопасности

    Напомним еще раз, что Денвер — это не законченный и надежный Web-сервер, это — всего лишь инструмент, позволяющий отлаживать (тестировать) сайты, «не выходя из дома». Любая попытка использовать его в других целях может быть небезопасна.

    Вообще, настроить можно все, что угодно, другое дело — нужно ли это. Помните, что открытый для окружающего мира Web-сервер представляет потенциальную уязвимость в защите вашей машины. Например, злоумышленник может проникнуть через не до конца отлаженный скрипт. Т.к. Денвер запускается с правами Администратора (то есть, с максимальными правами в системе), то любой скрипт, даже самый маленький, может делать все, что ему заблагорассудится. Давайте предположим, что вы написали вроде бы безобидный скрипт test.pl, который делает следующее:

    #!/usr/bin/perl -w
    use CGI::WebIn;
    use CGI::WebOut;
    Header("Content-type: text/plain");
    open(F, $IN) or die "Could not open\n";
    while(<F>) { print }
    

    Программа, казалось бы, просто печатает содержимое файла, указанного в параметре fname. Например, http://localhost/cgi/test.pl?fname=test.pl напечатает исходный код программы. Однако нетрудно заметить, что вызов open в таком виде небезопасен. Например, зайдя по адресу /cgi/test.pl?fname=|dеl+/s/q+c:\windows, в программе будет выполнено:

    open(F, "|dеl /s/q c:\\windows") or ...
    

    Это приведет к немедленному уничтожению всей директории Windows!

    Возможно, вы скажете, что localhost — на то и localhost, чтобы работать лишь с текущей машины. Если вы открыли доступ наружу по инструкции, приведенной выше, то все именно так. Тем не менее, в случае неправильной настройки Apache можно проникнуть на localhost и извне (если сервер открыт). Это делается очень просто:

    C:/> telnet server.ru 80
    GET /cgi/test.pl?fname=|dеl+/s/q+c:\windows HTTP/1.1
    Host: localhost
    здесь нужно просто нажать Enter
    

    Вывод: если у вас нет значительного опыта в администрировании серверов, установка Web-сервера, доступного извне, может быть опасной. Это особенно относится к счастливым обладателям выделенных каналов в Интернет. Одно неверное движение, и однажды утром вы проснетесь с только что отформатированным жестким диском (в лучшем случае).

    к оглавлению

    Знаете ли Вы, что объектно-ориентированное сборочное программирование - это разновидность сборочного программирования:
    - основанная на методологии объектно-ориентированного программирования; и
    - предполагающая распространение библиотек классов в виде исходного кода (obj) или упаковку классов в динамически компонуемую библиотеку (dll).

    НОВОСТИ ФОРУМА

    Форум Рыцари теории эфира


    Рыцари теории эфира
     10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
    10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
    10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
    10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
    10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
    10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
    10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
    10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
    10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
    10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
    10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
    10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
    Bourabai Research - Технологии XXI века Bourabai Research Institution