第16章 Linux防火墙与NAT服务配置
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)创建新链 命令用法:iptables -N 链名 命令功能:以指定的名称创建一个新链 例【16-2】创建一个名为mychain的新链。 [root@rhel4 ~]# iptables -N mychain
(3)删除链 命令用法:iptables -X 链名 命令功能:删除指定的用户自定义链 例【16-3】删除新建的mychain链。 [root@rhel4 ~]# iptables -X mychain
第16章Linux防火墙与NAT服务配置
本章介绍iptables的基本概念和基本功能,以及 使用iptables架设包过滤防火墙和NAT服务的方法。
学完本章后,你将能够:
❖描述Linux防火墙的基本概念和功能
❖使用iptables配置包过滤防火墙
❖使用iptables配置NAT服务
16.1 Linux防火墙概述 16.2 iptables简介 16.3 iptables的使用 16.4 NAT服务
[root@rhel4 ~]# echo “1” > /proc/sys/net/ipv4/ip_forward
上述命令只是一次性有效,为了让主机每次开机后 都自动激活IP数据包转发功能,可以采用编辑配置 文件/etc/sysctl.conf的方法,将其中的语句: net.ipv4.ip_forward=0 更改为net.ipv4.ip_forward=1 执行如下命令: [root@rhel4 ~]# sysctl -p 即可让系统启动后自动打开内核的包转发功能。
3.链名选项 “链”指定要操作的链名,各种表中所包含的链 名
如16.2.1所述。除使用系统定义的链名外,用户也 可自定义链名。 4.匹配选项
匹配选项指定数据包与规则匹配所应具有的特 征,包括源地址、目的地址、传输协议和端口号等。
iptables的主要匹配选项
5.操作选项 操作选项用于指定对匹配过滤规则的数据包所进
[root@rhel4 ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target prot opt source
destination
RH-Firewall-1-INPUT all -- anywhere
anywhere
DROP all -- 192.168.1.1
iptables [-t 表名] 命令选项 [链] [匹配选项] [操作选项]
1.表名选项 “-t 表名”用来选择要操作的表,表名可以是
filter,nat,mangle三者之一,如该参数缺省 则默认为filter表; 2.命令选项
命令选项用来指定对链或规则的操作,包括插 入、删除、添加规则等。
iptables 的主要命令选项
dport 80 -j ACCEPT 或: [root@rhel4 ~]# iptables -D INPUT 3
(5)设置链的默认策略
命令用法:iptables [-t 表名] -P 链名 目标动作 命令功能:定义指定链的默认策略,即设置所有过滤规则 都不满足的数据包的默认处理方式。 例【16-9】将INPUT、FORWARD和OUTPUT链的默认策 略设置为ACCEPT。 [root@rhel4 ~]# iptables -P INPUT ACCEPT [root@rhel4 ~]# iptables -P FORWARD ACCEPT [root@rhel4 ~]# iptables -P OUTPUT ACCEPT
2.防火墙的类型 根据动作方式的不同,通常把防火墙分为包过滤
型和应用级网关两大类。 包过滤防火墙(Packet Filter) 应用级网关(Application-level Gateway)
16.1.2 Linux包过滤防火墙的架构
iptables是一个免费的包过滤防火墙,它伴随着内 核的发展而逐渐演变,大致经历了下面4个阶段:
16.2.1 iptables的基本概念
❖ 规则 规则(rules)就是网络管理员预先定义的条件,每
条规则的定义方式一般是“如果封包符合这样的条 件
就这样处理该数据包”。 ❖链
链(chains)是数据包传输的路径,每一条链中可 以有一条或数条规则。 ❖表
iptables内置了filter表、nat表和mangle表用于实 现包过滤、网络地址转换和来自百度文库重构的功能。
16.2.2 iptables数据包传输的过程
16.2.3 激活IP包转发功能
如果要把Linux配置成网关防火墙,内核必须打开 IP包转发功能(即路由功能),这样一个数据包才 能被送到FORWARD链进行规则检查,否则与防火 墙相连的两边的网络是完全隔离的。
打开Linux内核包转发功能,可使用以下命令来实现
[root@rhel4 ~]# iptables -L INPUT
(4)删除规则
命令用法:iptables [-t 表名] -D 链名 匹配选项 -j 动作 或:iptables [-t 表名] -D 链名 规则号 命令功能:删除指定的规则或指定编号的规则 例【16-8】删除例【16-7】中被替换的第3条规则。 [root@rhel4 ~]# iptables -D INPUT -s 192.168.2.0/24 -p tcp --
正在卸载 Iiptables 模块:
[ 确定 ]
应用 iptables 防火墙规则:
[ 确定 ]
将上述命令中的“start”参数变换为“stop”、 start”“status”
可以分别实现iptables防火墙的关闭、重启和状态的查看。
16.1 Linux防火墙概述 16.2 iptables简介 16.3 iptables的使用 16.4 NAT服务
指定icmp包的类型,“echo-request”代表ping包。
(3)替换规则
命令用法:iptables [-t 表名] -R 链名 规则号 匹配 选项 -j 动作
命令功能:将指定编号的规则替换为新的规则。 例【16-7】将例【16-5】中的第3条规则替换为允许 192.168.2.0子网段的所有用户访问本机TCP协议的80端口。 [root@rhel4 ~]# iptables -I INPUT 3 -s 192.168.2.0/24 -p tcp -dport 80 –j ACCEPT
(6)清除规则链中的所有规则
在新建规则时往往需要清除原有的规则,以免它们影响 新设定的规则。如果规则比较多,一条条删除就会十分麻烦 这时可以使用iptables提供的清除规则选项达到快速删除所 有规则的目的。
16.1.1 防火墙简介
1.防火墙的功能
防火墙是位于不同网络(如可信的企业内部网和不可信的 公共网)或网络安全域之间,对网络进行隔离并实现有条件 通信的一系列软件硬件设备的集合。它通过访问控制机制确 定哪些内部服务允许外部访问,以及允许哪些外部请求可以 访问内部服务。
防火墙系统可以由一台路由器,也可以由一台或一组主机 组成。它通常被放置在网络入口处,所有内外部网络通信数 据包都必须经过防火墙,接受防火墙的检查,只有符合安全 规则的数据才允许通过。 通过使用防火墙可以实现以下功能: ❖ 保护内部网络中易受攻击的服务。 ❖ 控制内外网之间网络系统的访问。 ❖ 隐藏内部网络的IP地址及结构的细节,提高网络的保密性。 ❖ 对网络存取和访问进行监控和审计。 ❖ 集中管理内网的安全性,降低管理成本。
anywhere
DROP tcp -- 192.168.2.0/24 anywhere tcp dpt:http
DROP icmp -- anywhere
anywhere icmp echo-request
ACCEPT all -- 192.168.1.1
anywhere
在该命令中,“-s 0/0”用于指定源地址为所有主机,“--icmp-type”用 于
❖ 在1.1内核中,采用ipfw来操作内核包过滤规则。 ❖ 在2.0内核中,采用ipfwadm来操作内核包过滤规则。 ❖ 在2.2内核中,采用ipchains来控制内核包过滤规则。 ❖ 在2.4内核中(如Red Hat 9.0、RHEL),采用一个全新
的内核包过滤管理工具——iptables。
iptables只是防火墙与用户之间的接口,真正起到 防火墙作用的是Linux内核中运行的netfilter。Linux 平台下的包过滤防火墙由netfilter组件和iptables组 件组成,其中netfilter运行在内核态,而iptables运 行在用户态,用户通过iptables命令来调用netfilter 来实现防火墙的功能。 ❖ netfilter组件 ❖ iptables组件
-dport 80 –j DROP
[root@rhel4 ~]# iptables -L INPUT
例【16-6】在第4条规则前插入一条规则,拒绝所有主机PING本机。
[root@rhel4 ~]# iptables –I INPUT 4 –s 0/0 -p icmp --icmp-type echo-request –j DROP
16.1 Linux防火墙概述 16.2 iptables简介 16.3 iptables的使用 16.4 NAT服务
16.3.1 iptables的命令格式
iptables用于创建、维护和检查Linux内核的IP包过滤 规则,利用该命令可创建、删除或更名链,在链中创建 或删除规则,设置链的策略等,功能很强大,用法也比 较多,其命令基本格式为:
行的处理。其形式为“-j target/jump”,其中 “target”
是对包的处理动作,“jump”代表一个用户自定义的 链名,用于跳转到该链进行规则检查。
iptables的主要目标动作选项
16.3.2 iptables命令的使用
1.对链的操作 (1)查看链 命令用法:iptables -L [链] 命令功能:列出指定表的全部链及其规则 例【16-1】列出filter表的全部规则链。 [root@rhel4 ~]# iptables -L 若要列出nat表的全部规则链,则操作命令为: [root@rhel4 ~]# iptables -t nat -L
(2)插入规则
命令用法:iptables [-t 表名] -I 链名 规则号 匹配选 项 -j 动作
命令功能:在指定的规则号的前面插入一条规则,原规则 将自动后移。若未指定规则号,则默认为1,即插入在所有 规则的前面。
例【16-5】在第3条规则前插入一条规则,其内容是禁止 192.168.2.0子网段的所有用户访问本机TCP协议的80端口。 [root@rhel4 ~]# iptables -I INPUT 3 -s 192.168.2.0/24 -p tcp -
上述操作也可以通过执行下列命令来实现相应功能: [root@rhel4 ~]# sysctl -w net.ipv4.ip_forward=”1” [root@rhel4 ~]# sysctl -p
还可以/etc/sysconfig/network配置文件中,通过 以下配置项来开启内核的包转发功能: FORWARD_IPV4=true
16.1.3 Linux防火墙的安装、启动与关闭
iptables防火墙内置于RHEL 4 AS系统内核中,所以 它是随系统的安装而自动安装的。可使用以下命令检 查是否已安装: [root@rhel4 ~]# rpm -q iptables iptables-1.2.11-3.1.RHEL4
安装RHEL 4 AS时系统会提示是否开启防火墙,默 认情况下将开启防火墙。由于系统的防火墙功能是使 用iptables实现的,因此系统会根据用户的设置在 iptables中添加相应的规则。
如果在安装时选择禁用防火墙,则在安装完成后 可在终端命令窗口中执行“setup”命令手工开启
完成以上配置后,可在终端命令窗口中执行如下命令启动
iptables防火墙:
[root@rhel4 ~]# service iptables start
清除防火墙规则:
[ 确定 ]
把 chains 设置为 ACCEPT 策略:filter [ 确定 ]