相信作为运维的我们对iptables都不陌生了,但是简单的基础语法好掌握,稍微复杂一点的语法相信座位菜鸟的我们还不是很了解,今天我就总结些给菜鸟提升的一些知识。

首先介绍下Netfilter与iptables的关系。Netfilter是运行在Linux内核中的小功能,作为Linux的第三代防火墙。而iptables则是一个管理Netfilter的一个工具。

然后要说的一个重要的小知识点,在菜鸟级别应该需要知道的,就是规则匹配方式。当我们在防火墙上添加新规则时,这些规则是按照“先后顺序”一条一条被加入到链中的。因此,第一条被加进来的规则,就会存放在链内的第一条规则,最后加进来的就会使链中的最后一条规则。当一个数据包进入链中之后,filter机制就会根据该数据包的特征,从链中的第一条规则逐一向下匹配。假设该数据包的特征在第一条规则就被匹配到,将由这条规则来决定数是否放弃该数据包,如果该规则说:“该数据包丢弃掉”,那么数据包马上就被丢弃掉,不管后面的规则内容是什么。相反,如果第一条规则说:“该数据包可以进来”,那么该数据包随即就进入到“本机进程”的位置,当然不管后面的规则内容是什么也都不再重要。如果都没匹配到,那默认策略就发挥作用了,因为默认策略用永远是每个链的最低端。默认策略的默认状态是ACCEPT。

接下来就说些小提高。

一、iptables的语法分为基本语法与高级语法。filter机制是由ipTables_filter.ko模块提供的功能,而这个模块本身就已经提供了一些简单的匹配过滤方式,而所谓的基本语法是只使用ipTable_filter.ko模块自身提供的功能;而高级语法就是,当基本语法无法满足我们的需求时,我们需要些调用些其他模块去实现功能,使用这些其他模块的语法,我们就称之为高级语法。例如-m mac 就是告诉iptables工具,我们需要调用tx_mac.ko这个模块的功能。

二、xt_state.ko模块。state模块定义的是连接状态,这个连接状态跟tcp/ip中的12种连接状态完全两码事,切勿混为一谈。state的连接状态分4种。

第一种:ESTABLISHED,解释为只要数据包能够成功穿越防火墙,那么之后的所有的数据包(包括反向的的所有数据包),其状态都会是ESTABLISHED。

第二种:NEW,比如客户端主机使用tcp port 50000,连接服务器端tcp port 22,这一条链路中的第一个数据包的状态就是NEW。

第三种:RELATED,只要应答的数据包是因为本机先送出一个数据包而导致另一条连接的产生,那么这个新连接的所有数据包都属于RELATED状态的数据包。

第四种:INVALID,状态不明的数据包不属于以上的三种的任何一种。

对应语法:

iptables -A INPUT -p tcp -m state --state INVALID -j DROP  一般放在匹配规则最上方,直接把不名状态的包丢弃掉。

iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT 紧接着INVALID状态的语句,允许是ESTABLISHED与RELATED状态的数据包进入本机。

小总结:

-A 加入新规则  -I 插入新规则  -R 取代规则  -D删除规则

iptables -t filter -F

iptables -t filter -P INPUT DROP

iptables -t filter -P FORWARD DROP

iptables -A INPUT -p tcp -m state --state INVALID -j DROP

iptables -A INPUT -p tcp -d  192.168.0.1(localhostserver) --dport 25 -j ACCEPT

iptables -A INPUT -p tcp -d  192.168.0.1(localhostserver) --dport 80 -j ACCEPT

iptables -A INPUT -p tcp -s 192.168.0.2(客户端) -d 192.168.0.1 --dport 22 -j ACCEPT

iptables -A INPUT -p tcp -s 192.168.0.2(客户端) -d 192.168.0.1 --dport 23 -j ACCEPT

iptables -A INPUT -p tcp -m state  --state ESTABLISHED,RELATED -j ACCEPT

三、几种常用的高级匹配。

高级匹配一般是只对不同类别的数据包内部的信息的一个过滤。

(1) ICMP的高级匹配————内置的匹配方式

对于ICMP包又分为请求包与应答包,请求包与应带包中都有两个字段,分别是type与code,他们的区别就是请求包中的type的值为8,而应答包中的type的值为:0,所以当我们的需求是,只想ping别人,而不要别人ping自己时的iptables的语法如下:
          iptables -A INPUT -p icmp --icmp-type 8 -j DROP  把进入本机的icmp包中type为8的包都DROP掉。

(2)TCP/IP的高级匹配

通过分析TCP的包头内容,--dport 与--sport我们都很熟悉了,但是TCP-Flags的匹配应该还很陌生。

