搭建基于netfilter/iptables的防火墙实验环境-阿里云开发者社区

开发者社区> wangccsy> 正文

搭建基于netfilter/iptables的防火墙实验环境

简介:  防火墙作为一种网络或系统之间强制实行访问控制的机制,是确保网络安全的重要手段。针对不同的需求和应用环境,可以量身定制出不同的防火墙系统。防火墙大到可由若干路由器和堡垒主机构成,也可小到仅仅是网络操作系统上一个防火墙软件包所提供的包过滤功能。
+关注继续查看
 防火墙作为一种网络或系统之间强制实行访问控制的机制,是确保网络安全的重要手段。针对不同的需求和应用环境,可以量身定制出不同的防火墙系统。防火墙大到可由若干路由器和堡垒主机构成,也可小到仅仅是网络操作系统上一个防火墙软件包所提供的包过滤功能。 在众多网络防火墙产品中,Linux操作系统上的防火墙软件特点显著。首先是Linux操作系统作为一个类Unix网络操作系统,在系统的稳定性、健壮性及价格的低廉性方面都独具优势。更为重要的是,Linux不但本身的源代码完全开放,而且系统包含了建立Internet网络环境所需要的所有服务软件包,如Apache Web服务器、DNS服务器、Mail服务器、Database服务器等。同样,基于Linux的防火墙软件不但具有强大的功能,而且大部分都是开放软件。

随着Internet的飞速发展,安全问题越来越重要。利用Linux构建企业网深受中小企业的青睐,而利用Linux构建企业网的防火墙系统也成为众多中小企业的理想选择。 Linux 内核从1.1版本开始,就已经具备包过滤功能。在2.0内核中,开始采用Ipfwadm来操作内核的包过滤规则。到2.2版本时,Linux内核采用了 Ipchains来控制内核的包过滤规则。发展到2.4.x时,Ipchains被一个全新的包过滤管理工具Iptables所替代。新发布的2.6版内核也在安全方面进行了改进。因此,无论拥有哪个版本的Linux内核,无论选择哪个版本的Linux来构建自己的企业网,都可以利用现有的系统构建出一个理想实用的防火墙。 防火墙系统可分为包过滤型、应用级网关(也叫代理服务器型防火墙)和电路级网关三种基本类型。

Linux提供的防火墙软件包内置于Linux内核中,是一种基于包过滤型的防火墙实现技术。其中心思想是根据网络层IP包头中的源地址、目的地址及包类型等信息来控制包的流向。更彻底的过滤则是检查包中的源端口、目的端口以及连接状态等信息。 Netfilter是Linux核心中一个通用架构,用于扩展各种服务的结构化底层服务。它提供一系列的表(tables),每个表由若干链(chains)组成,而每条链中可以由一条或数条规则(rule)组成。它可以和其它模块(如iptables模块和nat模块)结合起来实现包过滤功能。Iptables是一个管理内核包过滤的工具,可以加入、插入或删除核心包过滤表格中的规则。实际上真正来执行这些过滤规则的是Netfilter 。

硬件平台:

① R.H linux9.0系统pc一台(FireWall)三个8139 TP-LINK 网卡

Eth0(IP:218.197.93.115)

Eth1(IP:192.168.1.1)

Eth2(IP:192.168.2.1)

② R.H linux9.0系统pc一台B(SERVER)一个8139 TP-LINK 网卡

C(IP:192.168.1.2)

③ 笔记本A一台双系统(windows Xp和R.H linux9.0)一个8139网卡,Cute-ftp软件一套

A(IP:192.168.2.2)

④windows Xp系统pc一台一个8139网卡,Cute-ftp软件一套

B(IP:218.197.93.161)

⑤RJ45交叉线若干

实验目的:

一> 实现FireWall的NAT功能让A能访问WAN(218.197.93.254)

二>在SERVER上开启ftp,web服务(简单的)使得A,B正常访问C

三>开启防火墙

1. 内网可以访问外网

内网的用户显然需要自由地访问外网。在这一策略中,防火墙需要进行源地址转换。

