当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > Linux组网入门(6):代理服务器

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 Linux组网入门(6):代理服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 82 ::
收藏到网摘: n/a


作者:fjxufeng

为了节省和控制上网开支,许多公司及办公室采取了申请一条DDN专线,将整个公司或办公室连成一个局域网,然后让整个局域网共享这条DDN专线上网。在这种情况下,如下图所示,我们必须通过一个代理服务器来实现。

图7-1用代理服务器上网


7.1HTTP代理服务器
代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。
并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们使用它的初衷——控制和节省上网费用。
在LINUX中,有一个功能很强大的http/https/ftp的代理服务器程序——SquidProxyServer,由于它安装简单,使用方便,所以已经被广泛地使用。在RedHatLINUX的安装光盘中已经包含了它。下面我们说说它的使用方法。

7.1.1安装SquidProxyServer
由于在安装光盘中用Squid的RPM安装包,所以我们可以使用RPM来安装Squid。
rpm–ivhsquid-1.1.22-2.rpm
当然,由于这个安装包是在光盘上的,我们要先将光盘mount到文件系统中来,才能够进行安装。
这样,squid就会完成安装,并做了相应的初始设置。

7.1.2配置初步
SquidProxyServer仅有一个配置文件——/etc/squid.conf。我们必须对它进行相应的修改才能适用于我们的系统。下面就是一些最基本的配置选项。我们可以用vi打开这个文件进行编辑。
1.设置http/https/ftp的代理端口号:
代理端口的默认值是3128,可以根据自己的喜好修改。但是要注意的是,千万不能与一些著名的端口冲突,例如POP端口——110等。如果你不是十分熟悉,就保留默认值吧。
下面就是在/etc/squid.conf文件中的一句:
http_port3128
2.添加访问控制组:
我们将需要区别开的不同用户定义成一个访问控制组。比如一个公司的内部网的网络IP是192.168.200.0。而且只想区分公司内和公司外的两类用户,则我们就在/etc/squid.conf文件中添加下表的两句:
aclallsrc0.0.0.0/0.0.0.0
aclcompanysrc192.168.200.0/255.255.255.0
这样,我们说定义了一个包含所有人的组,和一个包含公司内部网的所有人的组。下面就可以对这两个组分别进行访问权力的设制。
3.设置每个访问控制组的访问权力:
比如,我们希望公司内部的所有人都能够通过代理服务器上网,而禁止其它的人使用代理服务器上网,则我们就在/etc/squid.conf文件中添加下面两句:
http_accessallowcompany
http_accessdenyall
也就是我们allow(允许)“company”组使用代理服务器,而除了这个组以外的“all”deny(禁止)使用代理服务器。要注意的是,这两句一定不能顺序调换。否则将禁止所有的用户使用。
请大家好好体会。
4.存盘退出;
5.执行下面的命令,使得新的配置生效:
/etc/rc.d/init.d/squidrestart
上面仅仅是一个最基本的设置,squid提供了许多功能强大的可选项,大家可以根据实际情况进行更详尽的设置。在/etc/squid.conf文件中,每一项设置均有详尽的注释,大家可以参看这些帮助为squid作更多的设置。

7.1.3客户端设置
下面我们以IE为例,简单说明局域网上的客户机的设置。
1.打开IE,在菜单栏上选择“工具”®“Internet选项”®“连接”®“局域网设置”,将出现如下图所示的对话框:

图7-2局域网设置
如图所示,选中“使用代理服务器”选项,并且填上代理服务器的IP地址192.168.9.1以及代理端口号3128。
2.为了更好地使用squid代理服务器,我们可以进行更加详细的设置,单击“高级…”按钮,进入如图7-3所示的代理服务器设置对话框。

图7-3代理服务器设置对话框

由于Squid是一个http和ftp的代理服务器,所以我们应该将使用代理服务器的协议修改为只有http和ftp,修改后如下图所示:

图7-4修改后的代理服务器