转载于:https://blog.51cto.com/linuxmylife/1213030

iptables 小提升相关推荐

  1. iptables小案例,nat表应用

    2019独角兽企业重金招聘Python工程师标准>>> iptables小案例: 需求1: 只针对filter表,预设INPUT链DROP,其他两个链ACCEPT,然后针对192.1 ...

  2. iptables小案例

    2019独角兽企业重金招聘Python工程师标准>>> iptables常用知识回顾点 iptables -I/-A/-D 后紧跟 链 ,可以是INPUT,OUTPUT,FORWAR ...

  3. 10.15 iptables filter表案例

    2019独角兽企业重金招聘Python工程师标准>>> iptables常用知识回顾点 iptables -I/-A/-D 后紧跟 链 ,可以是INPUT,OUTPUT,FORWAR ...

  4. 【CentOS 7笔记43】,防火墙和iptables filter表#

    2019独角兽企业重金招聘Python工程师标准>>> shallow丿ove firewalld和netfilter setenforce 0 #临时关闭selinux /etc/ ...

  5. t460p和t470p对比评测_老模具小升级 ThinkPad T470p商务本评测

    老模具小升级 ThinkPad T470p商务本评测 2017年03月29日 05:35作者:孙斌编辑:孙斌文章出处:泡泡网原创 分享 ThinkPad品牌的商务本中,T系列无疑是元老级的存在.主打性 ...

  6. 31次课(iptables filter表案例、iptables nat表应用)

    10.15 iptables filter表案例 iptables小案例,需求需要把80端口22端口还有21端口放行.但是22端口我需要指定一个ip段,只有这个ip段的ip访问的时候才可以访问,其他段 ...

  7. Jamf Pro 10.27: IT管理员的幸福指数的又一次提升

    1 Jamf Pro 10.27,旨在提升IT管理员的幸福指数.我们听取了您的反馈和要求,并很荣幸为您带来此最新版本. Jamf Pro 10.27专注于改善管理员的日常操作,使Jamf易于使用且设备 ...

  8. 造车新势力包揽2家,IDG资本投资的小鹏汽车市值超1026亿!

    ​ 8月27日晚间,小鹏汽车正式登陆美股,与蔚来汽车.理想汽车正式组成美股的新造车势力三角. 自此,以IPO为分界线,新造车势力的第一梯队划分完成.回溯新造车势力的崛起历史,可以发现新造车赛道是一个极 ...

  9. 大数据概况及Hadoop生态系统总结

    觉得有帮助的,请多多支持博主,点赞关注哦~ 文章目录 大数据概况及Hadoop生态系统 1.大数据概念理解 1.1.什么是大数据? 1.2.大数据特征(4V)? 1.3.大数据应用场景? 1.4.大数 ...

最新文章

  1. 实现手机左右滑屏效果
  2. 有益的CountDownLatch和棘手的Java死锁
  3. Solve one floodlight install problem
  4. 并注册烧写钩子 获取启动介质类型_Spark Application的注册 源码剖析
  5. 库,表,记录的相关操作
  6. Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战
  7. 《More_Effective_C++》pdf
  8. 09年杀毒软件大比拼
  9. MyBatis的高频面试题
  10. Java SE基础知识详解第[12]期—集合(Set、Collections、Map、集合嵌套)
  11. 微信朋友圈卖葡萄经验分享
  12. List of colors (from wikipedia)
  13. 奔跑的小熊案例(含图)
  14. for和of引导的不定式结构的区别
  15. Java实现Excel和word转pdf加水印,复制及可用
  16. 把D盘的Program Files文件夹删除
  17. python strip函数
  18. Mac-XQuartz-linux
  19. Android Root工程仓库万能大法
  20. PNAS:睡眠时间预测大学生的第一年的成绩

热门文章

  1. jdbc postgresql mysql_mysql改为postgresql 语法常见问题
  2. tinymce 工具栏 不显示_VBA自动创建outBar式样的工具栏
  3. python分析pcap文件_利用Python库Scapy解析pcap文件的方法
  4. 扩展单精度格式是什么_SVE(可伸缩矢量扩展)介绍
  5. 天线发射功率计算公式_天线基本知识及应用―链路及空间无线传播损耗计算
  6. python tuple
  7. python 爬虫应用
  8. php7.1 伪静态失效,解决CodeIgniter伪静态失效
  9. url动态追加参数_url设置的注意事项有哪些?
  10. 富士康被黑客攻击,索要 2.3 亿元赎金:已加密约1200台服务器,窃取了100 GB的未加密文件,并删除20~30TB的备份