发新话题
打印

[技术文献] DIY自己的IPCop全功能防火墙

DIY自己的IPCop全功能防火墙

ipcop的功能

现在,虽说我们把这台路由器的显示器都取了,但在任何一个web浏览器的地址栏中输入前面你所记下的那个url地址,我们就可从任意一台客户端计算机上连接到这台路由器的管理界面上来。确信你在url中指定了相应的端口,否则的话你所得到的仅仅只是一个错误提示的页面内容。成功连接后,我们可看到ipcop中有大量的功能设置选项可供用户进行详细配置。现在就让我们来开始看看它的具体功能吧。

1、dsl设置

对一个dsl用户来说,当他们访问ipcop的欢迎页面时会看到相应的提示信息(如图21所示),首先要做的事情就是对这些提示信息作相应的处理。随便哪个用户只要在他们的浏览器地址栏中输入这台ipcop路由器的主机名或ip地址(加上相应的端口号)都可看到这些信息。


图21:dsl用户连接时看到的错误提示信息

出现这个错误信息的原因是由于我们没有指定相应的dsl帐号与密码的缘故,要完成这些信息的指定,我们可进入到“network”菜单下的“dialup”选项,不过要使用那个admin或root用户的身份登录进入。图22显示的是是pppoe连接中所有可用的配置选项内容。

图22:dsl帐号设置


3、端口转发和动态dns

像ipcop这样的基于nat(网络地址转换)的路由器,它们都会丢弃所有来自于因特网对内部网络的数据请求,因为这样的话能够保证局域网内计算机的安全,保证其免于受到来自于因特网上不明来源计算机的直接访问。但因此就引发出另外一个问题,当我们想允许一些来自于因特网上的数据请求时ipcop路由器会不分青红皂白一律加以拒绝,比如说我们在局域网中安装有web或ftp服务器时,来自于外网的请求便不能成功连接到这样的服务器上。因此,像那些商用的nat路由器一样,ipcop也可为那些特定的因特网请求进行转发,把它们指定到局域网中的某些机器上。端口转发的设置是通过被称之为“port forwarding”的功能来完成的。

下面笔者给大家举个例子来说明怎样为一台局域网中的web服务器添加一条端口转发规则,如下图27所示。在这个新规则的添加窗口中,我们填入web服务器的ip地址192.168.0.168作为目的ip地址,并且指定http源端口为端口80(对来自于因特网那一方的访问而言),目的端口也是设定为这一个数值(即我们本地内网中的客户端计算机192.168.0.168)。在“remark”这一项中,可输入比较简单的信息来标明这样规则的名称及用途,在我们的这个实例中,是填入的“webserver”这样一个简单信息,表明这条规则是针对局域网中的web服务器的。



图27:添加一条端口转发规则

然后再点击“添加/add”按钮,这样这条规则就被添加到此窗口下部的规则列表中了,并且马上就可开始发挥作用,供用户使用了。

如果你在外面的网络中,例如像在办公室中,想远程访问位于家庭局域网中的某一台客户端计算机,可能会发现,又有一个难题摆在我们的面前。大多数的isp分配给用户的ip地址都是动态的,在用户连接时从isp处所获得的公网合法ip地址可能每次都会不同,这就意味着这台路由器(包括那些使用端口转发服务的内网服务器)只要它每次重新启动后再次连接到isp时所获得的ip地址都会是不同的,那我们不可能每次都记下这个频繁变化的ip地址吧,况且这样也不现实,要是当你在外面的时候路由器重新启动或者是重新连接到因特网了,我们是很难确定它使用的是哪个ip地址的。幸运的是,动态dns(dynamic dns)提供了一种办法来解决这个难题。

动态dns服务可为我们提供一个子域名,这个子域名总是指向经常进行改变的你那台路由器的ip地址。一般情况下,要实现这样的功能要在你局域网计算机上运行一个客户端软件,当你网络中的wan接口的ip地址已经改变后这个客户端软件可自动检测到,并且它会通知那台动态dns服务器的服务程序让它来获取到这个新的ip地址。不过,令人比较高兴的是,ipcop已经在它的系统中内建了一个这样的客户端程序,我们就不需要在某一台局域网计算机上来运行这个程序了。



图28:设置动态dns客户端

