Nós (a tecnologia com quem trabalho e eu) vivemos em uma cidade remota do norte, onde o acesso à Internet é um luxo e a largura de banda é bastante limitada. Aqui, cobranças excedentes que variam de algumas centenas a milhares de dólares por mês, não são incomuns. Eu próprio recebo cobranças mensais regulares apenas com o uso regular da Internet em casa (tenho 10G por US $ 60CAD!)
Como parte do meu trabalho, me envolvi com vários hotéis que estão sentindo isso. Sei que posso criar algo para resolver esse problema, mas sou relativamente novo na administração de sistemas e não quero que meus sonhos superem a realidade.
Por isso, passo essas idéias para vocês, com muito mais experiência do que eu, na esperança de compartilhar alguns de seus pensamentos e preocupações.
Esse sistema deve ser econômico, sim, os custos são altos aqui, mas a confiança na tecnologia é a mais baixa que eu já vi.
- Deve ser capaz de ajudar o cliente a reduzir seu uso (squid)
- Permita uma quantidade limitada (taxa de transferência e uso total) de Internet gratuita, pois geralmente é uma política de franquia.
- Permitir que um usuário rastreie seu uso de largura de banda
- Permita (opcional) maior velocidade e / ou uso por um custo adicional. Essa taxa pode ser obtida na recepção no check-out e não deve exigir o uso de PayPal ou cartão de crédito.
- Infelizmente, algumas franquias têm políticas ridículas que exigem o uso de um
serviço remoto de terceiros para autenticar convidados na sua rede. Isso significa que o WPA está fora do ar e também que não me autentico antes do uso da Internet, esse será o trabalho deles. No entanto, eu exijo que o ABILITY execute autenticação para acesso à Internet se um hotel não tiver essa política. Ainda terei que rastrear a largura de banda (em uma conta de convidado por padrão) e fornecer a mesma limitação; no entanto, o convidado geralmente exigirá um acesso 'ilimitado' completo, em termos de existência, não de taxa de transferência. - Forneça recursos de firewall para hotéis que não possuem nada, segregação de rede Office e Convidado (alguns desses funcionários estão executando seu escritório na rede de convidados, sem criptografia e com um TOS simples para seguir!)
- Impedir que os convidados se conectem a outros convidados, no entanto, forneça um meio de permitir que isso aconteça. IE. Cada convidado se conecta a uma página e permite ao outro convidado, isso cria uma regra de iptables (com python-netfilter) e permite que duas salas joguem um jogo, por exemplo.
Meus pensamentos sobre como implementar isso. Uma caixa decente (vamos chamá-lo de roteador agora) com muita memória RAM e três placas de rede:
- Internet
- Escritório
- Convidados (AP's + Ethernet no quarto)
Regras de firewall do roteador
- O convidado pode conversar apenas com o roteador, através do qual eles são roteados para onde precisam ir, incluindo serviços de Internet.
- O Office pode ser usado para conectar o Office à Internet se uma solução existente não estiver em vigor; caso contrário, ele simplesmente funciona para uma interface da Web acessível em rede (webmin + python-webmin?).
Software do roteador:
- O OpenVZ fornece virtualização para alguns serviços nos quais eu realmente não confio. Lula, FreeRADIUS e Apache. O único serviço diretamente acessível aos hóspedes é o Apache.
- O Apache possui mod_wsgi e django, porque eu posso escrever rapidamente usando o django e minhas necessidades são baixas. Também possui potencialmente o mod FreeRADIUS, mas parece haver algumas ressalvas com isso.
- As regras de firewall são tratadas no roteador com iptables.
- O Webmin (ou um aplicativo personalizado do django, talvez) fornece controle abstrato sobre todos os recursos que a equipe pode precisar acessar.
- Python, se você ainda não adivinhou, é a linguagem em que me sinto mais confortável e a uso para quase tudo.
E, finalmente, isso foi feito, é um projeto excessivamente volumoso que não vale a pena assumir para um cara, e / ou há algumas ferramentas que estão faltando que poderiam facilitar minha vida?
Para o registro, eu sou bastante bom com Python, mas não estou muito familiarizado com muitas outras linguagens (eu posso lutar com o PHP, é uma questão estética lá). Eu também sou um usuário ávido de linux e confortável com arquivos de configuração e linha de comando.
Obrigado pelo seu tempo, estou ansioso para ler suas respostas.
Edit: Minhas desculpas se este não é um Q&A no sentido que alguns esperavam, estou apenas procurando idéias e para ter certeza de que não estou tentando fazer algo que já foi feito. Estou vendo o pfSense agora como um possível começo para o que eu preciso.