如何用squid代理服务器对LAN上的用户进行存取控制$如何设置DHCP服务器

摘自互联网

如何用squid代理服务器对LAN上的用户进行存取控制/如何设置DHCP服务器

作者:吴阿亭 [Linux应用版版主]




概述:公司局域网上有40多个用户通过一台Linux proxy server(sh5)上网,
为了方便地控制哪些用户可以上网,哪些用户禁止上网,我设置了另
一台Linux DHCP server(shopu),在这台DHCP服务器上记有每台机器
网卡的物理地址,为每个物理地址分配一个固定的IP地址;因此在
proxy server上用IP地址来控制用户存取,以此达到目的。

软件环境:Redhat Linux

实现方法:

一. 安装并设置DHCP,为每台机器固定IP地址,初期工作量较大,要记下
每台机器的物理地址。
1.Redhat 随盘附有实现DHCP服务器(dhcpd)和DHCP客户的软件包(dhcpcd),
若你安装系统时没装,也可以以后安装
#rpm -ivh dhcp*.rpm
2.安装后,你需要在/etc目录下创建配置文件/etc/dhcpd.conf,下面
是我的配置的前面一部分。
[root@shopu /etc]# more dhcpd.conf
subnet 192.168.11.0 netmask 255.255.255.0 {
range 192.168.11.30 192.168.11.79;
default-lease-time 86400;
max-lease-time 259200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.11.255;
option routers 192.168.11.1;
option domain-name-servers 192.168.11.1;
option domain-name "yourowndomain.com";
}
host JepheWu{
hardware ethernet 11.22.33.44.55.66;
fixed-address 192.168.11.12;
option host-name "Jephe Wu";
}
注: 把每个人的网卡物理地址加在后面(略)。

3. 你仍需要在/etc下创建一空文件叫/etc/dhcpd.leases, run
# touch /etc/dhcpd.leases
4. 至此,你局域网上的的用户应能自动获得被你用物理地址固定的IP
地址,如我的机器将获得11.12。
注:你需要设定tcp/ip为'通过DHCP获得IP地址',运行winipcfg去检查。

二. 在另一台linux server上安装squid proxy server,Redhat 5.2 CD
附带了squid-1.1.22-2 rpm package. squid proxy 默认配置文件
在/etc/squid.conf .其中的大多数配置勿需改动,仅改动很小一部分:
1. http/ftp 代理端口号,我用3333.
http_port 3333

2.下面就要添加存取控制表了,我按公司部门来命名每一个存取控制表名,
每一行中指定包括在这个组中的机器IP地址。

acl all src 0.0.0.0/0.0.0.0
acl isd src 192.168.11.12/32 192.168.11.11/32 192.168.11.14/32
acl account src 192.168.11.15/32 192.168.11.16/32
..........
3. 接着指明这些组可上网,象下面这样:
http_access allow isd
http_access allow account
http_access deny all
上面的例子除了允许isd和account两个组中的用户可通过该proxy server
上网外,其它人全部拒绝存取。

4.还有其它更多的控制方法,例如如何禁止访问某些网站。
可参考/etc/squid.conf中的解释。

5.若对文件/etc/squid.conf有改动,则在改动后做
/etc/rc.d/init.d/squid restart重读配置文件即可,很方便。

注:

1. 据我的经验,Linux下的DHCP功能非常稳定,唯一不太方便的是若你在LAN上
的任意一台windows pc上安装了sygate,wingate之类的windows代理软件,
即使你没有enable他们的dhcp功能,其它windows pc也会因此避开linux
dhcp server,而去寻找装了sygate/wingate的PC。故当你用winipcfg发现
不能正确获得IP地址时,检查你的用户是否在他们自己的PC上装了它们。

2. 关于如何设定Linux下的DHCP服务,请参考更详细的介绍:
http://www.pcquest.com/may98/dhcp.html

3.据我的经验,觉得随 Redhat Linux 5.2 附带的squid-1.1.22-2版本最为稳定,
其它的个别2.x的版本有bug.

4.Squid能方便地做为http和ftp的代理,假若你的运行squid的服务器IP地址为
192.168.11.5,并在 /etc/squid.conf中设置了http端口号为3333,那么你在用
浏览器访问互联网时,就设置所有的协议代理服务器为192.168.11.5,端口与
为3333 ,也可以在一些有proxy server选择设置的客户端软件中使用,
如Yahoo message,断点续传软件。

Jephe