2. 内网可以访问DMZ

此策略是为了方便内网用户使用和管理DMZ中的服务器。

3. 外网不能访问内网

很显然,内网中存放的是内部数据,这些数据不允许外网的用户进行访问。

4.外网可以访问DMZ

DMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。同时,外网访问DMZ需要由防火墙完成对外地址到服务器实际地址的转换。

5.DMZ不能访问内网

很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。

6.DMZ不能访问外网

DMZ中的服务器专门用于给外界提供服务的,所以外网必须可以访问DMZ,而DMZ中的服务器则不允许主动访问外网。

实验步骤:

一>实现路由功能:

首先来配置eth0。给这个网络接口分配地址218.197.93.115,运行下列命令:

# ifconfig eth0 218.197.93.115 netmask 255.255.255.0

为了使这个地址不再计算机重新启动后消失,编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,

DEVICE = eth0

ONBOOT = yes

BROADCAST = 218.197.93.255

NETWORK = 218.197.93.0

NETMASK = 255.255.255.0

IPADDR = 218.197.93.115

增加一条静态路由:

# route add -net 218.197.93.0 netmask 255.255.255.0

接下来,配置eth1,eth1与192.168.1.0网段相连,分配给它的地址是192.168.1.1,使用ifconfig命令为它配置参数:

# ifconfig eth1 192.168.1.1 netmask 255.255.255.0

编辑/etc/sysconfig/network-scripts/ifcfg-eth1文件,

DEVICE = eth1

ONBOOT = yes

BROADCAST = 192.168.1.255

NETWORK = 192.168.1.0

NETMASK = 255.255.255.0

IPADDR = 192.168.1.1

增加一条静态路由:

# route add -net192.168.1.0 netmask 255.255.255.0

最后配置eth2,它连接192.168.2.0网段,分配的IP地址是192.168.2.1,执行下列命令:

# ifconfig eth2 192.168.2.1 netmask 255.255.255.0

- 5 -

编辑/etc/sysconfig/network-scripts/ifcfg-eth2文件

DEVICE = eth2

ONBOOT = yes

BROADCAST = 192.168.2.255

NETWORK = 192.168.2.0

NETMASK = 255.255.255.0

IPADDR = 192.168.2.1

增加一条静态路由:

# route add -net 192.168.2.0 netmask 255.255.255.0

这样网络中就有三条静态路由记录了:

# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

218,197.93.115 *255.255.255.0U 0 0 0 eth0

192.168.1.0*255.255.255.0U 0 0 0 eth1

192.168.2.0*255.255.255.0U 0 0 0 eth2

还要为系统增加一条缺省路由,因为缺省的路由是把所有的数据包都发往它的上一级网关,因此增加如下的缺省路由记录:

# route add default gw 218.197.93.254

这样系统的静态路由表建立完成,它的内容是

# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface

218,197.93.115 *255.255.255.0U 0 0 0 eth0

192.168.1.0*255.255.255.0U 0 0 0 eth1

192.168.2.0*255.255.255.0U 0 0 0 eth2

default218.197.93.254 0.0.0.0 UG 0 0 0 eth0

二>在C上开启www,ftp服务:

#service httpd start

#service vsftpd start

三>在防火墙上初始化设置

◆防火墙上初始化

#service iptables stop

#iptables -F

#iptables -t nat -F

#iptables -X

#iptables -t nat -X

#iptables -Z

#iptables -t nat -Z

#iptables -P INPUT DROP

#iptables -P OUTPUT DROP

#iptables -P FORWARD DROP

#iptables -t nat -P POSTROUTING DROP

#service iptables start

◆最后一步,要增加系统的IP转发功能,执行如下命令打开ip转发功能:

echo 1 > /proc/sys/net/ipv4/ip_forward

四>在防火墙上实现端口地址映射:

◆允许A机器访问WAN

iptables -A FORWARD -s 192.168.2.0/24 -i eth2 -j ACCEPT

◆A往C的包都允许

iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.1.0/24 -i eth2 -j ACCEPT

