Автор Тема: Гостевой доступ wi-fi  (Прочитано 1216 раз)

Оффлайн DarkStar

  • Sr. Member
  • ****
  • Сообщений: 374
    • Просмотр профиля
Гостевой доступ wi-fi
« : Апрель 08, 2010, 12:11:07 »
Попробую во общем объяснить. Юзер подключается к wi-fi точке доступа > далле DHCP сервер проверяет мак адрес,и не находя его в списке клиентов выдает ему айпи адрес из подсети (допустим 10.1.1.0), специально предназначенной  для гостей и перенаправляет на xxx.xxx.xxx.xxx айпи, на котором висит веб-сервер с единственной html страницей с рекламой > так же в иптаблес прописано,правило которое перенаправляет любой запрос от гостевой подсети (10.1.1.0) на xxx.xxx.xxx.xxx айпи и xx порт (пример 195.8.50.90:81) > есть некий веб-сервер,на котором есть сайт http://example.com:80,нужно еще на этом же веб сервере добавить сайт,но уже http://example.com:81 (именно для гостей и чтобы все запросы перенаправлял на index.html где и есть та самая реклама).

Как всё это реализовать?Интересует правило для иптаиблес,которое перенаправит все запросы для 10.1.1.0 на 10.1.1.1:81 ,как поставить второй сайт на одном веб-сервере,но уже с другим портом (я так понимаю надо курить факи на тему виртуал хоста) и где в Apache прописать,чтобы для этого сайта все запросы перенаправлялись на index.html , чтобы гость кроме рекламы нечего не смог увидеть и сделать.

DHCP сервер,который определяет гостя и перенаправляет на сайт уже реализовано.



Оффлайн DarkStar

  • Sr. Member
  • ****
  • Сообщений: 374
    • Просмотр профиля
Re: Гостевой доступ wi-fi
« Ответ #1 : Апрель 08, 2010, 04:24:15 »
iptables -t nat -A PREROUTING -p tcp -s 10.1.1.0 --dport 80 -j DNAT --to-destination 10.1.1.1:81
Перенаправит ли это правило любой запрос на 10.1.1.1:81?

Listen 80
Listen 8080

NameVirtualHost 10.1.1.1:80
NameVirtualHost 10.1.1.1:81

<VirtualHost 10.1.1.1:80>
ServerName www.example1.com
DocumentRoot /www/domain-80
</VirtualHost>

<VirtualHost 10.1.1.1:81>
ServerName www.example1.com
DocumentRoot /www/domain-81
</VirtualHost>

Для второго сайта нужно конфиг апача привести к такому виду?



Оффлайн XSER

  • Global Moderator
  • Hero Member
  • *****
  • Сообщений: 557
    • Просмотр профиля
    • Email
Re: Гостевой доступ wi-fi
« Ответ #2 : Апрель 08, 2010, 09:23:13 »
DNAT здесь не нужен, используй REDIRECT.

Оффлайн DarkStar

  • Sr. Member
  • ****
  • Сообщений: 374
    • Просмотр профиля
Re: Гостевой доступ wi-fi
« Ответ #3 : Апрель 08, 2010, 09:28:49 »
Разве REDIRECT не перенаправляет пакет на другой порт той же самой машины?



Оффлайн DarkStar

  • Sr. Member
  • ****
  • Сообщений: 374
    • Просмотр профиля
Re: Гостевой доступ wi-fi
« Ответ #4 : Апрель 08, 2010, 09:30:30 »
DNAT (Destination Network Address Translation) используется для преобразования адреса места назначения в IP заголовке пакета. Если пакет подпадает под критерий правила, выполняющего DNAT, то этот пакет, и все последующие пакеты из этого же потока, будут подвергнуты преобразованию адреса назначения и переданы на требуемое устройство, хост или сеть. Данное действие может, к примеру, успешно использоваться для предоставления доступа к вашему web-серверу, находящемуся в локальной сети, и не имеющему реального IP адреса. Для этого вы строите правило, которое перехватывает пакеты, идущие на HTTP порт брандмауэра и выполняя DNAT передаете их на локальный адрес web-сервера. Для этого действия так же можно указать диапазон адресов, тогда выбор адреса назначения для каждого нового потока будет производиться случайнам образом.

P.S. Не то?



Оффлайн XSER

  • Global Moderator
  • Hero Member
  • *****
  • Сообщений: 557
    • Просмотр профиля
    • Email
Re: Гостевой доступ wi-fi
« Ответ #5 : Апрель 08, 2010, 10:10:53 »
Разве REDIRECT не перенаправляет пакет на другой порт той же самой машины?

