我们(和我一起工作的技术人员和我自己)住在一个偏远的北方小镇,那里的互联网接入有点奢侈,而且带宽非常有限。在这里,从每月几百美元到几千美元不等的超额费用并不少见。我自己只是通过在家中经常使用互联网而产生每月定期费用(我可以花 60 加元获得 10G!)
作为我工作的一部分,我发现自己参与了几家有这种感觉的酒店。我知道我可以想出办法来解决这个问题,但我对系统管理还比较陌生,我不希望我的梦想战胜现实。
所以,我把这些想法传递给你,那些比我更有经验的人,希望你能分享你的一些想法和担忧。
这个系统必须具有成本效益,是的,这里的收费很高,但对技术的信任是我见过的最低的。
- 必须能够帮助客户减少使用量(鱿鱼)
- 允许有限的(吞吐量和总使用量)免费互联网,因为这通常是特许经营政策。
- 允许用户跟踪他们的带宽使用情况
- 允许(可选)更高的速度和/或额外收费的使用。此费用可在结账时在前台索取,无需使用 PayPal 或信用卡。
- 不幸的是,一些特许经营店有荒谬的政策,要求使用
第三方远程服务来验证您网络的客人。这意味着 WPA 已经退出,也意味着我在使用 Internet 之前不进行身份验证,这将是他们的工作。但是,如果酒店没有此政策,我确实需要 ABILITY 执行 Internet 访问身份验证。我仍然必须跟踪带宽(默认情况下在访客帐户下)并提供相同的限制,但是访客通常需要完整的“无限制”访问,就存在而言,而不是吞吐量。 - 为没有任何东西的酒店提供防火墙功能,办公室和访客网络隔离(其中一些人在访客网络上运行他们的办公室,没有加密,并且使用简单的 TOS!)
- 防止客人连接到其他客人,但提供允许这种情况发生的方法。IE。例如,每个访客连接到一个页面并允许其他访客,这会编写一个 iptables 规则(使用 python-netfilter)并允许两个房间玩游戏。
我对如何实现这一点的想法。一个像样的盒子(我们现在称它为路由器)有很多内存和 3 个 NIC:
- 互联网
- 办公室
- 客人(接入点 + 室内以太网)
路由器防火墙规则
- 客人只能与路由器交谈,通过路由器将他们路由到他们需要去的地方,包括互联网服务。
- 如果没有现有解决方案,Office 可用于将 Office 连接到 Internet,否则,它仅适用于网络可访问的 Web(webmin+python-webmin?)界面。
路由器软件:
- OpenVZ 为一些我不太信任的服务提供虚拟化。鱿鱼、FreeRADIUS 和 Apache。客人可以直接访问的唯一服务是 Apache。
- Apache 有 mod_wsgi 和 django,因为我可以使用 django 快速编写,而且我的需求很低。它也可能具有 FreeRADIUS 模块,但似乎有一些警告。
- 防火墙规则在路由器上使用 iptables 处理。
- Webmin(或自定义 django 应用程序)提供对员工可能需要访问的任何功能的抽象控制。
- Python,如果你没有猜到它是我感觉最舒服的语言,我几乎在所有事情上都使用它。
最后,这是否已经完成,这是一个过于庞大的项目,不值得一个人承担,和/或是否有一些我缺少的工具可以让我的生活更轻松?
作为记录,我对 Python 相当了解,但对许多其他语言不是很熟悉(我可以通过 PHP 挣扎,这是一个表面问题)。我也是一个狂热的 linux 用户,并且熟悉配置文件和命令行。
感谢您的宝贵时间,我期待着阅读您的回复。
编辑:如果这不是一些人所期待的问答,我很抱歉,我只是在寻找想法并确保我没有尝试做已经完成的事情。我现在将 pfSense 视为我需要的一个可能的开始。
现在查看 pfSense 项目后,我认为它会通过一些配置提供我需要的很多东西。它支持 Captive Portal,并使用 Radius 服务器执行此操作,可以使用 Squid 设置透明代理,并且似乎对流量有很多控制。我仍然对任何可能有帮助的想法持开放态度。谢谢!
随意的想法:
首先,从网络图开始。不用担心启动 Visio;只在纸上画一个。一旦你弄清楚从哪里开始,请在此处重新发布一些具体问题。这个帖子太密集了。让它一口大小会让你得到更好、更深思熟虑的答案,以解决特定的问题。
“防止客人连接到其他客人......”您将无法在防火墙处执行此操作,因为每个人都在同一个内部 LAN 上。您必须在交换机上执行此操作,因此您需要获得托管(智能)交换机。
Python 是这样的理想语言。不用担心不懂 PHP。PHP 不是正确的语言。PHP 从来都不是正确的语言。为了任何东西。
除非您是自虐狂,否则您不会想要手动维护您的 iptables 规则。考虑改用Shorewall。它只是 iptables 之上的一个精简配置层,使其更易于管理。
有现成的安装可以提供您正在谈论的那种服务。通常是一个 mini-itx 系统,操作系统已经安装在紧凑型闪存上。通常让您在免费访问和跨多个不同位置的接入点工作的支付系统之间进行选择。我假设您来自加拿大,但我只知道针对英国的具体示例。
Mikrotik Hotspot将完成您列出的所有操作。您应该能够在 450G 或类似设备上运行每个位置。