这个设置过程的开始要做的就是获得某个动态dns服务提供商的使用帐号,当然,如果你已经有了这样的一个帐号,那就可以马上进入到设置过程。有些的动态dns服务提供商,例如像www.dyndns.org,会提供免费的使用帐号。我们就可使用这样的服务提供商的免费帐号信息,把它们输入到ipcop的相关界面中(如图28所示)。因为有某些isp有这方面的要求或者说用户的因特网连接是通过代理服务器的,ipcop的客户端程序能够处理那些通过一台http代理的操作(即选中behind a proxy那个选择框);并且“”这个选择框是用来处理子域的。

最后,ipcop需要知道到底怎样来确定它的ip地址,一般情况下,对绝大部分网络而言正确的设置是选择第一个选项的内容,即由“红色”接口来确定它的ip地址,如图29所示。第二个选项的内容只有在这样一种情况下才会使用,即当在ipcop路由器和因特网连接之间还有第二台路由器时就可选用这个选项。

图29:确定动态dns ip地址的方法


4、代理服务器

一台代理服务器的作用基本上就是用来对web网站进行缓存,即把web网站中的内容保存在本地计算机上。当我们使用一台代理服务器连接到因特网时,web浏览器并没有真正地直接连接到远程的站点上,可以这样说,实际上只是对代理服务器进行查询。接收到来自于用户的数据请求后,这台代理服务器会检查一下看是否在它的缓存中已经包含了所请求站点内容的一份拷贝,并且也查询一下因特网上是否有更新版本的数据,如果本地有用户所需的内容,就直接发送给所请求的用户,而本地没有用户所需的数据或因特网上的相应数据已经更新,代理服务器就从因特网上下载这些数据再发送给用户。使用这种方式就能够确保仅仅只能最新的数据才需要从因特网上下载下来,其余的部分都可由本地局域网来提供。这种方式可为用户节省大量的带宽,特别是在局域网中有许多用户同时在使用浏览器时。另外,可能还有一个重要之处就是事实上当用户经常访问某个站点时会发现页面的下载速度更快了,特别是多个用户同时访问同一个网站时,主要是因为大部分的因特网请求数据都是从本地传送过去的,故用户就能感觉到速度上的明显变化。

在这有两种不同类型的代理服务器功能。经典型的代理服务方式(classic proxy)在一个特殊的端口上侦听对因特网的请求,通常这些端口为8080或3128。而如果用户想使用这样的代理服务器的话,就必须手工配置他们的浏览器相关设置值,否则的话是不能够使用这台代理服务器的。

第二种类型提透明的代理服务方式(transparent proxy),它可侦听任何的http连接请求,并且不需在客户端计算机上作任何的更改。使用这种方式的话,内网用户要想绕开这台代理服务器是不可能的了,这也就是为什么那些大的公司都喜欢使用这种配置方式的缘故:这种代理方式可让他们来限制用户对某一些站点的访问,更严格地控制用户访问因特网的权限与自由。

ipcop对这两种代理方式都可支持,不过在默认状态下代理服务功能是被关闭的。要打开它的代理服务功能也是能简单的,只要在配置页面中选择“services”,然后再选择“proxy”。在这,对安装在这台路由器上的每一个网络接口,都可分别单独地开启它们的代理服务功能。因此,对绿色网络接口来说,正确的选项是选中如图30中所示的“enabled on green”这个选择框。如果在你的路由器还安装有一块wlan无线网卡的话,我们也可配置这个接口来使用代理服务功能,只要选中“enabled on blue”这个选项就行了。

图30:代理服务器设置

把“transparent”这个选项给勾选上,就使我们路由器的代理服务器工作在透明代理方式下。选择了这种方式的话,那代理的端口就不用再作设置了。如果我们没有开启这项功能,那在局域网中每一台客户端计算机中的每一个浏览器中都必须手工输入这台服务器和相应的端口号。代理服务器所使用的缓存空间大小能够在“cache management”进行调整,由于这个缓存空间本身就是使用的路由器的硬盘,故极方便我们操作。在我们的这个实例中,选择了缓存空间的大小为40 gb,并且设置了它所缓存的最大目标文件尺寸为不超过32 mb,而最小的文件大小就不需要作设置了。

注意:在这跟大家提个醒的是,当我们选择了一个比较大的缓存容量,点击下保存按钮后,会出现这样的现象:这个web页面会很长时间没有反应,好像死机了一样,这是因为路由器在试着分配所指定的磁盘空间。不要着急,只要耐心等上一会儿,等这个过程结束后就恢复正常了。

最后,在这还有另外一个选项,用来限制进行传输的数据总量。这个功能对那些没有使用包月收费制度的用户来说可能还是很有吸引力的,如果用户接入因特网是按流量大小来收费,这个功能就可防止你每月的因特网服务费超过标准,否则网络中用户常进行大文件的下载很容易使你的流量超出限额,特别是现在bt下载这么流行。


