最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

iptables知识理论的学习与实践举例

来源:动视网 责编:小OO 时间:2024-12-27 15:49:31
文档

iptables知识理论的学习与实践举例

 。iptables的命令使用结构是这样的 ; ;iptables[-ttable]command[match][target] ;下面一项一项来介绍。 。[-ttable]部分。 。[-ttable]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三个可用的表选项:filter、nat和mangle。该选项不是必需的,如果未指定,则filter作为缺省表。 。filter ;用于一般信息包的过滤,包含INPUT、OUTPUT和FORWARD链。 。INPUT:代表匹配目的IP是本机的数据包。 。OUTPUT:代表匹配源ip是本机的数据包。 。
推荐度:
导读 。iptables的命令使用结构是这样的 ; ;iptables[-ttable]command[match][target] ;下面一项一项来介绍。 。[-ttable]部分。 。[-ttable]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三个可用的表选项:filter、nat和mangle。该选项不是必需的,如果未指定,则filter作为缺省表。 。filter ;用于一般信息包的过滤,包含INPUT、OUTPUT和FORWARD链。 。INPUT:代表匹配目的IP是本机的数据包。 。OUTPUT:代表匹配源ip是本机的数据包。 。


iptables是什么?不解释,直接进入正题。
 
iptables的命令使用结构是这样的  iptables[-ttable]command[match][target] 下面一项一项来介绍
 
[-ttable]部分
 
[-ttable]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。
有三个可用的表选项:filter、nat和mangle。该选项不是必需的,如果未指定,则filter作为缺省表。
 
filter 用于一般信息包的过滤,包含INPUT、OUTPUT和FORWARD链。
 
INPUT:代表匹配目的IP是本机的数据包
 
OUTPUT:代表匹配源ip是本机的数据包
 
FORWARD:代表匹配穿过本机的数据包
 
nat 用于要转发的信息包,包含PREROUTING、OUTPUT和POSTROUTING链。
 
PREROUTING:修改目的地址(DNAT) 
 
 POSTROUTING:修改源地址(SNAT)
 
mangle 这个表不是很理解,反正我没有用过,嘻嘻
 
#############################################################################
 
command部分
 
command部分是iptables命令最重要的部分。它告诉iptables命令要做什么,例如插入规则、
将规则添加到链的末尾或删除规则。
 
-A<链名> 
 APPEND,追加一条规则(放到最后) 
 
例如: 
 iptables-tfilter-AINPUT-jDROP  
 
在filter表的INPUT链里追加一条规则(作为最后一条规则),将所有目的IP为本机的包全部丢弃。
  
 
在没有开启防火墙之前,我可以ping192.168.254.153这台机子,防火墙开后,ping不通了,而且我的ssh也断开了,因为防火墙是将所有的包都丢弃了,自然包括ssh链接的包。由于无法再使用ssh链接,所以我只能到服务器上清空防火墙,清空后,就可以ping了
 
 
 
 
   INPUT: 匹配目的IP是本机的数据包
 
   FORWARD 穿过本机的数据包,
 
   PREROUTING用于修改目的地址(DNAT)
 
   POSTROUTING,用于修改源地址(SNAT)
 
 为了能保证我测试iptables用法时ssh不会断开,所以在这里我首先加上一条iptables规则
我还是开启将所有目的IP为本机的包丢弃
  
 
 
 
然后我追加一条策略
 
 
 可以看到,我新增加的这个策略是在drop的后面,也就是先拒绝了所有包,所以网络就不同了,上面也提到了,-A就是添加到INPUT的最后一条。
 
 
这里正好也用到了删除链的命令iptables-DINPUT -s192.168.254.153-jACCEPT,所以-D的用法也就不用强调了
 
iptables-IINPUT -s192.168.254.153-jACCEPT -----------------这里的-I是指加规则放在第一个
 
从图中也可以看到两者的差别
 
将所有的命令重新总结一下,我用个表格对比一下
 
 
 
命令
功能描述
用法举例
-A(或--append)
将一条规则添加到链的末尾
iptables-tfilter-AINPUT-jDROP在input链的末尾添加一条规则,
将所有目的IP为本机的包全部丢弃
-D(或--delete)将指定的规则或者规则的位置编号
从链中删除 iptables-DINPUT -s192.168.254.153-jACCEPT将匹配该规则的包删除;iptables-DOUPUT 3将OUPUT链中编号为3的规则删除
-P(--policy)设置链的默认目标,所有与链中任何不匹配的信息报都被强制使用此链的策略iptables-PINPUTDROP丢弃所有与INPUT链中任何规则都不匹配的信息包
 
