防火墙基本上是为了预防别人来存取你的网络,进而管制网络上资料的进出,防火墙一端连接外部的网络(经由真实的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|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.