序言
防火墙基本上是为了预防别人来存取你的网络,进而管制网络上资料的进出,防火墙一端连接外部的网络(经由真实的 IP),另一端则连接内部的网络(虚拟的IP),将你内部的网络与外部的网络给隔离开,防火墙成了进入你内部网络的唯一通道,因此任何进出的资料都要经过防火墙,再经由防火墙来决定是否能够通行,因此对于安全性更多加了一份保障。
另外在本文中也介绍两个重量级的软件,方便监看网络流量和过往的网络封包,这也应是防火墙中的功能之一。
第 1 章 防火墙的种类
1. 封包过滤器
封包过滤器的功能为取得每一个数据包,根据设定的规则去进行过滤,看是否允许数据包的传送或是拒绝封包,数据包过滤器存在于网络层,而且不会影响到数据包中的资料。在 RedHat Linux 中有一个 ipchains的 套件(6.0以上已内含),可以经由它来做数据包过滤器。
2.代理服务器(Proxy firewalls)
代理服务器又常被称为应用程序网关,允许通过防火墙间接进入互连网。
第 2 章 开始架设防火墙
网络位址转换 NAT(Netword Address Translation)
由于互连网的发展愈来愈蓬勃,电脑的数量也跟著急遽增加,导致目前 IP 不足,一 IP 难求的现象,所以解决之道要使用虚拟的 IP,相信虚拟 IP 必会成为未来的趋势。网络上保留了特定 IP 供给私人虚拟网络使用,在真实的网络上将不会找到这三组 IP,这些虚拟 IP 位址为:
Class A 10.0.0.0 ~ 10.255.255.255
Class B 172.16.0.0 ~ 172.31.255.255
Class C 192.168.0.0 ~ 192.168.255.255
§ 2.1 查看网络卡状态
首先必须要有两张网络卡介面,一张对外(使用真实 IP)eth1,一张对内(使用虚拟 IP)eth0,执行
ifconfig - a
会出现网络卡的设定值,看是否两张网络卡都有抓到。
在这里要注意的是,可能你抓到的是 eth0 和 eth1的设定值是相反的,也就是说 eth0 对应到的是真实的 IP、eth1 对应到的是虚拟 IP,以笔者的实作,如果是这样的话,必须要做修改,否且网络会连不出去,在下面会提到。
有可能在装好系统开机时,可能会卡在开机时的画面,可能是这样子的话,建议拿掉一张网络卡重开机,设定完之后再插上。
ifconfig - A | more
查看目前所启动的网络卡界面,目前为全设好的状态
§ 2.2 配置文件/etc/sysconfig/network
若只有有一张网卡,那我们就直接手动安装另一张网卡,首先切换目录到 /etc/sysconfig 中,有一个档案 network,其内容为:
其中的 FORWARD_IPV4 要设为 yes,才可以去启动 IP 伪装转换
§ 2.3 э/etc/sysconfig/network-scripts/ifcfg-eth1
接著到 /etc/sysconfig/network-scripts 目录中,会有下列档案
目前我们要注意的是 ifcfg-eth0、ifcfg-eth1 这两个档案,在你安装完之后它只有 ifcfg-eth0 这个档案,并没有 ifcfg-eth1。首先将 ifcfg-eth0 复制成 ifcfg-eth1,执行
cp ifcfg-eth0 ifcfg-eth1
,其中 ifcfg-eth1 为对外网络卡的设定档,依自己的设备去修改,其内容为:
第一行指定网络卡的界面为:eth1
第三行指定广播位址为:192.192.73.255
第四行指定IP位址为:192.192.73.35
第五行指定网络遮罩为:255.255.255.0
第六行指定网络号码为:192.192.73.0
第七行指定是否在开机后去启动网络卡界面
§ 2.4 配置文件/etc/sysconfig/network-scripts/ifcfg-eth0
在这我们直接修改设定档 ifcfg-eth0,做为内部虚拟的网络卡介面,其内容为:
第一行指定网络卡的界面为:eth0
第三行指定广播位址为:192.168.1.255
第四行指定IP位址为:192.168.1.1
第五行指定网络遮罩为:255.255.255.0
第六行指定网络号码为:192.168.1.0
第七行指定是否在开机后去启动网络卡界面
在这我们指定的内部网络,其中网络号码为 192.168.1.0,广播号为 192.168.1.255
所以真正可用的虚拟 ip 位址为 192.168.1.1 ~ 192.168.1.254。
§ 2.5 启动网卡
启动: 关闭:
执行: ifconfig eth0 up ifconfig eth0 down
执行: ifconfig eth1 up ifconfig eth1 down
§ 2.6 设定路由表
当上述的配置文件设定完、启动之后,我们必须替这两个网络去建立 route(路由)。
route的命令为:
route add -net network address netmask device
网段 真实网段 虚拟网段
网络号(network) 192.192.73.0 192.168.1.0
网络掩码(netmask) 255.255.255.0 255.255.255.0
网关(gateway) 192.192.73.1 192.168.1.1
真实网段路由的设法:
route add -net 192.192.73.0 netmask 255.255.255.0 gw 192.192.73.1
虚拟网段路由的设法:
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
其路由表为:
route -n
这样子就安装好了两张网络卡,eth1 就做为对外部的网络卡(真实的 IP),eth0 做为对内部的网络卡(虚拟 IP)。