Linux代理服务器实现共享上网

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
7.3.2 配置两块网卡
要作为IP代理服务器的这台电脑,必须安装两块网卡,而且必须确认两块网卡eth0和eth1工作正常。关于网卡的配置,请大家参看本篇的第三章。而在配置网卡的过程中,可以使用以下命令来使得网卡重新加载:
2) 将所有的规则清空:
/sbin/ipchains –F forward
/sbin/ipchains –F input
/sbin/ipchains –F output
3) 设置链的初始规则,DENY代表丢弃,ACCEPT代表通过:
图7-1 用代理服务器上网
7.1 HTTP代理服务器
代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。
请大家好好体会。
4. 存盘退出;
5. 执行下面的命令,使得新的配置生效:
/etc/rc.d/init.d/squid restart
上面仅仅是一个最基本的设置,squid提供了许多功能强大的可选项,大家可以根据实际情况进行更详尽的设置。在/etc/squid.conf文件中,每一项设置均有详尽的注释,大家可以参看这些帮助为squid作更多的设置。
1. 设置http/https/ftp的代理端口号:
代理端口的默认值是3128,可以根据自己的喜好修改。但是要注意的是,千万不能与一些著名的端口冲突,例如POP端口——110等。如果你不是十分熟悉,就保留默认值吧。
下面就是在/etc/squid.conf文件中的一句:
http_port 3128
Linux代理服务器实现共享上网时间:2005-03-16 20:19 来源:网管之家 字体:[大 中 小]为了节省和控制上网开支,许多公司及办公室采取了申请一条DDN专线,将整个公司或办公室连成一个局域网,然后让整个局域网共享这条DDN专线上网。在这种情况下,如下图所示,我们必须通过一个代理服务器来实现。
这样,squid就会完成安装,并做了相应的初始设置。
7.1.2 配置初步
Squid Proxy Server仅有一个配置文件——/etc/squid.conf。我们必须对它进行相应的修改才能适用于我们的系统。下面就是一些最基本的配置选项。我们可以用vi打开这个文件进行编辑。
图7-4 修改后的代理服务器
7.2 IP代理服务器
使用HTTP代理服务器,可以使局域网中的每一台电脑能够获得http/https/ftp三种服务。接下来我们讨论如何让LINUX成为一个连接局域网和Internet无缝连接的一个IP代理服务器。
在Internet中,每个主机都必须有一个唯一的IP地址。现在的IP协议是IPV4,第四版本的IP协议,在设计它的时候,尽管人们已经大胆地使用了32位地址(大约可以表示320亿个不同地址),但是仍然无法满足日益增长的网络需求。所以网络界已经开始研究和过渡到IPV6(采用128位地址,可以表示320亿的四次方个不同地址)。但在尚未采用新的IP协议的时候,人们只能使用一些折衷的方法。
2. 为了更好地使用squid代理服务器,我们可以进行更加详细的设置,单击“高级…”按钮,进入如图7-3所示的代理服务器设置对话框。
图7-3 代理服务器设置对话框
由于Squid是一个http和ftp的代理服务器,所以我们应该将使用代理服务器的协议修改为只有http和ftp,修改后如下图所示:
7.1.3 客户端设置
下面我们以IE为例,简单说明局域网上的客户机的设置。
1.打开IE,在菜单栏上选择“工具”® “Internet选项”®“连接”®“局域网设置”,将出现如下图所示的对话框:
图7-2 局域网设置
如图所示,选中“使用代理服务器”选项,并且填上代理服务器的IP地址192.168.9.1以及代理端口号3128。
/etc/rc.d/init.d/network restart
将两块网卡的IP地址按实际情况设置好,一个是局域网内的IP地址,一个是连接Internet的公用IP地址。例如:
我们用第一块网卡(eth0)将IP代理服务器连接到内部网交换机上,则将内部网的IP地址给第一块网卡。
7.3.3 设置IP的转发规则
根据LINUX的内核版本不同,LINUX所提供的IP转发规则设置工作也不一样。在早期版本中,用的是ipfwadm,而在新的版本中(LINUX 2.2以后版本)使用的是ipchains。以下就简单地说明如何使用ipchains工具设置IP的转发规则。
1. 设置思路
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.3 安装IP代理服务器 来自7.3.1 重新编译内核
如果你使用的是RedHat LINUX 6.0,那么就请跳过这个小节。因为在RedHat LINUX 6.0中已经完成了这个部分的工作了。否则,请确认以下选项是否与要求一致。
IP:forwarding/gatewaying(CONFIG_IP_FORWARD)[Y/n] y
lo interface:简写为lo,它是一个本地环路接口。假如包是由一个本地的进程为另一个本地进程产生的,那么它们通过lo口进出。
4. 配置实例
下面给出一个配置实例,汉字部分就是注解。
1) 在开始说明一下脚本文件,和设定运行时的显示:
#!/bin/sh echo “Starting ipchains rules….”
为了让这个IP转发规则能够在一启动就生效,我们必须在/etc/rc.d/rc.local中加上一行:
/etc/ipchains.set
3. 基础知识
LINUX内核在一启动时规定了三个规则表,这些表称为链。分别是进入(input),外出(output),中转(forward)。当一个包从网卡进来的时候,核心使用进入(input)链的规则来决定这个包的命运(通过还是丢弃);如果通过了,那么核心将决定包下一步该发往何处,假如它是送往另一台机器的,核心就运用中转(forward)链规则决定这个包的命运;最后,一个包发送出去之前,核心应用外出(output)链决定这个包的命运。
图7-5 IP代理服务器工作示意图
正如上图所示,在局域网上使用的是私有地址,而网关拥有两个IP地址,一个是内部网的,而另一个则是全球唯一的公用地址。一般来说,申请一条DDN专线,就可以得到8个公用地址。
在后面的章节中,我们将以这个图为原型,讨论具体的设置方法。值得说明的是,在局域网部分,虽然图中只画出了两台,而实际上,最多可以扩充到254台。(因为我们使用的是一个C类地址:192.168.200.0)
并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们使用它的初衷——控制和节省上网费用。
在LINUX中,有一个功能很强大的http/https/ftp的代理服务器程序——Squid Proxy Server,由于它安装简单,使用方便,所以已经被广泛地使用。在RedHat LINUX的安装光盘中已经包含了它。下面我们说说它的使用方法。
现在最常用的方法就是:如果某个网络直接与Internet相连,那就需要先申请一些公用地址,这些公用地址是唯一的,没有重复的。而对于那些不打算直接与Internet相连的网络则采用一些允许重复的“私有地址”。这样,虽然这些私有地址可能被许多网络使用,但是由于它们并不相互通信,所以就不会造成什么影响。按照RFC 1918文件的规定,以下地址为“私有地址”:
http_access allow company
http_access deny all
也就是我们allow(允许)“company”组使用代理服务器,而除了这个组以外的“all”deny(禁止)使用代理服务器。要注意的是,这两句一定不能顺序调换。否则将禁止所有的用户使用。
7.1.1 安装Squid Proxy Server
由于在安装光盘中用Squid的RPM安装包,所以我们可以使用RPM来安装Squid。
rpm –ivh squid-1.1.22-2.rpm
当然,由于这个安装包是在光盘上的,我们要先将光盘mount到文件系统中来,才能够进行安装。
2. 设置前的准备
在设置之前,我们应该对自己所要进行设置的网络环境和要求有一个全面的了解,以便在设置的时候做到心中有数。在本例中我们就是以图7-5所示为参考。
另外,由于IP的转发规则比较多,而且容易变化,所以我们一般建立一个专门的脚本文件(例如:/etc/ipchains.set)来存放这些IP的转发规则。当创建之后,我们要用chmod命令赋予它可执行的权限。然后运行它,这样IP的转发规则就生效了。
一般来说,我们可以采用以下两种思路进行IP的转发规则设置:
1) 先全面禁止所有的输入、输出、转发包,然后根据需要逐步打开所要求的各项服务。这种方法相对来说更安全,但是如果你对要实现的服务和功能不能清楚地知道应该打开哪些服务和端口就不太好办了。
2) 我们也可以先打开所有的输入、输出、转发包。然后禁止一些危险包,IP欺骗包,广播包,ICMP服务类型攻击等。这种方法的缺点就是不够安全。但是比较方便、容易配置。所以本文以这种方法作为设置的思路。
2.添加访问控制组:
我们将需要区别开的不同用户定义成一个访问控制组。比如一个公司的内部网的网络IP是192.168.200.0。而且只想区分公司内和公司外的两类用户,则我们就在/etc/squid.conf文件中添加下表的两句:
acl all src 0.0.0.0/0.0.0.0
acl company src 192.168.200.0/255.255.255.0
这样,我们说定义了一个包含所有人的组,和一个包含公司内部网的所有人的组。下面就可以对这两个组分别进行访问权力的设制。
3. 设置每个访问控制组的访问权力:
比如,我们希望公司内部的所有人都能够通过代理服务器上网,而禁止其它的人使用代理服务器上网,则我们就在/etc/squid.conf文件中添加下面两句:
IP address:192.168.200.1 netmask:255.255.255.0
我们用第二块网卡(eth1)将IP代理服务器与DDN专线相连(这个部分的连接一般由DDN专线的提供方ISP设置。则将随着DDN而获得的公用地址给第二块网卡。
IP address:202.101.98.1 netmask:255.255.255.0
相关文档
最新文档