7.2IP代理服务器
使用HTTP代理服务器,可以使局域网中的每一台电脑能够获得http/https/ftp三种服务。接下来我们讨论如何让LINUX成为一个连接局域网和Internet无缝连接的一个IP代理服务器。
在Internet中,每个主机都必须有一个唯一的IP地址。现在的IP协议是IPV4,第四版本的IP协议,在设计它的时候,尽管人们已经大胆地使用了32位地址(大约可以表示320亿个不同地址),但是仍然无法满足日益增长的网络需求。所以网络界已经开始研究和过渡到IPV6(采用128位地址,可以表示320亿的四次方个不同地址)。但在尚未采用新的IP协议的时候,人们只能使用一些折衷的方法。
现在最常用的方法就是:如果某个网络直接与Internet相连,那就需要先申请一些公用地址,这些公用地址是唯一的,没有重复的。而对于那些不打算直接与Internet相连的网络则采用一些允许重复的“私有地址”。这样,虽然这些私有地址可能被许多网络使用,但是由于它们并不相互通信,所以就不会造成什么影响。按照RFC1918文件的规定,以下地址为“私有地址”:
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相连。如下图所示:

图7-5IP代理服务器工作示意图
正如上图所示,在局域网上使用的是私有地址,而网关拥有两个IP地址,一个是内部网的,而另一个则是全球唯一的公用地址。一般来说,申请一条DDN专线,就可以得到8个公用地址。
在后面的章节中,我们将以这个图为原型,讨论具体的设置方法。值得说明的是,在局域网部分,虽然图中只画出了两台,而实际上,最多可以扩充到254台。(因为我们使用的是一个C类地址:192.168.200.0)

7.3安装IP代理服务器
7.3.1重新编译内核
如果你使用的是RedHatLINUX6.0,那么就请跳过这个小节。因为在RedHatLINUX6.0中已经完成了这个部分的工作了。否则,请确认以下选项是否与要求一致。
IP:forwarding/gatewaying(CONFIG_IP_FORWARD)[Y/n]y
IP:optimizeasrouternothost(CONFIG_IP_ROUTER)[Y/n]y
NetWorkfirewalls(CONFIG_FIREWALL)[y/n]y
TCP/IPnetworking(CONFIG_NET)[y/n]y
IP:firewalling(CONFIG_IP_FIREWALL)[y/n]y
IP:masquerading(CONFIG_IP_MASQUERADE)y

7.3.2配置两块网卡
要作为IP代理服务器的这台电脑,必须安装两块网卡,而且必须确认两块网卡eth0和eth1工作正常。关于网卡的配置,请大家参看本篇的第三章。而在配置网卡的过程中,可以使用以下命令来使得网卡重新加载:
/etc/rc.d/init.d/networkrestart
将两块网卡的IP地址按实际情况设置好,一个是局域网内的IP地址,一个是连接Internet的公用IP地址。例如:
我们用第一块网卡(eth0)将IP代理服务器连接到内部网交换机上,则将内部网的IP地址给第一块网卡。
IPaddress:192.168.200.1netmask:255.255.255.0
我们用第二块网卡(eth1)将IP代理服务器与DDN专线相连(这个部分的连接一般由DDN专线的提供方ISP设置。则将随着DDN而获得的公用地址给第二块网卡。
IPaddress:202.101.98.1netmask:255.255.255.0

7.3.3设置IP的转发规则
根据LINUX的内核版本不同,LINUX所提供的IP转发规则设置工作也不一样。在早期版本中,用的是ipfwadm,而在新的版本中(LINUX2.2以后版本)使用的是ipchains。以下就简单地说明如何使用ipchains工具设置IP的转发规则。
1.设置思路
一般来说,我们可以采用以下两种思路进行IP的转发规则设置:
1)先全面禁止所有的输入、输出、转发包,然后根据需要逐步打开所要求的各项服务。这种方法相对来说更安全,但是如果你对要实现的服务和功能不能清楚地知道应该打开哪些服务和端口就不太好办了。
2)我们也可以先打开所有的输入、输出、转发包。然后禁止一些危险包,IP欺骗包,广播包,ICMP服务类型攻击等。这种方法的缺点就是不够安全。但是比较方便、容易配置。所以本文以这种方法作为设置的思路。
2.设置前的准备
在设置之前,我们应该对自己所要进行设置的网络环境和要求有一个全面的了解,以便在设置的时候做到心中有数。在本例中我们就是以图7-5所示为参考。
另外,由于IP的转发规则比较多,而且容易变化,所以我们一般建立一个专门的脚本文件(例如:/etc/ipchains.set)来存放这些IP的转发规则。当创建之后,我们要用chmod命令赋予它可执行的权限。然后运行它,这样IP的转发规则就生效了。
为了让这个IP转发规则能够在一启动就生效,我们必须在/etc/rc.d/rc.local中加上一行:
/etc/ipchains.set
3.基础知识
LINUX内核在一启动时规定了三个