Redirecionando todas as solicitações WiFi para o meu servidor (como portal cativo)

1

Na verdade, estou tentando desenvolver uma rede sem fio pública (não comercial, apenas para fins educacionais, estou estudando ciência da computação ...). Mas eu não tenho o conhecimento necessário para atingir esse objetivo (geralmente sou mais em programação do que em gerenciamento de rede [amor Stack Overflow; -)]).

O que eu quero fazer exatamente é como muitas redes públicas de cidades / escolas, onde cada endereço é redirecionado para uma página de login antes de poder acessar a Internet.

Minha configuração atual é feita assim: Eu tenho minha Internet conectada a um roteador com fio. Este roteador está conectado a um switch. Meus computadores pessoais estão conectados a esse switch. Eu tenho um servidor IIS conectado ao roteador.

Eu tenho um ponto de acesso sem fio, mas não sei como configurá-lo para redirecionar os IPs de entrada para o IIS. Basicamente eu quero bloquear toda a Internet e redirecionar as solicitações não-locais para o meu IIS local (apenas para usuários de WiFi, a LAN deve ter Internet).

Pensei em instalar um DNS no meu servidor e defini-lo como DNS primário no roteador. Ou talvez conectar o WiFi ao servidor (com um segundo adaptador de rede) e redirecionar via firewall / proxy, mas não sei se isso funcionaria teoricamente, antes de aprender a configurar uma dessas opções ...

Qualquer ajuda muito apreciada!

    
por m6a-uds 05.03.2010 / 14:59

2 respostas

1

O que você está tentando fazer é implementar um portal cativo (como você sabe). Um dos portais cativos mais populares é o WiFi Dog . É open source e deve atender às suas necessidades.

Você pode executar o portal cativo em um CD ao vivo usando o ZoneCD , mas algumas pessoas dizem que ele é lento. Além disso, não tenho certeza se as configurações podem ser reinicializadas (provavelmente não, já que não acredito que nada esteja escrito no armazenamento não volátil)

    
por 05.03.2010 / 15:10
2

Seu wifi precisa estar conectado a um gateway onde você pode redirecionar o tráfego para o seu portal cativo (página de login).

Você pode fazer isso usando o iptables no linux. Digamos que sua interface eth0 esteja conectada ao seu ponto de acesso com a sub-rede 192.168.0.0/24 e seu gateway (servidor linux) esteja configurado em 192.168.0.1 e tenha acesso à Internet em uma interface separada. Seu servidor IIS está em 192.168.0.2:80 .

Suas regras do iptables podem ser algo como:

iptables -t mangle -N my_access_filter
iptables -t mangle -A INPUT -i eth0 -j my_access_filter

iptables -t mangle -A my_access_filter -m mac --mac-source 11:22:33:44:55:66 -j RETURN # Grant access to mac 11:22:33:44:55:66, by returning and not marking the traffic
iptables -t mangle -A my_access_filter -j MARK --set-mark 99 # Arbitrarily selected number

# that's it for the mangle table, now the nat table
iptables -t nat -A PREROUTING -p tcp --dport 80 -m mark --mark 99 -j DNAT --to 192.168.0.2:80 # ip o
iptables -t nat -A PREROUTING -p udp --dport 53 -m mark --mark 99 -j DNAT --to 192.168.0.1 # For good measure, lets redirect their dns queries to our own dns server.

# now the filter table reads:
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # standard rule to accept established connections
iptables -A FORWARD -i eth0 -m mark --mark 99 -j DROP # This will drop traffic that is marked, preventing clients from accessing the internet

Seu portal cativo precisa apenas colocar os clientes ip ou mac, ou qualquer coisa que você filtrar no my_access_filter na tabela mangle, o que pode ser feito por

iptables -t mangle -I my_access_filter -m mac --mac-source <mac> -j RETURN

ou

iptables -t mangle -I my_access_filter -s 192.168.0.xx -j RETURN # by ip

Espero que isso dê alguma inspiração.

    
por 27.11.2014 / 15:00