◆WAN往A的包都不允许

iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 192.168.2.0/24 -i eth0 -j DROP

◆允许WAN向内部发送已建立连接的包和相关连接的包。

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to 218.197.93.115

◆允许WAN发往www,ftp服务器的包并把对网关的www,ftp请求转发到内部的www,ftp服务器上。

#iptables -t nat -A PREROUTING -p tcp --dport 80 -d 218.197.93.115 -s 0.0.0.0/0 -i eth0 -j DNAT --to 192.168.1.2

#iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 192.168.1.2 -i eth0 --dport 80 -j ACCEPT

#iptables -A FORWARD -p tcp -d 0.0.0.0/0 -s 192.168.1.2 -i eth1 --sport 80 ! --syn -j ACCEPT

#iptables -t nat -A PREROUTING -p tcp --dport 20,21 -d 218.197.93.115 -s 0.0.0.0/0 -i eth0 -j DNAT --to 192.168.1.2

#iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 192.168.1.2 -i eth0 --dport 20,21 -j ACCEPT

#iptables -A FORWARD -p tcp -d 0.0.0.0/0 -s 192.168.1.2 -i eth1 --sport 20,21 ! --syn -j ACCEPT

#iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 192.168.1.0/24 -i eth0 -j DROP

C不能访问A,B

iptables -A FORWARD -s 192.168.1.0/24 –d 0.0.0.0/0 -i eth1 -j DROP

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
[.NET] 在Windows系统中搭建基于.NET的iPhone应用程序虚机开发环境
  看了这个标题,也许很多朋友认为我是标题党,很多人都没听说过.NET开发iPhone,今天就我就来证实了这一点,而且我已经亲身体会了这一点。在正式开始教程之前,先陈述一下环境搭建的步骤及要点,本环境搭建共需要四个步骤,分别如下:   1. 安装VMWare虚拟环境(你也可以用VBox);   2. 安装Mac OS X(雪豹)操作系统;   3. 安装Xcode和iOS SDK;   4. 安装MonoFramework等.NET iPhone开发框架及工具。
1218 0
Centos7下Docker搭建Jumpserver堡垒机
Centos7下Docker搭建Jumpserver堡垒机
831 0
Centos搭建kubenetes集群
本文描述在阿里云ECS中,自建kubeneters集群。
1167 0
手把手教你在CentOS上搭建Kubernetes集群
作者:ChamPly安装CentOS 1.安装net-tools[root@localhost ~]# yum install -y net-tools2.关闭firewalld[root@localhost ~]# systemctl stop firewalld && systemctl di...
1216 0
iptables防火墙原理详解
原文地址:http://seanlook.com/2014/02/23/iptables-understand/ 1. netfilter与iptables Netfilter是由Rusty Russell提出的Linux 2.4内核防火墙框架,该框架既简洁又灵活,可实现安全策略应用中的许多功能,如数据包过滤、数据包处理、地址伪装、透明代理、动态网络地址转换(Network Address Translation,NAT),以及基于用户及媒体访问控制(Media Access Control,MAC)地址的过滤和基于状态的过滤、包速率限制等。
937 0
一起谈.NET技术,Microsoft NLayerApp案例理论与实践 - 项目简介与环境搭建
  项目简介   Microsoft – Spain团队有一个很不错的面向领域多层分布式项目案例:Microsoft – Domain Oriented N-Layered .NET 4.0 App Sample(在本系列文章中,我使用NLayerApp作为该项目的名称进行介绍),在codeplex上的地址是:http://microsoftnlayerapp.codeplex.com/。
1186 0
linux平台下防火墙iptables原理(转)
原文地址:http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646466.html iptables简介     netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
891 0
+关注
wangccsy
前一个帐号wangccsy@126.com不知道怎么的就成了企业帐号,改不成个人。所以重新注册了一个个人帐号。老程序员。精通JAVA,C#,数据库,对软件开发过程和流程熟悉。考取系统分析师,项目管理师和系统架构设计师等软件资格考试认证。愿意和大家一起前进。
984
文章
391
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载