Не только "той же самой машины"  ;)

Я не сказал что методом DNAT это невозможно, просто я бы это реализовал через REDIRECT.

Оффлайн DarkStar

  • Sr. Member
  • ****
  • Сообщений: 374
    • Просмотр профиля
Re: Гостевой доступ wi-fi
« Ответ #6 : Апрель 08, 2010, 10:27:39 »
Так будет это нормально работать или нет?
Цитировать
Я не сказал что методом DNAT это невозможно, просто я бы это реализовал через REDIRECT.
Но ты не сказал почему  :)



Оффлайн XSER

  • Global Moderator
  • Hero Member
  • *****
  • Сообщений: 557
    • Просмотр профиля
    • Email
Re: Гостевой доступ wi-fi
« Ответ #7 : Апрель 10, 2010, 07:30:01 »
iptables -t nat -A PREROUTING -p tcp -s 10.1.1.0 --dport 80 -j DNAT --to-destination 10.1.1.1:81
Перенаправит ли это правило любой запрос на 10.1.1.1:81?

Listen 80
Listen 8080

NameVirtualHost 10.1.1.1:80
NameVirtualHost 10.1.1.1:81

<VirtualHost 10.1.1.1:80>
ServerName www.example1.com
DocumentRoot /www/domain-80
</VirtualHost>

<VirtualHost 10.1.1.1:81>
ServerName www.example1.com
DocumentRoot /www/domain-81
</VirtualHost>

Для второго сайта нужно конфиг апача привести к такому виду?

Tебе поможет апачевский модуль mod_proxy.
Почитай на эту тему, когда будут конкретные вопросы обращайся  ;)

Оффлайн DarkStar

  • Sr. Member
  • ****
  • Сообщений: 374
    • Просмотр профиля
Re: Гостевой доступ wi-fi
« Ответ #8 : Апрель 13, 2010, 02:17:37 »
Цитировать
Я не сказал что методом DNAT это невозможно, просто я бы это реализовал через REDIRECT.
Напиши на всякий пожарный правило с действием REDIRECT,чтобы любой пакет из подсети 10.1.1.0 вне зависимости на какой порт будет запрос переправит на 81 порт 10.1.1.1  :)
Цитировать
Tебе поможет апачевский модуль mod_proxy.
Почитай на эту тему, когда будут конкретные вопросы обращайся 
Почитал.А что мне делать с модулем прокси?Мне нужно повесить 2 сайта на одном ip но с разными портами 10.1.1.1:80 основной сайт и 10.1.1.1:81 сайт для wi-fi гостей.



Оффлайн muzungu

  • Moderator
  • Full Member
  • *****
  • Сообщений: 128
    • ICQ клиент - 222557959
    • Просмотр профиля
    • Email
Re: Гостевой доступ wi-fi
« Ответ #9 : Май 19, 2010, 10:47:19 »
Решить этот вопрос можно совсем по другому - средствами веб-программирования. Напримем в PHP ($ip=$_SERVER['REMOTE_ADDR'];) , в зависимости от подключаемого IP результат показа страницы будет разным.
Ничто не Вечно!

Оффлайн DarkStar

  • Sr. Member
  • ****
  • Сообщений: 374
    • Просмотр профиля
Re: Гостевой доступ wi-fi
« Ответ #10 : Май 19, 2010, 11:19:12 »
Прошу примерчик для общего развития.
Я сделал средствами iptables+apache



Оффлайн muzungu

  • Moderator
  • Full Member
  • *****
  • Сообщений: 128
    • ICQ клиент - 222557959
    • Просмотр профиля
    • Email
Re: Гостевой доступ wi-fi
« Ответ #11 : Апрель 12, 2011, 03:20:46 »
Да вот - простой пример:

<?php
$ip_site1 = "10.10.10.1";
$ip_site2 = "10.20.20.2";

$ip=$_SERVER['REMOTE_ADDR'] ;

if ( $ip == $ip_site1 )  {
printf ( "Բարևներ" );
} elseif ( $ip == $ip_site2 ) {
printf ( "Привет" );
} else {
printf ( "Hello" );
};

?>
Ничто не Вечно!

Оффлайн XSER

  • Global Moderator
  • Hero Member
  • *****
  • Сообщений: 557
    • Просмотр профиля
    • Email
Re: Гостевой доступ wi-fi
« Ответ #12 : Апрель 12, 2011, 06:34:30 »
Простенько и со вкусом!  ;)