iptables入门经典整理版Word文档下载推荐.docx
- 文档编号:20010398
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:14
- 大小:77.55KB
iptables入门经典整理版Word文档下载推荐.docx
《iptables入门经典整理版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《iptables入门经典整理版Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
具体的命令选项名称及其与后续选项的搭配形式如下所示。
示例1:
1.-A<
链名>
<
规则>
功能:
在指定链的末尾添加一条或多条规则。
示例2:
1.-D<
2.-D<
规则号>
从指定的链中删除一条或多条规则。
可以按照规则的序号进行删除,也可以删除满足匹配条件的规则。
示例3:
1.-R<
在指定的链中用新的规则置换掉某一规则号的旧规则。
示例4:
1.-I<
[规则号]<
在给出的规则序号前插入一条或多条规则,如果没有指定规则号,则默认是1。
示例5:
1.-L[链名]
列出指定链中的所有规则,如果没有指定链,则所有链中的规则都将被列出。
示例6:
1.-F[链名]
删除指定链中的所有规则,如果没有指定链,则所有链中的规则都将被删除。
示例7:
1.-N<
建立一个新的用户自定义链。
示例8:
1.-X[链名]
删除指定的用户自定义链,这个链必须没有被引用,而且里面也不包含任何规则。
如果没有给出链名,这条命令将试着删除每个非内建的链。
示例9:
1.-P<
目标>
为指定的链设置规则的默认目标,当一个数据包与所有的规则都不匹配时,将采用这个默认的目标动作。
示例10:
1.-E<
旧链名>
新链名>
9.1.3iptables命令格式
(2)
重新命名链名,对链的功能没有影响。
以上是有关iptables命令格式中有关命令选项部分的解释。
iptables命令格式中的规则部分由很多选项构成,主要指定一些IP数据包的特征。
例如,上一层的协议名称、源IP地址、目的IP地址、进出的网络接口名称等,下面列出构成规则的常见选项。
-p<
协议类型>
:
指定上一层协议,可以是icmp、tcp、udp和all。
-s<
IP地址/掩码>
指定源IP地址或子网。
-d<
指定目的IP地址或子网。
-i<
网络接口>
指定数据包进入的网络接口名称。
-o<
指定数据包出去的网络接口名称。
上述选项可以进行组合,每一种选项后面的参数前可以加"
!
"
,表示取反。
对于-p选项来说,确定了协议名称后,还可以有进一步的子选项,以指定更细的数据包特征。
常见的子选项如下所示。
-ptcp--sport<
port>
指定TCP数据包的源端口。
-ptcp--dport<
指定TCP数据包的目的端口。
-ptcp--syn:
具有SYN标志的TCP数据包,该数据包要发起一个新的TCP连接。
-pudp--sport<
指定UDP数据包的源端口。
-pudp--dport<
指定UDP数据包的目的端口。
-picmp--icmp-type<
type>
指定icmp数据包的类型,可以是echo-reply、echo-request等。
上述选项中,port可以是单个端口号,也可以是以port1:
port2表示的端口范围。
每一选项后的参数可以加"
上面介绍的这些规则选项都是iptables内置的,iptables软件包还提供了一套扩展的规则选项。
使用时需要通过-m选项指定模块的名称,再使用该模块提供的选项。
下面列出几个模块名称和其中的选项,大部分的选项也可以通过"
取反。
1.-mmultiport--sports<
port,port,…>
指定数据包的多个源端口,也可以以port1:
port2的形式指定一个端口范围。
1.-mmultiport--dports<
指定数据包的多个目的端口,也可以以port1:
1.-mmultiport--ports<
指定数据包的多个端口,包括源端口和目的端口,也可以以port1:
1.-mstate--state<
state>
指定满足某一种状态的数据包,state可以是INVALID、ESTABLISHED、NEW和RELATED等,也可以是它们的组合,用"
"
分隔。
1.-mconnlimit--connlimit-above<
n>
用于限制客户端到一台主机的TCP并发连接总数,n是一个数值。
1.-mmac--mac-source<
address>
指定数据包的源MAC地址,address是xx:
xx:
xx形式的48位数。
-m选项可以提供的模块名和子选项内容非常多,为iptables提供了非常强大、细致的功能,所有的模块名和子选项可以通过"
maniptables"
命令查看iptables命令的手册页获得。
最后,iptables命令中的-j选项可以对满足规则的数据包执行指定的操作,其后的"
目标"
可以是以下内容。
-jACCEPT:
将与规则匹配的数据包放行,并且该数据包将不再与其他规则匹配,而是跳向下一条链继续处理。
-jREJECT:
拒绝所匹配的数据包,并向该数据包的发送者回复一个ICMP错误通知。
该处理动作完成后,数据包将不再与其他规则匹配,而且也不跳向下一条链。
-jDROP:
丢弃所匹配的数据包,不回复错误通知。
-jREDIRECT:
将匹配的数据包重定向到另一个位置,该动作完成后,会继续与其他规则进行匹配。
-jLOG:
将与规则匹配的数据包的相关信息记录在日志(/var/log/message)中,并继续与其他规则匹配。
-j<
规则链名称>
数据包将会传递到另一规则链,并与该链中的规则进行匹配。
除了上述目标动作外,还有一些与NAT有关的目标,将在9.4节中讲述。
所有的目标也可以通过查看iptables命令的手册页获得。
9.2iptables主机防火墙
主机防火墙主要用于保护防火墙所在的主机免受外界的攻击,当一台服务器为外界提供比较重要的服务,或者一台客户机在不安全的网络环境中使用时,都需要在计算机上安装防火墙。
本节主要介绍iptables主机防火墙规则的配置,包括iptables防火墙的运行与管理、RHEL5默认防火墙规则的解释、用户根据需要添加自己的防火墙规则等内容。
9.2.1iptables防火墙的运行与管理
RHEL5默认安装时,已经在系统中安装了iptables软件包,可以用以下命令查看。
1.[root@localhost~]#rpm-qa|grepiptables
2.iptables-1.3.5-1.2.1
3.iptables-ipv6-1.3.5-1.2.1
4.#
一般情况下,iptable开机时都已经默认运行,但与其他一些服务不同,iptables的功能是管理内核中的防火墙规则,不需要常驻内存的进程。
如果对防火墙的配置做了修改,并且想保存已经配置的iptables规则,可以使用以下命令。
1.#/etc/rc.d/init.d/iptablessave
此时,所有正在使用的防火墙规则将保存到/etc/sysconfig/iptables文件中,可以用以下命令查看该文件的内容。
1.#more/etc/sysconfig/iptables
2.#Generatedbyiptables-savev1.3.5onFriJan1614:
58:
312009
3.*filter
4.:
INPUTACCEPT[0:
0]
5.:
FORWARDACCEPT[0:
6.:
OUTPUTACCEPT[2237:
2371316]
7.:
RH-Firewall-1-INPUT-[0:
8.-AINPUT-jRH-Firewall-1-INPUT
9.-AFORWARD-jRH-Firewall-1-INPUT
10.-ARH-Firewall-1-INPUT-ilo-jACCEPT
11.-ARH-Firewall-1-INPUT-picmp-micmp--icmp-typeany-jACCEPT
12.-ARH-Firewall-1-INPUT-pesp-jACCEPT
13.-ARH-Firewall-1-INPUT-pah-jACCEPT
14.-ARH-Firewall-1-INPUT-d224.0.0.251-pudp-mudp--dport5353-jACCEPT
15.-ARH-Firewall-1-INPUT-pudp-mudp--dport631-jACCEPT
16.-ARH-Firewall-1-INPUT-ptcp-mtcp--dport631-jACCEPT
17.-ARH-Firewall-1-INPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT
18.-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW
-mtcp--dport21-jACCEPT
19.-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW
-mtcp--dport22-jACCEPT
20.-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW
-mtcp--dport80-jACCEPT
21.-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW
-mtcp--dport25-jACCEPT
22.-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW
-mtcp--dport808-jACCEPT
23.-ARH-Firewall-1-INPUT-ptcp-mstate--stateNEW
-mtcp--dport8080-jACCEPT
可以看到,/etc/sysconfig/iptables文件中包含了一些iptables规则,这些规则的形式与iptables命令类似,但也有区别。
一般不建议用户手工修改这个文件的内容,这个文件只用于保存启动iptables时,需要自动应用的防火墙规则。
以上看到的实际上是默认安装RHEL5时该文件中的内容,其所确定的规则的解释见9.2.2小节。
还有一种保存iptables规则的方法是使用iptables-save命令,格式如下:
1.#iptables-save>
abc
此时,正在使用的防火墙规则将保存到abc文件中。
如果希望再次运行iptables,可以使用以下命令。
1.#/etc/rc.d/init.d/iptablesstart
上述命令实际上是清空防火墙所有规则后,再按/etc/sysconfig/iptables文件的内容重新设定防火墙规则。
还有一种复原防火墙规则的命令如下:
1.#iptables-restore<
此时,由iptables-save命令保存在abc文件中的规则将重新载入到防火墙中。
如果使用以下命令,将停止iptables的运行。
1.#/etc/rc.d/init.d/iptablesstop
上述命令实际上是清空防火墙中的规则,与"
iptables-F"
命令类似。
此外,/etc/sysconfig目录的iptables-config文件是iptables防火墙的配置文件,去掉注释后的初始内容和解释如下:
配置1:
1.IPTABLES_MODULES="
ip_conntrack_netbios_nsip_conntrack_ftp"
当iptables启动时,载入ip_conntrack_netbios_ns和ip_conntrack_ftp两个iptables模块。
配置2:
1.IPTABLES_MODULES_UNLOAD="
yes"
当iptables重启或停止时,是否卸载所载入的模块,yes表示是。
配置3:
1.IPTABLES_SAVE_ON_STOP="
no"
当停止iptables时,是否把规则和链保存到/etc/sysconfig/iptables文件,no表示否。
配置4:
1.IPTABLES_SAVE_ON_RESTART="
当重启iptables时,是否把规则和链保存到/etc/sysconfig/iptables文件,no表示否。
配置5:
1.IPTABLES_SAVE_COUNTER="
当保存规则和链时,是否同时保存计数值,no表示否。
配置6:
1.IPTABLES_STATUS_NUMERIC="
输出iptables状态时,是否以数字形式输出IP地址和端口号,yes表示是。
配置7:
1.IPTABLES_STATUS_VERBOSE="
输出iptables状态时,是否包含输入输出设备,no表示否。
配置8:
1.IPTABLES_STATUS_LINENUMBERS="
输出iptables状态时,是否同时输出每条规则的匹配数,yes表示是。
9.3.3mangle表应用举例
前面介绍的防火墙规则其所在的规则链都位于filter表,下面再看一个有关mangle表的使用例子。
mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。
图9-9所示的是一种典型的网络结构,内网的客户机通过Linux主机连入Internet,而Linux主机与Internet连接时有两条线路,它们的网关如图所示。
现要求对内网进行策略路由,所有通过TCP协议访问80端口的数据包都从ChinaNet线路出去,而所有访问UDP协议53号端口的数据包都从Cernet线路出去。
(点击查看大图)图9-9利用mangle表进行策略路由的例子网络结构
这是一个策略路由的问题,为了达到目的,在对数据包进行路由前,要先根据数据包的协议和目的端口给数据包做上一种标志,然后再指定相应规则,根据数据包的标志进行策略路由。
为了给特定的数据包做上标志,需要使用mangle表,mangle表共有5条链,由于需要在路由选择前做标志,因此应该使用PREROUTING链,下面是具体的命令。
1.iptables-tmangle-APREROUTING-ieth0-ptcp
--dport80-jMARK--set-mark1
2.iptables-tmangle-APREROUTING-ieth0-pudp
--dprot53-jMARK--set-mark2
以上命令在mangle表的PREROUTING链中添加规则,为来自eth0接口的数据包做标志,其匹配规则分别是TCP协议、目的端口号是80和UDP协议、目的端口号是53,标志的值分别是1和2。
数据包经过PREROUTING链后,将要进入路由选择模块,为了对其进行策略路由,执行以下两条命令,添加相应的规则。
1.ipruleaddfromallfwmark1table10
2.ipruleaddfromallfwmark2table20
以上两条命令表示所有标志是1的数据包使用路由表10进行路由,而所有标志是2的数据包使用路由表20进行路由。
路由表10和20分别使用了ChinaNet和Cernet线路上的网关作为默认网关,具体设置命令如下所示。
1.iprouteadddefaultvia10.10.1.1deveth1table10
2.iprouteadddefaultvia10.10.2.1deveth2table20
以上两条命令在路由表10和20上分别指定了10.10.1.1和10.10.2.1作为默认网关,它们分别位于ChinaNet和Cernet线路上。
于是,使用路由表10的数据包将通过ChinaNet线路出去,而使用路由表20的数据包将通过Cernet线路出去。
上面介绍了有关mangle表在策略路由上的应用,有关策略路由的具体内容,可参见8.3节。
9.4iptables防火墙的NAT配置
NAT(NetworkAddressTranslation,网络地址转换)是一项非常重要的Internet技术,它可以让内网众多的计算机访问Internet时,共用一个公网地址,从而解决了Internet地址不足的问题,并对公网隐藏了内网的计算机,提高了安全性能。
本章主要介绍利用iptables防火墙实现NAT的方法。
9.4.1NAT简介
NAT并不是一种网络协议,而是一种过程,它将一组IP地址映射到另一组IP地址,而且对用户来说是透明的。
NAT通常用于将内部私有的IP地址翻译成合法的公网IP地址,从而可以使内网中的计算机共享公网IP,节省了IP地址资源。
可以这样说,正是由于NAT技术的出现,才使得IPv4的地址至今还足够使用。
因此,在IPv6广泛使用前,NAT技术仍然还会广泛地应用。
1.NAT的工作原理
NAT的工作原理如图9-10所示。
(点击查看大图)图9-10NAT服务器工作原理图
内网中IP为10.10.1.10的计算机发送的数据包其源IP地址是10.10.1.10,但这个地址是Internet的保留地址,不允许在Internet上使用,Internet上的路由器是不会转发这样的数据包的。
为了使这个数据包能在Internet上传输,需要把源IP地址10.10.1.10转换成一个能在Internet上使用的合法IP地址,如218.75.26.35,才能顺利地到达目的地。
这种IP地址转换的任务由NAT服务器完成,运行NAT服务的主机一般位于内网的出口处,至少需要有两个网络接口,一个设置为内网IP,一个设置为外网合法IP。
NAT服务器改变出去的数据包的源IP地址后,需要在内部保存的NAT地址映射表中登记相应的条目,以便回复的数据包能返回给正确的内网计算机。
当然,从Internet回复的数据包也并不是直接发送给内网的,而是发给了NAT服务器中具有合法IP地址的那个网络接口。
NAT服务器收到回复的数据包后,根据内部保存的NAT地址映射表,找到该数据包是属于哪个内网IP的,然后再把数据包的目的IP转换回来,还原成原来的那个内网地址,最后再通过内网接口路由出去。
以上地址转换过程对用户来说是透明的,计算机10.10.1.10并不知道自己发送出去的数据包在传输过程中被修改过,只是认为自己发送出去的数据包能得到正确地响应数据包,与正常情况没有什么区别。
通过NAT转换还可以保护内网中的计算机不受到来自Internet的攻击。
因为外网的计算机不能直接发送数据包给使用保留地址的内网计算机,只能发给NAT服务器的外网接口。
在内网计算机没有主动与外网计算机联系的情况下,在NAT服务器的NAT地址映射表中是无法找到相应条目的,因此也就无法把该数据包的目的IP转换成内网IP。
说明:
在有些情况下,数据包还可能会经过多次的地址转换。
2.动态NAT
以上介绍的NAT也称为源NAT,即改变数据包的源IP地址,通常也称为静态NAT,它用于内网的计算机共用公网IP上网。
还有一种NAT是目的NAT,改变的是数据包的目的I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- iptables 入门 经典 整理
![提示](https://static.bdocx.com/images/bang_tan.gif)