◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
实现目的
如果你已经拥有一个小型局域网,现在想以最少的代价让局域网内的计算机都能上网,怎么办呢?目前比较通行的办法就是申请一条专线(如DDN、ADSL等),然后让整个局域网共享这条专线上网。如果不追求上网速度的话,采用这种方法上网是比较经济可取的。当然,采用这种方法共享上网时,首先必须在服务器上设置一个代理服务器,局域网所有计算机都通过这个代理服务器来实现上网。实现技术
代理服务器就是局域上不能直接上网的机器将上网请求发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存,然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。
通过代理服务器上网不仅可以节省上网费用,还可以进行一些网站的过滤和控制的功能。
在Linux中,比较常用的代理服务器程序是Squid Proxy Server,该软件安装简单,使用方便,深受广大Linux用户的喜爱,而且在RedHat Linux的安装光盘中就已经包含了它。本例简单介绍一下它的用法。实现方法
1、安装Squid Proxy Server
先将光盘mount到文件系统中,再安装Squid的RPM安装包。安装时可以使用RPM来安装Squid。
rpm –ivh squid-1.1.22-2.rpm
运行上述命令,squid就会完成安装,并做了相应的初始设置。
2、配置
Squid Proxy Server只有一个配置文件/etc/squid.conf。在使用之前,必须先对它进行相应的修改,这样才能适用于相应的系统。修改时可用vi打开并编辑该文件。对Squid Proxy Server最基本的配置主要有:
(1)http/https/ftp的代理端口号
代理端口的默认值是3128,在不与其它端口(如:POP端口为110等)冲突的前提下,可以根据自己的喜好对它进行修改。如果你对修改该端口没有信心,建议保留默认值。
文件/etc/squid.conf中代理端口号的设置语句为:
http_port 3128
(2)添加访问控制组
我们将需要区别开的不同用户定义成一个访问控制组。如一个学校的局域网的网络IP
是202.197.89.0。而且只想区分学校内和学校外的两类用户,则我们就在/etc/squid.conf文件中添加下表的两句:
acl all src 0.0.0.0/0.0.0.0
acl campus src 192.168.89.0/255.255.255.0
这样就定义了一个包含所有人的组,和一个包含学校局域网的所有人的组。下面就可以对这两个组分别进行访问权力的设制。
(3)设置每个访问控制组的访问权力
如果我们希望学校内部的所有人都能够通过代理服务器上网,同时又禁止其它的人使用代理服务器上网,则我们就在/etc/squid.conf文件中添加下面两句:
http_access allow campus
http_access deny all
即只allow(允许)“campus”组使用代理服务器,除了该组以外的“all”deny(禁止)使用代理服务器。需要注意的是,这两句一定不能顺序调换。否则将禁止所有的用户使用。
(4)存盘退出
(5)执行下面的命令,使得新的配置生效
/etc/rc.d/init.d/squid restart
上述内容仅仅是一个最基本的设置,squid提供了许多功能强大的可选项,用户可以根据实际情况进行更详尽的设置。在/etc/squid.conf文件中,每一项设置均有详尽的注释,在设置时可查看这些帮助。
3、客户端设置
以IE为例,简单说明局域网上的客户机的设置。
(1)打开IE,在菜单栏上选择“工具”®;“Internet选项”®;“连接”®;“局域网设置”,然后选中“使用代理服务器”选项,并且填上代理服务器的IP地址202.197.9.1以及代理端口号3128。
(2)为了更好地使用squid代理服务器,我们可以进行更加详细的设置,单击“高级…”按钮,进入代理服务器设置对话框,由于Squid是一个http和ftp的代理服务器,所以我们应该将使用代理服务器的协议修改为只有http和ftp。
4、IP代理服务器
使用HTTP代理服务器,可以使局域网中的每一台电脑能够获得http/https/ftp三种服务。同样,Linux也可设置成为一个局域网和互联网无缝连接的一个IP代理服务器。
通常情况下,如果某个网络直接与Internet相连,那就需要先申请一些公用地址,即我们常说的“实IP”,这些IP地址是唯一的,没有重复的。而对于那些不打算直接与互联网相连的网络则采用一些允许重复的“私有地址”。这样,虽然这些私有地址可能被许多网络使用,但是由于它们并不相互通信,所以就不会造成什么影响。按照RFC 1918文件的规定,“私有地址”包括:
1个A类地址:10.0.0.0
16个B类地址:172.16.0.0~172.31.0.0
256个C类地址用于私用地址:192.168.0.0~192.168.255.0
使用这些网络地址来定义局域网,然后通过一个网关或其它可以执行“网络地址翻译”功能的其它系统与Internet相连。这样,在局域网上使用的是私有地址,而网关拥有两个IP地址,一个是局域网的,而另一个则是全球唯一的公用地址。一般来说,申请一条DDN专线,就可以得到8个公用地址。
5、安装IP代理服务器
(1)重新编译内核
如果你使用的是RedHat Linux 6.0,则不需要重新编译内核。因为在RedHat Linux 6.0中已经完成了这个部分的工作了。如果不是,请确认以下选项是否与要求一致。
IP:forwarding/gatewaying(CONFIG_IP_FORWARD)[Y/n] y
IP:optimize as router not host(CONFIG_IP_ROUTER)[Y/n] y
NetWork firewalls(CONFIG_FIREWALL)[y/n] y
TCP/IP networking(CONFIG_NET)[y/n] y
IP:firewalling(CONFIG_IP_FIREWALL)[y/n] y
IP:masquerading(CONFIG_IP_MASQUERADE) y
(2)配置两块网卡
要作为IP代理服务器的这台计算机,必须安装两块网卡,而且必须确认两块网卡eth0和eth1工作正常。关于网卡的配置,请参阅相关书籍。
在配置网卡的过程中,可以使用以下命令来使得网卡重新加载:
/etc/rc.d/init.d/network restart
将两块网卡的IP地址按实际情况设置好,一个是局域网内的IP地址,一个是连接Internet的公用IP地址。如:
用第一块网卡(eth0)将IP代理服务器连接到局域网交换机上,则将局域网的IP地址给第一块网卡。
IP address:192.168.89.1 netmask:255.255.255.0
用第二块网卡(eth1)将IP代理服务器与DDN专线相连(这个部分的连接一般由DDN专线的提供方ISP设置。则将随着DDN而获得的公用地址给第二块网卡。
IP address:202.197.89.1 netmask:255.255.255.0
(3)设置IP的转发规则
根据Linux的内核版本不同,Linux所提供的IP转发规则设置工作也不一样。早期版本用的是ipfwadm,而在新版本中(Linux 2.2以后版本)使用的是ipchains。
配置实例(汉字部分就是注解):
1)在开始说明一下脚本文件,和设定运行时的显示:
#!/bin/sh echo “Starting ipchains rules….”
2)将所有的规则清空:
/sbin/ipchains –F forward
/sbin/ipchains –F input
/sbin/ipchains –F output
3)设置链的初始规则,DENY代表丢弃,ACCEPT代表通过:
/sbin/ipchains –P forward DENY
/sbin/ipchains –P input ACCEPT
/sbin/ipchains –P output ACCEPT
4)设置内部IP变量:
external_interface=192.168.89.1
5)设置本地环路lo的的规则:
/sbin/ipchains –A input –j ACCEPT –i lo
/sbin/ipchains –A output –j ACCEPT –i lo
由于,在本地进程之间的包,我们应该让它们顺利地通过,所以在此我们应该将input和output两条链均设置为通过(ACCEPT),注意,由于是本地环路,所以不存在forward(转发链)。
6)防止IP欺骗:
/sbin/ipchains –A input j DENY –i eth1 –s 192.168.89.0/24
/sbin/ipchains –A input –j DENY –i eth1 –d 192.168.89.0/24
/sbin/ipchains –A output –j DENY –i eth1 –s 192.168.89.0/24
/sbin/ipchains –A output –j DENY –i eth1 –d 192.168.89.0/24
所谓IP欺骗是指在IP包中存在着不可能的IP源地址或目标地址。eth1是一个与外部Internet相连,而192.168.89.0则是局域网的网络号,也就是说,如果有一个包从eth1进入主机,而说自己的源地址是属于192.168.89.0网络,或者说它的目标地址是属于这个网络的,那么这显然是一种IP欺骗,所以我们使用DENY将这个包丢弃(第一、二句)。
192.168.89.0/24表示网络号是192.168.89.0而子网掩码是255.255.255.0,就代表了所有属于网络192.168.89.0的IP地址。
同样,如果有包要通过eth1向互联网,而且它的源地址或目标地址是属于网络202.197.89.0,那么显然也是不可能的。我们仍然使用DENY将它丢弃。
7)防止广播包从IP代理服务器进入局域网:
/sbin/ipchains –A input –j DENY –i eth0 –s 255.255.255.255
/sbin/ipchains –A input –j DENY –i eth0 –d 0.0.0.0
/sbin/ipchains –A input –j DENY –i eth0 –s 240.0.0.0/3
当包的源地址是255.255.255.255或目标地址是0.0.0.0,则说明它是一个广播包,当广播包想进入eth0时,我们就应该DENY,丢弃它。而240.0.0.0/3则是国际标准的多目广播地址,当有一个源地址是属于多目广播地址的包,我们将用DENY策略,丢弃它。
8)设置IP包转发,使得局域网访问Internet的包能够顺利地转发到eth1。
/sbin/ipchains –A forward –j ACCEPT –i eth1 –s 192.168.89.0/24
/sbin/ipchains –A forward –j ACCEPT –i eth1 –d 192.168.89.0/24
9)启动IP Masquerading rules:
echo “1” > /proc/sys/net/ipv4_forward
10)增加一些专用模块:
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_quake
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_user
/sbin/modprobe ip_masq_raudio
11)设置eth0的IP转发规则:
/sbin/ipchains –A forword –j MASQ –I eth0 –s 192.168.89.0/24
12)假如你想禁止局域网上的一台主机192.168.89.5访问互联网,则可以设置:
/sbin/ipchains –A forward –j DENY –i eth1 –s 192.168.89.5/32
/sbin/ipchains –A forward –j DENY –i eth1 –d 192.168.89.5/32
6、客户端设置
设置了IP代理服务器后,只须将客户端网卡的TCP/IP属性中网关设置为192.168.89.1就可以无缝地与互联网相联了。 Q & A
问:在互联网中,每个计算机都必须有一个唯一的IP地址,那么,IP地址够用吗?
答:现在的IP协议是IPV4,第四版本的IP协议,在设计它的时候,尽管人们已经大
胆地使用了32位地址(大约可以表示320亿个不同地址),但是仍然无法满足日益增长的网络需求。所以网络界已经开始研究和过渡到IPV6(采用128位地址,可以表示320亿的四次方个不同地址)。但在尚未采用新的IP协议的时候,人们只能使用一些折衷的方法,即采用本例所介绍的通过代理服务器上网的方法,这样,在一定程度上缓解了IP地址与日益增长的网络需求之间的矛盾。
问:使用ipchains工具设置IP的转发规则的基本思路是什么?
答:可以采用以下两种思路进行IP的转发规则设置:
(1)先全面禁止所有的输入、输出、转发包,然后根据需要逐步打开所要求的各项服务。这种方法相对来说更安全,但是如果你对要实现的服务和功能不能清楚地知道应该打开哪些服务和端口就不太好办了。
(2)也可以先打开所有的输入、输出、转发包。然后禁止一些危险包,IP欺骗包,广播包,ICMP服务类型攻击等。这种方法的缺点就是不够安全。但是比较方便、容易配置。本例就是以这种方法作为设置的思路。
问:在使用ipchains工具设置IP的转发规则前需要做什么准备?
答:在设置之前,我们应该对自己所要进行设置的网络环境和要求有一个全面的了解,以便在设置的时候做到心中有数。
由于IP的转发规则比较多,而且容易变化,所以我们一般建立一个专门的脚本文件(例如:/etc/ipchains.set)来存放这些IP的转发规则。当创建之后,我们要用chmod命令赋予它可执行的权限。然后运行它,这样IP的转发规则就生效了。
为了让这个IP转发规则能够在一启动就生效,我们必须在/etc/rc.d/rc.local中加上一行:
/etc/ipchains.set
代理服务器() | 代理服务器ip评论(0) | 引用免费代理服务器ip通告(0) | 所属分类:代理服务器文摘|文献资料
清除代理服务器上cache记录 (2009-11-6 0:33:50)
9415端口的http代理服务器 ,9415端口 (2009-11-4 22:7:40)
代理服务器常用端口 (2009-11-2 19:45:40)
匿名代理服务器--双刃剑 (2009-10-29 18:0:53)
代理服务器完全解析(二) 连载 (2009-10-29 13:54:7)
代理服务器完全解析(一) 连载 (2009-10-29 13:48:31)
中国国内各省代理服务器-2009年10月23日更新-200条 (2009-10-23 11:0:14)
代理服务器相关关键词 (2009-10-22 21:18:16)
最新http代理服务器列表国内国外,美国代理服务器-2009年10月22日更新 (2009-10-22 10:35:56)
代理猎手的妙用 (2009-10-21 23:1:8)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。