网关(搭建网桥)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、网络结构
在现有网络中增加防火墙,主要作用为控制内部上网等等。要求可以灵活控制,包括时间段不同控制,流量限制等。
现有网络拓扑图:
由于安装防火墙时要求不需要修改内网服务器和PC机配置,所以采用透明防火墙(网桥模式)。
修改后拓扑图:
防火墙需要三块网卡,其中两块网卡做网桥,一块网卡配置ip做为管理用网卡。内部网络要访问不同网段,数据包需要路由转换,这时就要通过防火墙才能到达路由。防火墙采用linux系统,使用iptables和ebtables进行过滤数据包。经过测试交换机划分vlan在路由器终结数据包,这样的数据包可以在iptables
和ebtables中进行分析处理。网桥在网络的第二层,iptables和ebtables在linux 2.6内核中可以分析到第二层的数据包。
二、防火墙工具分析
1)iptables说明
Iptables对数据包的处理流程:数据包进入系统,经过IP校验后经过PREROUTING 链中的Mangle和Nat的处理;再经过路由查找,决定该数据包需要转发还是发给本机;如果该数据包是发给本机的,则经过INPUT链的Mangle和Filter处理后再传递给上层协议;如果需要转发,则发给FORWARD链的Mangle和Filter
进行处理;本机网络层以上各层产生的数据包通过OUTPUT链的Mangle、Nat、Filter处理后,再进行路由选择;所有需要发送到网络中的数据包,都必须经过POSTROUTING链的Mangle和Nat进行处理。
2)ebtalbles说明
Ebtables对数据帧的处理过程:数据帧进入数据链路层,首先经过BROURING链的Broute处理,决定是直接路由该数据帧还是让它进入到PREROUTING链,如果数据帧的目的地址和源地址在同一个网段,网桥会屏蔽它;如果数据帧是多播帧或广播帧,则要在同一网段中除了接收端口以外的其他端口发送这个数据帧。接下来,数据帧到达PREROUTING链后可以改变目的MAC地址(DNAT);当数据帧通过PREROUTING链后,Ebtables将会根据该数据帧的目的MAC地址决定是否转发该帧,如果这个帧的目的MAC是本机的,就会进入到INPUT链,在这个链中,可以过滤进入本机的数据帧,通过INPUT链后,就到达网络层,数据帧变成数据包;如果数据帧的目的MAC不是本机的,它进入FORWARD链,FORWARD链将过滤
数据帧;然后这个数据帧就会到达POSTROUTING链,在这里可以改变数据帧的源MAC地址(SNAT)。由本机产生的帧,首先判断是否需要Bridging,如果不需要则进行直接路由;如果需要就会进入到OUTPUT链中,以对数据帧改变目的MAC 地址(DNAT)和过滤,接下来这个帧到达POSTROUTING链,这个链可以改变数据帧的源MAC地址(SNAT);最后,这个帧就到达了NIC。
3)桥接方式的处理流程
当数据帧进入Linux网桥后,先通过Ebtables的BROUTING链和PREROUTING链;接下来,经过Iptables的PREROUTING链,这时还是在数据链路层,而不是在Iptables通常起作用的网络层,这就是br_nf帮助数据帧在数据链路层可以经过Iptables链的作用;然后,经过Ebtables的FORWARD链和Iptables的FORWARD 链;最后,先后经过Ebtables和Iptables的POSTROUTING链。
4)总结
从前面的叙述,可以看到无论桥接还是路由方式,数据帧都会经过Iptables的FORWARD链,这样就可以利用Iptables/Ebtables设计一个网桥防火墙。
Linux2.6中的Ebtables/ Iptables是一个非常强大的防火墙系统,可以同时在数据链路层和网络层对数据帧或数据包进行过滤、地址转换、数据包传输特性的改变。利用Ebtables/ Iptables可以构建一个网桥路由器,尤其重要的是它还可以连接不同协议的网络,实现过滤等功能。因此,利用Ebtables/Iptables 可以构建一种简单宜用、功能强大、经济高效的网桥防火墙。
由于iptables功能比ebtables更强大,应用也较为广泛,所以一般都使用iptables来做防火墙。
三、系统安装
centos linux 5.0是使用linux 2.6内核的操作系统。
1)系统安装
1.输入linux text选择text安装模式。
2.安装时语言环境选English。
3.键盘类型选us。
4.鼠标选择No-mouse。
5.安装类型选Custom。
6.分区设置:
/boot ext3 100M 启动分区
/ ext3 10G 系统分区
Swap swap 1G 虚拟内存
/var ext3 剩余空间日志分区
7.使用GRUB Boot loader。
8.不增加参数在Boot Loader Configuration。
9.不为Boot Loader设置密码。
10.设置Boot Loader启动Linux。
11.将Boot Loader安装在硬盘的MBR。
12.网络设置,默认安装后进行配置。
13.主机名称视情况而定,预定为UC-WEB-数字。
14.防火墙的安全级别设为No firewall。
15.语言支持选English (USA) 和Chinese (P.R. of China)。
16.默认语言为English (USA)。
17.时区选Asia/Shanghai。
18.Root Password为:redhat
19.Authentication Configuration启用Use Shadow Passwords和Enable MD5 Passwords。
20.Package Group选择:
@ Editors
21.不必创建Boot Diskette。
22.配置显示选项,指定启动时进入文本模式。
OS安装完毕。
2)系统配置
1.禁用多于服务
rm /etc/rc.d/rc3.d/* -rf
chkconfigcrond on
chkconfig network on
chkconfigrsync on
chkconfigsshd on
chkconfig syslog on
chkconfigxinetd on
chkconfigiptables on
2.定时同步时间
crontab -e
加入
10 03 * * * /usr/sbin/ntpdate -u
3.关闭ipv6
echo "alias net-pf-10 off" >> /etc/modprobe.conf.dist
4.修改默认启动内核
vi /boot/grub/gurb.conf
修改默认启动内核为2.6内核,不要使用加有xen(虚拟技术)的内核。四、防火墙的实现
1)配置网卡
1.网桥配置bridge-utils-1.4.tar.gz
brctladdbr0
建立网桥
touch /etc/sysconfig/network-scripts/ifcfg-br0
建立网桥配置文件ifcfg-br0
vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=0.0.0.0
ONBOOT=yes