5、监控功能

只要ipcop被配置好后,它便可一直运行着,很有可能过了几个星期后,你就会忘记它的存在了,甚至根本就不曾注意到在你的网络中还有这么一台设备在运行着――至少只要它一直正常工作谁也不会多花时间去注意它。不过如果你是那种喜欢探究问题,并乐意于监控设备运行状态的人,ipcop也提供了大量有关系统和网络状态的相关信息供用户查询,也还包括有各种不同的系统资源利用率图表来供用户了解当前设备的工作状态。图31到图34显示的是一小段时间内的系统和网络信息。



图31:供用户检测系统状态的服务列表



图32:系统运行时间报告



图33:使用linux的ipconfig命令得到的网络状态



图34:绿色接口(局域网)的通信流量


6、日志功能和shell

尽管说来,一个系统中的日志文件的内容看起来让人头疼,远没有那种交互式的状态图表好看,但当问题真正发生的时候,系统的日志记录实际上还是对用户有相当帮助作用的。在ipcop中,可以在“log”这个标签中来查看系统的日志文件内容。



图35:动态dns更新失败的日志记录

有时,使用一个命令行接口界面完成一些功能可能会更方便、更简单,对那些操作熟练的用户来说,根本就不用在图形界面上用鼠标点来点去,直接用一个命令就可。ipcop也提供了一个直接的shell界面来供用户使用(当然,只限于root用户)。有时,当web界面的访问没有响应时,这样的命令行窗口可就派上用场了。图36显示的是当我们使用一个关机命令shutdown now –r来重新启动计算机时屏幕上显示的内容。

图36:使用一个命令来关闭计算机

当然,我们也可以在命令行状态下来安装一些另外的软件。不过在这我们还是强烈建议,即使是那些经验丰富的linux老手,除了那些常见的ipcop安装选项外,最好也是不要在这台路由器上安装另外的附加软件,仅仅只有这一套干净的系统在这运行就行了(当然,你有另外的需求除外)。毕竟,那些附加的软件很有可能会对路由器的安全性能造成一定的危害,谁也不知道现在网络上下载的那些自由软件的安全性到底如何。

结束语

实际上,ipcop还有一些其他的有用功能,限于篇幅就不再详细介绍。其中包括有一个snort入侵检测系统,这个入侵检测系统可设置来监视每一个网络接口,以检测那些可疑活动连接中的已知数据流量标志(如果大家想更多地了解这方面的内容,请参阅有关snort方面的资料)。

在ipcop中还包括有带宽管理(traffic shaping,重组流量)的功能,系统内建有wondershaper程序包。重组流量功能可让用户更充分地利用网络的上行和下行带宽,现在isp所提供的网络带宽还远远不能满足用户的全部要求,特别是对dsl用户来说,他们的上下行带宽是不对称的,上行带宽更是少得可怜。重组流量功能可让用户分配高、中、低的优先权给特定的web服务(端口)。wondershaper对通过网络接口的所有通信流量都进行管理,让它们都按照你所设定的优先权按一定的规则通行,从而满足那些对带宽实时性要求比较高的程序需求,例如voip应用。

最后,ipcop系统还包括有一个ipsec vpn服务器功能,这个功能可处理网络对网络(net-to-net)的vpn通道,例如在两台ipcop路由器之间或一台ipcop路由器和一台商用的ipsec网关之间;它也还可处理主机对网络(host-to-net)的vpn通道,例如在一台单独的运行有ipsec客户端的计算机和ipcop路由器之间。这个ipsec服务器也可处理pre-shared key/password/pass phrase或x.509证书验证方法,不过在ipcop的用户帮助文档中,有关vpn这一段的内容不太完善。因此如果你准备使用这项功能的话,那很有可能会需要用到ipcop网站上有关技术支持相关章节中的一些资源链接,来成功地建立一个vpn通道。

如果你正准备来自己动手diy一台路由器的话,可能会有许多的软件系统可供选择。不过ipcop简单方便的安装方式、丰富的功能设置和设计精美的用户界面可能会引起你的注意,从而进入到你所选择的软件名单中。

TOP

楼主   辛苦了

TOP

哎,不错.我原来一直都是用防火墙的.想不到这些功能直接就可以保护电脑.

TOP

想法是不错,不过操作起来还是有一定的难度。

TOP

DIY并非高手的专利,菜鸟也可以来试一试。

TOP

发新话题