-N(--new-chain)创建一个新的链 iptables-Nallowed-chain新建一个链
 
 
-F(--flush)如果指定链名,那么就会删除该链,如果没有指定,就会删除所有的链
iptables-FINPUT清空INPUT链
iptables-F 清空所有的链
-L(--list)列出链中所有的规则
iptables-L (INPUT)只列出(INPUT)链的策略
-I将一条规则添加到链的第一个
 
iptables-IINPUT -s192.168.254.153-jACCEPT
 
###########################################################################
match部分----------匹配的条件
 
iptables命令的可选match部分指定信息包与规则匹配所应具有的特征(如源地址、目的地址、协议等)。匹配分为通用匹配和特定于协议的匹配两大类。这里将介绍可用于采用任何协议的信息包的通用匹配。还是再用个表格来对比吧。
 
参数功能举例
 
-p(--protocol)匹配协议,例如TCP、UDP、ICMP
iptables-AINPUT-pTCP,UDP
等同于iptales-AINPUT-p!ICMP都是匹配TCP和UDP的意思
 
-s(--source)信息报源地址的匹配
 
iptables-A OUTPUT-s192.168.0.125
-d(--destination)匹配信息包的目的IP
 
iptables-A INPUT-d192.168.0.125
########################################################################
target目标部分------------匹配到以后的动作
www.dnzg.cn
 
参数功能举例
ACCEPT当信息包与具有ACCEPT目标的规则完全匹配时,
就会被接受,允许它前往目的地
 
iptables-AINPUT -s192.168.254.153-jACCEPT
 
DROP当信息包与具有DROP目标的规则完全匹配时,会阻止该信息包
 
iptables-AINPUT -s192.168.254.153-jDROP
REJECT与DROP类似,但是比DROP好,REJECT会将错误信息发回给信息包的发送方,并且不会留下死套接字
 
iptables -A FORWARD-pTCP--dport22-jREJECT
SNAT 源地址转换,SNAT支持转换为单IP,也支持转换到IP地址池
 
iptables-tnat-APOSTROUTING-s192.168.0.0/24 -jSNAT--to1.1.1.1 
将内网192.168.0.0/24的原地址修改为1.1.1.1
 
 
#######################################################################
简单应用举例
 
iptables-tnat-APOSTROUTING-s10.8.0.0/255.255.255.0-oeth0-jSNAT--to-source192.168.5.3
 
把所有10.8.0.0网段的数据包SNAT成192.168.5.3的ip然后发出去(源地址的转换)
 
 
 
iptables -t filter -A INPUT -p icmp -j REJECT ----------------拒绝其他主机ping
 
 
iptables -t  filter -IINPUT  -p tcp --dport 22 -j reject ------------禁止通过ssh访问我的主机
 
 
 
iptables -t  filter -A INPUT  -p tcp --dport 22-s10.1.1.1 -j ACCEPT------------允许10.1.1.1通过ssh访问我的主机
iptables-tfilter-AINPUT-mmac--mac-source00:14:5E:28:A3:20-ptcp--dport22-jACCEPT
 
iptables-tfilter-AINPUT-ptcp--dport22-jREJECT      
 
-------------------------------------只有这个mac地址的用户才能ssh访问我的主机
 
 
 
 iptables-tnat-APOSTROUTING-s192.168.0.0/24-jMASQUERADE---------将源地址是192.168.0.0/24的数据包进行地址伪装
 
 
 
iptables -t  filter -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT 
 
iptables -t  filter -A INPUT -i eth1 -p tcp --dport 22 -j reject
 
------------------------------------------允许用户通过eth0网口ssh过来
本文来自系统大全为您提供如需转载请注明!推荐win10下载

文档

iptables知识理论的学习与实践举例

 。iptables的命令使用结构是这样的 ; ;iptables[-ttable]command[match][target] ;下面一项一项来介绍。 。[-ttable]部分。 。[-ttable]选项允许使用标准表之外的任何表。表是包含仅处理特定类型信息包的规则和链的信息包过滤表。有三个可用的表选项:filter、nat和mangle。该选项不是必需的,如果未指定,则filter作为缺省表。 。filter ;用于一般信息包的过滤,包含INPUT、OUTPUT和FORWARD链。 。INPUT:代表匹配目的IP是本机的数据包。 。OUTPUT:代表匹配源ip是本机的数据包。 。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top