1、前言: Linux2.4 内核中 Netfilter/Iptables 的出现,为构建 Linux 下防火墙提供了很 好的平台。Iptables 是在 Linux 操作系统下基于 2.4 之上内核版本的集成网络安 全工具包。该工具通过编程可以实现多种网络安全功能,如:数据包过滤、状态 保持、NAT(Network Address Translation,网络地址转换)以及抵抗攻击等等。 本课程设计主要是针对 Linux 下 iptables 的的应用进行学习与研究,结构上 可以分为三个部分: Linux 防火墙的概述, iptables 的的简介以及如何使用 iptables 来为我们的日常工
2、作所服务。 例如在我们的日常工作中的应用到的过滤网址、 IP, 禁用端口、协议等等。利用 iptables 这个工具在 Linux 服务器上实现安全稳定、 功能强大的防火墙。目前这也是被企业和高校广泛采用的一种比较成熟的技术。 本次毕设课题研究的实验环境均在虚拟机上实现, 使用 ubuntu 系统、 win xp 系统和 win 2003 系统。 关键词:Linux,防火墙,iptables,规则,过滤 1 目录目录 1 防火墙简介 3 2 iptables 简介 4 2.1 iptables 的基本概念 4 2 .2 iptables 数据包的传输过程 5 3 iptables 的使用 6
3、4 iptables 的一些配置实例. 8 4.1 一台虚拟机与 iptable 配置 8 4.2 两台虚拟机连接通信有关的 iptables 配置 . 10 4.3 三台虚拟机连接通信有关的 iptables 配置 14 4.4 基于 iptables 的 nat 配置 . 16 4.5 基于 iptables 的 ftp 服务器配置. 18 4.6 基于 iptables 的 dns 服务器配置 19 5 iptables 技巧实例 . 21 6 课程设计心得 . 22 7 参考书目 . 23 2 1 防火墙简介防火墙简介 防火墙是位于不同网络(如可信的企业内部网和不可信的公共网)或网络安
4、 全域之间,对网络进行隔离并实现有条件通信的一系列软件/硬件设备的集合。 它通过访问控制机制确定哪些内部服务允许外部访问, 以及允许哪些外部请求可 以访问内部服务。其基本功能是分析出入防火墙的数据包,根据 IP 包头结合防 火墙的规则,来决定是否接收或允许数据包通过。 防火墙系统可以由一台路由器,也可以由一台或一组主机组成。它通常被放 置在网络入口处,所有内外部网络通信数据包都必须经过防火墙,接受防火墙的 检查,只有符合安全规则的数据才允许通过。 通过使用防火墙可以实现以下功能: 保护内部网络中易受攻击的服务。 控制内外网之间网络系统的访问。 隐藏内部网络的 IP 地址及结构的细节,提高网络的
5、保密性。 对网络存取和访问进行监控和审计。 集中管理内网的安全性,降低管理成本。 3 2 iptables 简介简介 2.1 iptables 的基本概念的基本概念 在使用 iptables 之前我们先要理解规则、链、表这 3 个概念以及 iptables 传输数据包的过程。 规则 规则(rules)就是网络管理员预先定义的条件,每条规则的定义方式一般是 “如果封包符合这样的条件就这样处理该数包”。 链 链(chains)是数据包传输的路径,每一条链中可以有一条或数条规则。 表 iptables 内置了 filter 表、nat 表和 mangle 表用于实现包过滤、网络地址 转换和包重构的功
6、能。 (1)filter 表 filter 表是 iptables 默认的表,如果没有指定使用哪个表,iptables 默认 使用 filter 表来执行所有的命令。filter 表根据系统管理员预定义的一组规则 过滤符合条件的数据包。在 filter 表中只允许对数据包进行接收、丢弃的操作, 而无法对数据包进行更改。 (2)nat 表 nat 表主要是用于网络地址转换 NAT,该表可以实现一对一、一对多、多对 多等 NAT 工作。NAT 表包含了 PREROUTING 链、OUTPUT 链和 POSTROUTING 链。其 中 PREROUTING 链用于处理刚刚进入网络层未进行路由判断的数据包,OUTPUT 链 用于处理在路由之前本地生成的数据包,POSTROUTING 链处理在路由判断之后即 4 将通过网卡发送出去的数据包。 (3)mangle 表 某些特殊应用可能需要改写数据包的一些传输特性,例如更改数据包的 TTL 和 TOS 等,mangle 表主要用于对指定包的传输特性进行修改。 2 .2 iptables 数据包的传输过程