(PXE) 丢掉U盘光盘,利用PXE实现网络启动PE与系统部署

PXE(Preboot eXecute Environment) 不是一门新技术,实际上它已经非常成熟了。早在上个世纪末就已经有这项技术了。仔细看看,它已经有20年左右的历史(~2000年)了啊!PXE技术一直被广泛运用在机房,网吧等需要大批量维护计算机系统的场合。因为给数十数百台计算机分配安装介质是不实际的。通过PXE技术,可以让局域网内部的机器通过网络启动系统安装程序,进而统一部署。网吧的无盘(硬盘)系统也是基于PXE开发出来的。

Read more

带着新版微羽网站服务器活着回来了

好久没有打理博客了。为什么?(尽给自己找借口)。其实是阿里云被我用来部署项目,博客临时迁回了家里路由器。再后来遇到了20-1大,公网443被咔擦了。所以再后来就不了了之了。

最近吧Plume(微羽网站服务器) Cong新弄了下,然后活着回来了。

微羽网站服务器 0.4.9

报个平安。

(iptables) 自制简单Wi-Fi Captive Portal(无线认证门户),支持树莓派

Introduction

本文的研究成果是在 Captive Portal Using PHP and iptables Firewall on Linux 的基础上完成的。适用于任何使用 iptables 来共享上网的 Linux 软路由,因此,本迷你 Portal 也支援在树莓派上搭建。使用的原料:一台认证服务器(装有 PHP + MySQL),一台 Linux 接入路由。

Improvements on original plan

  • 提供多帐号认证功能与用户数据库认证方案
  • 认证端与接入端隔离(当然,如果搭建在树莓派等迷你平台上,不需要这样麻烦)
  • 在原方案中,认证代码直接调用系统 shell,具有一定危险性,本方案改进为使用回调接口来通知上下线功能
  • 更友好的 UI
  • 原方案仅仅重定向 80 端口用于验证,在登录验证之前,其他端口依然畅通无阻,可以上网通信。在本方案中,未认证用户无法上网。
  • 支持多个接入端统一共享一个认证端认证上网

Basic Concepts

警告:本文章操作具有一定危险性,您的电脑极有可能因为网络操作而断开连接。因此请您后果自负。请将本文章仅仅用在实验或教学目的,因为本文只是用以探讨 Captive Portal 的工作原理,而不是开发和搭建一个可以生产和公开使用的认证系统。如果您觉得本文对您有所帮助,我会非常感激 :)

首先,我们介绍几点 Wi-Fi Portal 认证工作的基本原理:

  1. 本文假定每位无线用户连接到一个可以访问互联网的网关热点。
  2. 本文假定您已使用 iptables 做好 NAT 网络分享,接入设备的用户现在可以直接访问互联网。
  3. 本文在 Debian 系列系统上测试通过,其他发行版暂未测试。
  4. 用户的接入点本身就是网关。
  5. 每个未认证用户发给互联网的 HTTP 数据包都被使防火墙(iptables)用特殊的代码标记以便我们进一步处理将其重定向到 Portal 页面。
  6. Portal Web 服务器透明地给每位接入用户提供认证页面并识别他们电脑的 MAC 地址。
  7. 通过认证的用户的设备 MAC 将被加入防火墙(iptables)的白名单,因此可以无限制地上网,他们的数据包不会被继续做标记。

Set-up a captive portal

1. 安装 conntrack

2. 新建并编辑文件 /usr/bin/rmtrack (用于删除用户连接跟踪轨迹),并设置权限

3. 为 Web 服务器的执行用户开放免密码 sudo 权限

4. 实现开机自动设置 iptables 规则,插入如下代码(假定 100.64.0.1 为接入端,172.31.254.100 为 Web Portal 认证端,eth0 为 LAN 网卡接口名称,如果不需要将认证端与接入端分离,请直接将认证端 IP 与接入端 IP 设置为相同内容)

5. 搭建好 Web 服务器与 PHP 运行环境 ,这里假定使用 nginx。注意 Web 服务器应该仅保留一个默认网站,建议不使用虚拟主机与多站点。因为在用户未认证前,他们的各式各色的 HTTP 请求将会被本 Web 服务器接管。如果仅绑定一个域名,那么其他域名可能会发生 400 Bad Request 错误)在 nginx 的配置文件中,加入一个 URL 重写规则,以将所有页面的请求重写至 index.php 处理。

6. 分别部署好认证端与接入端的 PHP 页面,如果想让认证与接入同时在一个设备进行,请将认证端页面与接入端页面部署在同一台服务器上。修改 config.php 中的配置:
接入端:

认证端:

