ROS软路由论坛 ROSABC.com 网络方案网络工程交流

 找回密码
 会员注册

QQ登录

只需一步,快速开始

简易防火墙建置与流量统

2014-11-5 11:20| 发布者: admin| 查看: 915| 评论: 0

摘要:   防火墙基本上是为了预防别人来存取你的网络,进而管制网络上资料的进出,防火墙一端连接外部的网络(经由真实的IP),另一端则连接内部的网络(虚拟的IP),将你内部的网络与外部的网络给隔离开,防火墙成了进入你内 ...

  防火墙基本上是为了预防别人来存取你的网络,进而管制网络上资料的进出,防火墙一端连接外部的网络(经由真实的IP),另一端则连接内部的网络(虚拟的IP),将你内部的网络与外部的网络给隔离开,防火墙成了进入你内部网络的唯一通道,因此任何进出的资料都要经过防火墙,再经由防火墙来决定是否能够通行,因此对于安全性更多加了一份保障。另外在本文中也介绍两个重量级的软件,方便监看网络流量和过往的网络封包,这也应是防火墙中的功能之一。

  防火墙基本上是为了预防别人来存取你的网络,进而管制网络上资料的进出,防火墙一端连接外部的网络(经由真实的IP),另一端则连接内部的网络(虚拟的IP),将你内部的网络与外部的网络给隔离开,防火墙成了进入你内部网络的唯一通道,因此任何进出的资料都要经过防火墙,再经由防火墙来决定是否能够通行,因此对于安全性更多加了一份保障。

  另外在本文中也介绍两个重量级的软件,方便监看网络流量和过往的网络封包,这也应是防火墙中的功能之一。

  2.防火墙的种类

  2.1封包过滤器

  封包过滤器的功能为取得每一个数据包,根据设定的规则去进行过滤,看是否允许数据包的传送或是封包,数据包过滤器存在于网络层,而且不会影响到数据包中的资料。在RedHatLinux中有一个ipchains的套件(6.0以上已内含),可以经由它来做数据包过滤器。

  代理服务器又常被称为应用程序网关,允许通过防火墙间接进入互连网。

  3.开始架设防火墙

  由于互连网的发展愈来愈蓬勃,电脑的数量也跟著急遽增加,导致目前IP不足,一IP难求的现象,所以解决之道要使用虚拟的IP,相信虚拟IP必会成为未来的趋势。网络上保留了特定IP供给私人虚拟网络使用,在真实的网络上将不会找到这三组IP,这些虚拟IP位址为:

  3.1查看网络卡状态

  首先必须要有两张网络卡介面,一张对外(使用真实IP)eth1,一张对内(使用虚拟IP)eth0,执行

  会出现网络卡的设定值,看是否两张网络卡都有。

  在这里要注意的是,可能你的是eth0和eth1的设定值是相反的,也就是说eth0对应到的是真实的IP、eth1对应到的是虚拟IP,以笔者的实作,如果是这样的话,必须要做修改,否且网络会连不出去,在下面会提到。

  有可能在装好系统开机时,可能会卡在开机时的画面,可能是这样子的话,拿掉一张网络卡重开机,设定完之后再插上。

  查看目前所启动的网络卡界面,目前为全设好的状态

  若只有有一张网卡,那我们就直接手动安装另一张网卡,首先切换目录到/etc/sysconfig中,有一个档案network,其内容为:

  其中ifcfg-eth1为对外网络卡的设定档,依自己的设备去修改,其内容为:

  第一行指定网络卡的界面为:eth1

  第七行指定是否在开机后去启动网络卡界面

  在这我们直接修改设定档ifcfg-eth0,做为内部虚拟的网络卡介面,其内容为:

  第一行指定网络卡的界面为:eth0

  第七行指定是否在开机后去启动网络卡界面

  启动关闭

  3.6设定由表

  当上述的配置文件设定完、启动之后,我们必须替这两个网络去建立route(由)。

  网段真实网段虚拟网段

  真实网段由的设法:

  虚拟网段由的设法:

  其由表为:

  这样子就安装好了两张网络卡,eth1就做为对外部的网络卡(真实的IP),eth0做为对内部的网络卡(虚拟IP)。

  以eth1做为对内的网络介面,其虚拟IP位址为192.168.1.0~192.168.1.255,因为其第一个为网络号码,最后一个为号,所以可用的虚拟IP为192.168.0.1~192.168.255.254,我们将闸道器(gateway)设为192.168.0.1、子网络遮罩设为255.255.255.0,将192.168.1.2~192.168.1.254之间的IP分配给内部的机器,之后内部的机器就可以互相通讯(ping),但对于要连出去,还需要一个步骤,那就是使用一支程序,ipchains来达成这个目的。先针对上述的问题,如果要让内部的机器连接到外部的网络,可先执行:

  第一个命令会将来源192.168.0.0~192.168.255.255的封包使用IP伪装,将伪装的封包送转送给预设的由,到外部的网络。

  第二个命令会将forward的预设政策设为DENY。

  你可以将这两行命令加在/etc/rc.d/rc.local档案中,使其每次开机时执行。

  对于ipchains的使用,会在下面作更详细的说明。

  若你使用的是新版的Linux,里面都会有ipchains的套件,直接使用就可以让你建立封包过滤防火墙。

  其选项、来源ip、目的地ip、port可以不加,表示为全部。

  范例:

  可以有两种形式来指定,全名方式或缩写方式来表示

  --insert-I插入一个新ipchains规则,其插入需指定规则中的数字,如果数字为1表示为第一个。

  --replace-R取代所选择的规则,其取代需指定规则中的数字。

  --list-L列出所选择设定的ipchains规则,如果没有规则被指定,会列出所有的规则出来。

  --zero-Z将所有规则中的封包和位元组计数器归零它也可以去指定-L,--list(list)选项,会先列出之前的资料,再列出归零的资料。

  --check-C检查封包是否违反所设的规则,这是一个相当有用的测试,其是-s(来源),-d(目的地),-p(协定),-i(界面)更是必要。

  --delete-chain-X删除使用者定义的规则,如果没有指定任何的参数,它将会所有的定义的规则。

  --masquerade-M这个选项可以去查看现在的伪装连接状况(须加上-L选项),或是去设定kernel伪装参数(-S选项)。

  --set-S设定伪装停止时间变数

  --help-h列出描述命令语法的说明。

  可以有两种形式来指定,全名方式或缩写方式来表示

  使用!去定义相反的意义:惊叹号!有not的意义,有许多选项可以加上!去使用,表示不是的意思。

  说明:表示除了localhost的来源位址都可以。

  范例:

  --jump-j指定规则的目标,如果没有指定的话,这条规则算是没有用处。

  --verbose-v完整模式,会列出界面名称、规则、TOS伪装,封包和位元组计数也会列出,须和-L一起使用。

  5.封包过滤防火墙ipchains的操作规则

  进不了192.168.1.1首先列出ipchains的规则表出来:

  分为三大部分:

  功用与input相同,只不过来源地址、目的地位址要对换

  每个所设的规则必须要去符合情况,以及要做些什么(目标)。

  举例来说,你可能要去从IP位址192.168.1.3的ICMP的封包,所以在这里我们的条件必须是协定ICMP及来源位址必须是192.168.1.3,目的地为192.192.69.39这台主机(若不设则为全部),目标是DENY。

  指令写法为:

  5.2命令的用法

  增加新的规则-A:

  范例:

  删除规则-D:

  我们删除ipchains规则有两种方法,首先我们知道在input的规则中只有一个(刚刚所增加的),也是第一个,所以我们可以使用数字来删除.。

  范例:

  说明:删除input规则中的第一条。

  第二种方法是跟增加新的规则差不多,只不过是增加(-A)换成了删除(-D),这种方法在你如果设定了很多的规则的时候很好用,你可以不必去数它到底是第几个,只要照打一遍就行了,当然必须要一模一样才行。

  范例:

  5.3指定协定种类

  TCP(传输控制协定):

  位于应用层,如果应用程序(http、ftp)需要可靠性高的资料传输方式,那么就可以采用TCP,TCP会去检查资料是否安全到达,否则就重新发送资料。将传输的资料以TCP格式成为资料段,交由网络层的IP协定去处理,每一段资料含有一个检查值,接收者用它来验证资料是否受损,如果接收的资料没坏,会传回确认回去;如果资料会便会丢弃。TCP具有可靠性及连线性。

  UDP(使用者资料协定):

  位于应用层,让应用程序直接使用封包传送服务,如IP提供的传送服务,UDP协定并不会去检查封包是否安全到达目的地,因此传送速度快,但却是一个不可靠、非连线性的封包协定。

  ICMP(网络控制讯息协定):

  属于网际层的一部分,利用IP封包的传送,发送它的讯息,ICMP发送的讯息执行了如侦测远端机器是否运作(ping)、资料流的控制(当封包到得太快来不及处理时,目的主机传回一个ICMP的来源讯息给发送者,告诉资料来源暂时停止传送封包)。

  ICMP并没有port,但它还是有它的选项参数可以使用,用来选择ICMP的类型。

  我们可以指定ICMP的名称或是数字代表(可以执行ipchains-hicmp去列出详细的名字)。

  指定来源和目的地的IP位址-s-d:

  来源(-s)和目的地(-d)的表示法有3种:

  范例:

  说明:

  0/0表示指定所有来源的IP位址都会被,你也可以不加-s参数,也是指定所有的来源IP位址。

  5.5重要的指定目标

  除了去指定协定之外,还可以细分去指定它的port

  例如:

  指所有来源位址的port80,其中80也可以用名字来表示www

  其中惊叹号!放置的位址也可以这样指定:

  (1)日期、时间

  (7)封包所经过的网络卡界面:eth0

  (1)日期、时间

  (7)封包所经过的网络卡界面:eth0

  (14)资料段偏移(重新组合资料段封包)

  在这里要提醒使用者,千万不要用远端登入来使用ipchains,因为常会不小心就把自个儿给关在房外,进不了家,有时候为了要测试关掉telnet的功能,就这样连自己也telnet不进去了,当然跑到主机前去修改是免不了的事。

  关闭所有的服务:

  基于安全的理由,我们要把所有对内、对外的窗口给统统关闭起来,执行下列指令将会将进入、输出、转送封包的预设政策设为,这一步最好放在你最后的时候再来做,因为如果先设了所有DENY的规则,则后来设的ACCEPT规则会被先前的DENY给取代。

  启动虚拟IP的伪装服务:

  将内部虚拟IP192.168.0.0~255启动IP封包转送到的网络,使之可以连到的任何地方去。

  ipchains有二支程序去储存、反存我们所设的规则,ipchains-save可以储存一个或所有的规则,它是指令档,会先去读取ipchains的设定档并且储存成档案起来,使用时可以加入-v参数,列出详细的动作。

  范例:

  结果:

  若要恢复ipchains规则,执行下面指令

  9.流量统计

  安装,然后用ntop-d执行即可,执行web输出画面如下:(笔者使用的是1.1版)

  在此笔者只介绍封包纪录功能,其他功能日后再述。假定我们要将记录档至于首页上可以执行snort-C-d-D-l/home/httpd/html/snort,结果如下:

  当然笔者有作一些安全上的管理,否则所有网络的机密便了,况且因为记录所有资料所以档案会长的很快,所以如果你真要如此记录,请注意控制的细节。底下我们再深入看看。

  看到了这里相信大家对ipchains的使用应该有进一步的认识,ipchains的功能实在是很强大,无法去说的很彻底,有些小地方要靠读者去体会才行。另外由ntop,snort可以看出网络是如何不安全性,也希望所有网管人员要多重视。(哎!套一句我女儿说的:说别人说自己:~~)

不良信息举报Q:2000617

软路由

不良信息举报Q:2000617|Archiver|ROS软路由论坛 ROSABC.com 网络方案网络工程交流

GMT+8, 2025-4-30 19:24 , Processed in 0.144521 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部