Nosotros (la tecnología con la que trabajo y yo mismo) vivimos en una ciudad remota del norte donde el acceso a Internet es un lujo y el ancho de banda es bastante limitado. Aquí, los cargos por excedentes que van desde unos pocos cientos hasta unos pocos miles de dólares al mes no son infrecuentes. Yo mismo incurro en cargos mensuales regulares solo a través de mi uso regular de Internet en casa (¡se me permite 10G por $ 60CAD!)
Como parte de mi trabajo, me he visto involucrado con varios hoteles que están sintiendo esto. Sé que puedo encontrar algo para resolver este problema, pero soy relativamente nuevo en la administración de sistemas y no quiero que mis sueños superen la realidad.
Entonces, les transmito estas ideas, aquellas con mucha más experiencia que yo, con la esperanza de que compartan algunos de sus pensamientos y preocupaciones.
Este sistema debe ser rentable, sí, los cargos son altos aquí, pero la confianza en la tecnología es la más baja que he visto.
- Debe ser capaz de ayudar al cliente a reducir su uso (calamar)
- Permita una cantidad limitada (rendimiento y uso total) de Internet gratis, ya que a menudo esta es una política de franquicia.
- Permitir a un usuario rastrear su uso de ancho de banda
- Permitir (opcional) mayor velocidad y / o uso por un cargo adicional. Esta tarifa se puede obtener en la recepción al momento de pagar y no debe requerir el uso de PayPal o tarjeta de crédito.
- Lamentablemente, algunas franquicias tienen políticas ridículas que requieren el uso de un
servicio remoto de terceros para autenticar a los invitados en su red. Esto significa que WPA está fuera, y también significa que no me autentico antes del uso de Internet, ese será su trabajo. Sin embargo, sí requiero la HABILIDAD para realizar la autenticación para el acceso a Internet si un hotel no tiene esta política. Todavía tendré que rastrear el ancho de banda (bajo una cuenta de invitado por defecto) y proporcionar la misma limitación, sin embargo, el invitado a menudo requerirá un acceso 'ilimitado' completo, en términos de existencia, no de rendimiento. - Proporcione capacidades de cortafuegos para hoteles que no tienen nada, segregación de red de Office y Guest (¡algunos de estos tipos están ejecutando su oficina en la red de invitados, sin cifrado, y un TOS simple para comenzar!)
- Evite que los invitados se conecten con otros invitados, sin embargo, brinde un medio para permitir que esto suceda. ES DECIR. Cada invitado se conecta a una página y permite al otro invitado, esto escribe una regla de iptables (con python-netfilter) y permite que dos salas jueguen, por ejemplo.
Mis pensamientos sobre cómo implementar esto. Una caja decente (ahora la llamaremos enrutador) con mucha memoria RAM y 3 NIC:
- Internet
- Oficina
- Invitados (AP's + Ethernet en la habitación)
Reglas de firewall del enrutador
- Los invitados pueden hablar solo con el enrutador, a través del cual se enrutan a donde necesitan ir, incluidos los servicios de Internet.
- Office se puede utilizar para conectar Office a Internet si no existe una solución existente, de lo contrario, simplemente funciona para una interfaz web accesible en red (webmin + python-webmin?).
Software de enrutador:
- OpenVZ proporciona virtualización para algunos servicios en los que realmente no confío. Calamar, FreeRADIUS y Apache. El único servicio directamente accesible para los huéspedes es Apache.
- Apache tiene mod_wsgi y django, porque puedo escribir rápidamente usando django y mis necesidades son bajas. Potencialmente también tiene el mod FreeRADIUS, pero parece haber algunas advertencias con esto.
- Las reglas de firewall se manejan en el enrutador con iptables.
- Webmin (o una aplicación django personalizada, tal vez) proporciona un control abstracto sobre cualquier característica a la que el personal pueda necesitar acceder.
- Python, si no has adivinado, es el lenguaje con el que me siento más cómodo, y lo uso para casi todo.
Y finalmente, ¿se ha hecho esto? ¿Es un proyecto excesivamente masivo que no vale la pena asumir para un tipo y / o hay algunas herramientas que me faltan que podrían hacerme la vida más fácil?
Para el registro, soy bastante bueno con Python, pero no estoy muy familiarizado con muchos otros lenguajes (puedo tener dificultades con PHP, es un problema cosmético allí). También soy un ávido usuario de Linux y me siento cómodo con los archivos de configuración y la línea de comandos.
Gracias por su tiempo, espero leer sus respuestas.
Editar: Mis disculpas si esto no es un Q&A en el sentido que algunos esperaban, solo estoy buscando ideas y para asegurarme de que no estoy tratando de hacer algo que se ha hecho. Estoy viendo pfSense ahora como un posible comienzo para lo que necesito.