Estou montando um sistema de pesquisa local. O laptop Linux executará o limesurvey (em uma pilha LAMP típica) e será acessível por 5 tablets distribuídos aos participantes da conferência. Os tablets não são problema, pois seriam pré-configurados com a pesquisa carregada. Gostaria, no entanto, de permitir que os participantes da conferência também acessem o link da pesquisa de seus telefones celulares . O que eu planejaria fazer é o seguinte:
Laptop serve como ponto de acesso. O DNSMASQ fornece IPs depois que eles se juntam ao AP. Eu daria a eles um endereço local simples (por exemplo, http://lime ) para acessar a interface de pesquisa e isso deve ser possível porque o DNSMASQ funcionará como seu servidor DNS - portanto, saberá como resolver o lime.
Gostaria de lidar com erros de clientes rapidamente - por exemplo, eles, após entrar no AP, digitam um endereço diferente por acidente (ou apenas querem acessar a Internet, por exemplo, google.com) - gostaria que o DNSMASQ retornasse imediatamente um erro, de preferência com um redirecionamento para uma página de erro personalizada, fornecendo o link correto.
Edit: Eu olhei para isso; provavelmente terei que fazer uma solução do tipo portal cativo . Ainda gostaria da maneira mais simples possível de exibir a página inicial - com a(s) pesquisa(s) listada(s) e descartar/redirecionar todas as outras solicitações para a página inicial. Não preciso de autenticação, pois nenhuma internet será oferecida através desta conexão; a autenticação seria apenas cliques extras neste caso, mas quero que as pessoas tenham acesso à pesquisa sem complicações.
Isso seria possível? Haveria maneiras melhores de executar esse plano?
Claro! Redirecione todas as resoluções de nome para um endereço com o comando:
Essa é a entrada necessária no
/etc/dnsmasq.conf
arquivo. O que eu recomendo usar, pois isso imporá essa configuração se o servidor for reinicializado por qualquer motivo.Na linha de comando, a opção é chamada:
Uma cópia do manual do dnsmasq
address=
está abaixo.No entanto, mesmo que pareça razoável definir
-i vlan
(para a interface esperada a ser usada) e-a 10.6.66.1
(para o endereço no qual se espera que o dnsmasq escute a resolução do DNS). Não faça isso!.Permita que o dnsmasq se ligue no modo curinga a todo e qualquer endereço de servidor na porta 53. Dessa forma, qualquer solicitação ao servidor sobre resolução de DNS será respondida pelo dnsmasq.
Use a porta 53 (como os clientes externos esperam isso por padrão):
Desligue (e proíba) ambos
avahi-dns
esystemd.resolved
Certifique-se de que nenhum outro programa/serviço esteja escutando nas portas 53 ou 5353.
Defina também essas opções para garantir que nomes como
mylocaldomain
(sem pontos) sejam resolvidos com um erro (NXDOMAIN) pelo resolvedor de DNS dnsmasq e que (algumas) resoluções de nome não sejam encaminhadas para nenhum outro servidor:Certifique-se de que nenhum servidor definido
/etc/resolv.conf
seja usado:Todos os itens acima configurarão o lado DNS do dnsmasq para resolver todos os domínios em um endereço simples. Ainda é possível adicionar qualquer outro nome para resolver outros endereços necessários, incluindo-o no
/etc/hosts
arquivo, comoEste último endereço deve ser o endereço do servidor web para a pesquisa.
O endereço inicial acima (10.0.0.101) deve ser a página de erro que explica o que fazer para acessar a página de pesquisa.
Mas isso não é tudo. Você também precisa configurar o servidor DHCP para fornecer uma opção de servidor de nomes com o endereço do resolvedor de DNS dnsmasq (d não use a opção número 5, ela está obsoleta (e deveria estar há mais de 20 anos)):
Além de todas as outras configurações necessárias para a parte DHCP do dnsmasq.
Isso permitirá que um computador (tablet ou telefone também) obtenha um endereço DHCP fornecido com um servidor DNS definido. Todos os computadores compatíveis com o protocolo seguirão essas opções configuradas e não poderão resolver nenhum outro endereço.
No entanto, também é possível que um dispositivo tente acessar diretamente um número IP (sem solicitação de resolução de DNS). Isso deve ser evitado usando a configuração do IPFilter no roteador que atende a rede local.
De
man dnsmasq
:Leia também:
Adicionar entradas de DNS forjadas
Configuração de ligação para resolver todas as consultas para apenas um endereço
Primeiro, eu focaria na solução trabalhando normalmente com o cliente escrevendo uma URL de nome simples como http://lime para facilitar a depuração.
Como você pode não precisar fornecer acesso à Internet, talvez não precise implementar totalmente um portal cativo, pois eventualmente responderá a qualquer resposta DNS que der apontará para sua página, com dnsmasq.
Portanto, a maneira mais fácil é em seu servidor da Web criar o vhost pretendido e o soquete de escuta padrão (*) redirecionando qualquer solicitação para esse vhost.
No entanto, e é um grande problema, os dispositivos Android e iOS são um pouco inflexíveis em obter acesso a alguns URLs para pensar que estão conectados . No entanto, eu colocaria esses URLs em seu site e terminaria com isso.