7. 导入认证端中的 sql 文件至 MySQL 数据库。确认接入端 config.php 中的连接信息正确无误。

Previews

iEdon Mini Portal Preview

GitHub

https://github.com/iedon/mini-iptables-wifi-portal

基于 FreeSWITCH 搭建互联网电话交换机

Introduction

本篇文章笔者将介绍一种简单的基于 SIP 协议的 VoIP 电话网络系统的搭建。我们这次搭建的并不是传统意义上的使用程控交换机操作的双芯铜线座机电话网络(也称 PSTN,公共交换电话网络),而是一种网络IP电话网络。

这里先解释以下问题:

What is a switch?

交换机,就像一个不知疲倦的高效率的接线员一样,当A发起到B的通讯请求时,本“接线员”就将A->B的链路接到一起,使A与B之间可以互相交流。

Why VoIP?

大家肯定都注意到,移动早在去年推出了在纯 4G 分组数据网络上的高清通话(VoLTE),而电信在家家户户升级光纤,拆除进户电话线后,传统的固话竟然直接接在ONU设备(光猫)上。这一切的背后到底是人性的扭曲还是道德的沦丧?啊呸呸呸,不论是 VoLTE,VoWiFi,电信光猫上的语音功能,他们的本质都是一个,VoIP,即在承载网络上传输语音数据。所以 VoLTE 就是在 LTE 接入的网络中传递语音(而不需要回落到类似PSTN的传统2G的电路交换,上网通话都在 4G 环境下),VoWiFi 就是在现有 Wi-Fi 环境下,利用 Wi-Fi 网络来传递语音。现代电话采用IP网络来作为载体是一种明显的趋势,满足了现在人们对快速高清通话、富媒体传输的需要。

QQ的语音平台模型可能比较容易解释这套系统:张三通过QQ语音服务器联系上了李四,像这样:    张三 <--> QQ语音服务器 <--> 李四

Related Communication Protocols

以上提到的几乎所有现代电话通信方式,其本质大都是基于 SIP 协议实现的 VoIP 。而整个这样一套接入控制系统,也称 IMS。

SIP:(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。是 VoIP 系统中最主要的协议,通话前期它控制信令(如拨号给张三)的传播,并维护后期的数据传输通道。

IMS:(IP Multimedia Subsystem)IP多媒体子系统,是对上述 VoIP 接入控制交换这一套系统的总称。

具体定义这不阐述,自行G一下。

Set-up Platforms

任意常见的操作系统平台,类 Unix/Windows 都可以,所以本套电话网络可以搭建在树莓派上!

核心软件:FreeSWITCH (免费开源,超强大的说)

笔者提示:本软件可以在官方网站上获取源代码与预编译好的二进制代码。编译完成后,可以使用 FreeSWITCH.exe / fs_cli 来启用控制台。在默认情况下, FreeSWITCH 提供了 1000-1019 这一些默认帐号可以提供测试目的的使用。下面,笔者将介绍 FreeSWITCH 的重要配置目录与文件。

conf/dialplan:这里就是拨号规则的配置文件夹。其中包含默认拨号规则文件 (default.xml)。通过修改这些文件可以实现拨号行为的调整。

下面是对其中一规则的摘录:

上面演示了 FreeSWITCH 在拨号时的处理流程。

conf/directory/default:这里存放了本交换机中用户的配置文件。例如:

conf/vars.xml:这是 FreeSWITCH 的变量主要配置文件。下面摘录一些重要的配置项:

Available Clients:

现在各大平台都有可以使用的SIP客户端软件。笔者这里推荐几款:X-Lite(Windows,免费),JusVoIP(Android&iOS,免费),Mac 下同样在 App Store 里有很多可选的客户端。

新的成长之路,就此展开

实际上 iEdon 接触博客已经有很多年了。算下来从2012年开始注册这个顶级域名,到现在差不多已经过了将近5年。这5年的风风雨雨,依然没有阻挡我对网络的热情,我坚持着为这个当年热衷的域名添加活力。现在,2017年,我已经是一名即将进入大二的学生了,我在思想、领悟等众多方面都有了巨大的变化,因此是时候给自己一个修心养性,提高自我的私人平台。没错,就是这个博客。

计算机这一个大圈子是我从小到现在都喜欢的,从破碎的四色窗到碧蓝天芳草地直到透露希望之光的窗子……这么多年来我在计算机方面的接触范围很广,只要是感兴趣的,都有研究一番,有时候甚至可以通宵达旦,不知疲倦。自从上个月参加了蓝桥杯,同某一位高一认识的大牛有所交谈后,深知自己的距离与短浅。我决心重新开拓一条成长的道路。

祝一切安好、顺利。

以上