分享
 
 
 

简易防火墙建置与流量统计

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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

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

2. 防火墙的种类

2.1 封包过滤器

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

2.2 代理服务器(Proxy firewalls)

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

3. 开始架设防火墙

网络位址转换 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

3.1 查看网络卡状态

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

ifconfig -a

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

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

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

ifconfig -A | more

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

3.2 配置文件/etc/sysconfig/network

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

其中的 FORWARD_IPV4 要设为 yes,才可以去启动 IP 伪装转换

3.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

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

3.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。

3.5 启动网卡

启动 关闭

执行 ifconfig eth0 up ifconfig eth0 down

执行 ifconfig eth1 up ifconfig eth1 down

3.6 设定路由表

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

route的命令为:

route add -net network address netmask device

网段 真实网段 虚拟网段

网络号(network) 192.192.73.0 192.168.1.0

网络号(network) 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)。

3.7 测试

以 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 来达成这个目的。先针对上述的问题,如果要让内部的机器连接到外部的网络,可先执行:

/sbin/ipchains -A forward -s 192.168.0.0/24 - d 0.0.0.0/0 -j MASQ

/sbin/ipchains -P forward DENY

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

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

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

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

4. 封包过滤防火墙ipchains

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

4.1 ipchains语法

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

ipchains语法:

ipchains 命令 input/forward/output 选项 源ip Port 目的ip port -j目标

范例:

ipchains -A input -p all -s 192.168.1.2 -d eef.oit.edu.tw 23 -j DENY

4.2 ipchains命令

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

--add -A 增加新的 ipchains 规则

--delete -D 删除第一个 ipchains 规则,或某一个 ipchains 规则

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

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

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

--flush -F 将某个 ipchains 规则清除(例如:input、output、forward)这相当于去删除掉规则的功效。

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

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

--new -N 产生一个新的使用者定义规则(user-defined)。

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

--policy -P 设定目标的政策,只有 input,forward,output 可以去设定。

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

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

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

4.3 ipchains参数选项

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

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

例如: -s ! localhost

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

--proto -p [!]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有