论文部分内容阅读
摘要:文章在Linux台式机上实现了AP(Access Point)及其扩展功能,并在同一台主机上架设apache服务器,用perl语言编写CGI程序,使用户可以通过HTML页面远程配置主机,从而实现对AP功能的调整。简单的配置页面,降低了用户对Linux操作系统专业知识掌握程度的要求。实验在模拟现有AP产品功能的同时,增加了不需重新启动服务器,直接完成配置修改的功能,测试结果表明,这个改动提高了产品的性能,满足了不同用户的需求。
关键词:AP; WDS; 远程配置
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2129-03
The Implement of Configuring Wireless AP in Long-distance Based on HTTP
ZHONG Hui, YUE Qi-ming
(Shenyang Jianzhu University, Shenyang 110168, China)
Abstract: This article first realized AP and WDS based on Linux PC. Then established an Apache server on the same machine and wrote CGI with Perl, so that users could configure AP by HTML page which makes configuration easier. In this experiment, some configurations for AP would take effect immediately instead of rebooting server, which optimized AP’s performance.
Key words: AP; WDS; remote configuration
1 绪论
1.1 CGI简介
CGI(Common Gateway Interface),即通用网关接口,是使服务器与外部应用程序相交互的一个标准协议。它实际上是一段工作在服务器上的程序,提供与客户端HTHL页面的接口,绝大多数的CGI程序被用来处理来自表单的输入信息,并在服务器上作出相应的处理,或将相应的信息反馈给浏览器。其工作流程如下:(图1)
1)通过Internet把用户请求送到服务器;2)服务器接收用户请求交给CGI程序处理;3)CGI程序把处理结果传送给服务器;4)服务器把结果送回到用户。
CGI的缺点:调用一次CGI通常意味着产生一个新的进程,这通常比产生输出结果的工作占据更多的时间和空间,特别是程序需要被解释和编译时。因此,如果CGI程序被频繁调用,将产生巨大的工作量。目前替代的方法有:在服务器上运行第三方软件,如apache modules(本实验采用此方法)。
1.2 台式机模拟AP功能的相关介绍
AP(Access Point),无线访问节点,是连接有线网与无线网的桥梁,其主要作用是将无线网络客户端连接到一起,再把无线网络接入到以太网中,其作用相当于有线网路中的hub。
WDS(Wireless Distribution System),无线分布式系统,以无线的方式使基本服务集间互相通信的系统,并整合局域网形成一个扩展服务集。
2 前期准备
2.1 AP及扩展功能的实现
1)AP功能的实现:
本实验的操作系统是RedHat 9.0,使用madwifi系列无线网卡驱动,在安装驱动之前要检查系统的内核的版本是否高于驱动要求的2.4.23。如不满足要求,则需升级内核。
然后安装无线网卡驱动,并设置端口ath0;安装网桥软件(以brctl为例),建立网桥br0,将有线网卡eth0和ath0的IP地址改为0.0.0.0,并设置成br0的两个端口,再为br0添加IP地址,这样便实现AP功能。
2)WDS功能的实现:
WDS是对AP功能的扩展,是通过两个AP节点间以特有的WDS模式进行的数据传输,实现两个AP及其下属间的连通。首先,通过wlanconfig命令为机器A的无线网卡创建两个个端口,ath10、ath11,其模式分别为ap和wds,并将它们设置为网桥的两个端口;同时为机器B的无线网卡创建ath20、ath21两个端口,其模式也分别为ap和wds,将他们设置为网桥的两个端口;然后,使用iwconfig命令为ath11端口绑定机器B无线网卡的MAC地址,为ath21绑定机器A无线网卡的MAC地址,将他们置为同一个频道,这样就实现了WDS。
2.2 HTTP服务器建立及配置
本文选用的服务器是apache1.3,安装后对其目录下的httpd.conf文件进行修改,如根目录的位置、支持CGI及perl语言、允许服务器前端包含等。启动apache,在浏览器的地址栏内输入http://本机器的名字或本机IP地址,如果出现服务器的测试页,则说明安装成功。实验使用perl语言编写CGI,因此要安装Perl软件(本文安装的是Perl 5.8版本)。在命令行中输入perl,如果出现命令提示信息,则表示安装成功。最后安装CGI-2.49.pm模块,它解决了CGI程序对主机CPU过度占用的问题,即前面提到的第三方软件。安装后,编写如下脚本:
#!/usr/bin/perl
use CGI;
print “hello”;
确保该脚本具有可执行性,然后执行。如果没有收到任何错误信息,表示安装成功。
至此,服务器的搭建完毕,用HTML语言编写一个页面,然后修改httpd.conf文件中的htdocs/index.html语句,可把该页面设为主页,通过访问服务器即可看到该页面。
2.3 修改服务器访问权限
启动服务器后,如果要在客户端通过html页面执行服务器命令是不被允许的,因为apache的客户端的权限不是根用户级别,而系统的网络命令(如ifconfig)须在根用户权限下才能执行。解决方法是使用sudo,即在非根用户的情况下执行根用户权限的命令。但使用sudo时需密码,而http服务器在远程控制时不可能每执行一个命令就输入一次密码,因此需要更改sudo配置文件/etc/sudoers,即可实现这一目的。
3 远程修改无线AP配置
3.1 CGI程序结构图
本文CGI程序的总体框架:如图3 。
3.2 用户登录模块
用户登录模块有效的防止了非法用户对AP进行恶意地修改。其实现方法如下:
首先使用htpasswd命令在apache根目录下建立用户文件,根据程序提示输入用户名和密码。然后建立.htaccess文件,输入AuthName、AuthUserFile等信息,再修改这两个文件的权限,最后在apache的httpd.conf文件中加入AllowOverride authconfig即完成加密工作。如要修改登陆密码,可在本程序的修改密码界面输入新的密码,确认后提交,页面的CGI程序将输入值写入htpasswd文件,完成修改。
3.3 修改IP地址模块
本模块负责将用户输入的数据,如获取IP的方式、IP地址、子网掩码、网关等,经过CGI程序的处理,完成对服务器配置的修改(其界面如图4)。首先向网页代码中加入
关键词:AP; WDS; 远程配置
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)35-2129-03
The Implement of Configuring Wireless AP in Long-distance Based on HTTP
ZHONG Hui, YUE Qi-ming
(Shenyang Jianzhu University, Shenyang 110168, China)
Abstract: This article first realized AP and WDS based on Linux PC. Then established an Apache server on the same machine and wrote CGI with Perl, so that users could configure AP by HTML page which makes configuration easier. In this experiment, some configurations for AP would take effect immediately instead of rebooting server, which optimized AP’s performance.
Key words: AP; WDS; remote configuration
1 绪论
1.1 CGI简介
CGI(Common Gateway Interface),即通用网关接口,是使服务器与外部应用程序相交互的一个标准协议。它实际上是一段工作在服务器上的程序,提供与客户端HTHL页面的接口,绝大多数的CGI程序被用来处理来自表单的输入信息,并在服务器上作出相应的处理,或将相应的信息反馈给浏览器。其工作流程如下:(图1)
1)通过Internet把用户请求送到服务器;2)服务器接收用户请求交给CGI程序处理;3)CGI程序把处理结果传送给服务器;4)服务器把结果送回到用户。
CGI的缺点:调用一次CGI通常意味着产生一个新的进程,这通常比产生输出结果的工作占据更多的时间和空间,特别是程序需要被解释和编译时。因此,如果CGI程序被频繁调用,将产生巨大的工作量。目前替代的方法有:在服务器上运行第三方软件,如apache modules(本实验采用此方法)。
1.2 台式机模拟AP功能的相关介绍
AP(Access Point),无线访问节点,是连接有线网与无线网的桥梁,其主要作用是将无线网络客户端连接到一起,再把无线网络接入到以太网中,其作用相当于有线网路中的hub。
WDS(Wireless Distribution System),无线分布式系统,以无线的方式使基本服务集间互相通信的系统,并整合局域网形成一个扩展服务集。
2 前期准备
2.1 AP及扩展功能的实现
1)AP功能的实现:
本实验的操作系统是RedHat 9.0,使用madwifi系列无线网卡驱动,在安装驱动之前要检查系统的内核的版本是否高于驱动要求的2.4.23。如不满足要求,则需升级内核。
然后安装无线网卡驱动,并设置端口ath0;安装网桥软件(以brctl为例),建立网桥br0,将有线网卡eth0和ath0的IP地址改为0.0.0.0,并设置成br0的两个端口,再为br0添加IP地址,这样便实现AP功能。
2)WDS功能的实现:
WDS是对AP功能的扩展,是通过两个AP节点间以特有的WDS模式进行的数据传输,实现两个AP及其下属间的连通。首先,通过wlanconfig命令为机器A的无线网卡创建两个个端口,ath10、ath11,其模式分别为ap和wds,并将它们设置为网桥的两个端口;同时为机器B的无线网卡创建ath20、ath21两个端口,其模式也分别为ap和wds,将他们设置为网桥的两个端口;然后,使用iwconfig命令为ath11端口绑定机器B无线网卡的MAC地址,为ath21绑定机器A无线网卡的MAC地址,将他们置为同一个频道,这样就实现了WDS。
2.2 HTTP服务器建立及配置
本文选用的服务器是apache1.3,安装后对其目录下的httpd.conf文件进行修改,如根目录的位置、支持CGI及perl语言、允许服务器前端包含等。启动apache,在浏览器的地址栏内输入http://本机器的名字或本机IP地址,如果出现服务器的测试页,则说明安装成功。实验使用perl语言编写CGI,因此要安装Perl软件(本文安装的是Perl 5.8版本)。在命令行中输入perl,如果出现命令提示信息,则表示安装成功。最后安装CGI-2.49.pm模块,它解决了CGI程序对主机CPU过度占用的问题,即前面提到的第三方软件。安装后,编写如下脚本:
#!/usr/bin/perl
use CGI;
print “hello”;
确保该脚本具有可执行性,然后执行。如果没有收到任何错误信息,表示安装成功。
至此,服务器的搭建完毕,用HTML语言编写一个页面,然后修改httpd.conf文件中的htdocs/index.html语句,可把该页面设为主页,通过访问服务器即可看到该页面。
2.3 修改服务器访问权限
启动服务器后,如果要在客户端通过html页面执行服务器命令是不被允许的,因为apache的客户端的权限不是根用户级别,而系统的网络命令(如ifconfig)须在根用户权限下才能执行。解决方法是使用sudo,即在非根用户的情况下执行根用户权限的命令。但使用sudo时需密码,而http服务器在远程控制时不可能每执行一个命令就输入一次密码,因此需要更改sudo配置文件/etc/sudoers,即可实现这一目的。
3 远程修改无线AP配置
3.1 CGI程序结构图
本文CGI程序的总体框架:如图3 。
3.2 用户登录模块
用户登录模块有效的防止了非法用户对AP进行恶意地修改。其实现方法如下:
首先使用htpasswd命令在apache根目录下建立用户文件,根据程序提示输入用户名和密码。然后建立.htaccess文件,输入AuthName、AuthUserFile等信息,再修改这两个文件的权限,最后在apache的httpd.conf文件中加入AllowOverride authconfig即完成加密工作。如要修改登陆密码,可在本程序的修改密码界面输入新的密码,确认后提交,页面的CGI程序将输入值写入htpasswd文件,完成修改。
3.3 修改IP地址模块
本模块负责将用户输入的数据,如获取IP的方式、IP地址、子网掩码、网关等,经过CGI程序的处理,完成对服务器配置的修改(其界面如图4)。首先向网页代码中加入