- 论坛徽章:
- 0
|
局域网内怎样通过控制MAC 地址来上网呀??
看到过一篇文章,可以让Squid控制MAC地址,现转摘如下:
支持基于MAC的控制以及访问带有下划线的URL
由于计算机的IP地址是随时可以更改的,所以即便你设置了ACL限制只有某些IP的计算机可以访问Internet,其它人仍然可以在该计算机关机的情况下,修改成这些允许上网的IP地址后访问Internet。另外,前面我们是使用DHCP来管理内部网络上的计算机的IP地址,每台计算机每次获得的IP地址可能是不一样的,所以,单纯的通过IP地址来控制上网权限并不适合所有的场合,而MAC地址相对是稳定的,一般网卡的MAC地址不能够更改,所以基于MAC地址的用户控制非常适合解决这两种情况带来的问题。
另外,我们访问Internet时,有时候会遇到这样的网站地址:http://www.hello_world.com,在网站的URL地址里面有下划线,这时Red Hat Linux自带的squid软件包可能会报告无法访问该网站。
这些功能需要重新编译squid源代码增加相应的编译选项来实现。下面我们就来看一下如何使用rpm重新编译软件包源代码获得必要的功能。
当文章写到这里的时候,Red Hat Linux网站发布了squid的升级软件包,我们可以从网上获得它的最新源代码rpm包:
ftp://updates.redhat.com/7.2/en/os/SRPMS/squid-2.4.STABLE6-6.7.3.src.rpm
在开始编译前,有一些软件包是需要首先安装,这可能包括rpm-build、sgml-tools,前者在Red Hat Linux的光盘上可以找到,后者可以从这里下载:
ftp://ftp.freesoft.cei.gov.cn/.mirror2/ftp.redhat.com/redhat-7.2/i386/RedHat/RPMS/sgml-tools-1.0.9-12.i386.rpm
安装squid的源代码包
[root@rh73 ~]# rpm -ivh squid-2.4.STABLE6-6.7.3.src.rpm
安装后的源代码包在/usr/src/redhat/SOURCES目录下,我们关心的是另外一个文件/usr/src/redhat/SPECS/squid.spec,这里面有squid的相关编译选项,修改该文件%configure部分如下:
%configure \
--exec_prefix=/usr --bindir=/usr/sbin --libexecdir=/usr/lib/squid \
--localstatedir=/var --sysconfdir=/etc/squid \
--enable-poll --enable-snmp --enable-removal-policies="heap,lru" \
--enable-storeio="aufs,coss,diskd,ufs" \
--enable-delay-pools --enable-linux-netfilter \
--with-pthreads \
--enable-underscores \
--enable-arp-acl \
--enable-err-language=Simplify_Chinese \
--enable-auth-modules="LDAP,NCSA,PAM,SMB,MSNT" # --enable-icmp
--enable-underscores是增加对下划线网址的支持,--enable-arp-acl是增加支持MAC地址方式的鉴权。
开始编译产生新的RPM包:
[root@rh73 ~]# rpm -ba squid.spec
这条命令将根据squid.spec的配置重新编译生成新的rpm包。编译过程视机器性能的好坏而定,大概需要几分钟到几十分钟不等,如果没有什么错误,最后产生的新的rpm包在/usr/src/redhat/RPMS/i386/目录下:squid-2.4.STABLE6-6.7.3.i386.rpm
安装新的rpm包:
[root@rh73 ~]# rpm -Uvh /usr/src/redhat/RPMS/i386/squid-2.4.STABLE6-6.7.3.i386.rpm
注意,这里使用了-U参数,是因为我们前面已经安装过squid的一个较旧的版本,-U参数指出这个操作是对原有版本软件包的升级。现在你的squid就可以支持MAC地址鉴权和带下划线的URL地址了。 
配置squid.conf来支持MAC地址鉴权,在squid.conf里加入这样的内容:
acl allowedmac arp 00:10 C:8F:5B:FF
http_access allow allowedmac |
|