Linux运维知识之Linux的铜墙铁壁:防火墙之iptables
小标 2018-12-21 来源 : 阅读 1096 评论 0

摘要:本文主要向大家介绍了Linux运维知识之Linux的铜墙铁壁:防火墙之iptables,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之Linux的铜墙铁壁:防火墙之iptables,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。


来源


所谓防火墙,实质上是指由软硬件组合成的一个在内外网之间构造的一种保护屏障,它是一种隔离技术。因此从物理上区分,可以分为软件和硬件防火墙,从逻辑上区分,可以分为主机和网络防火墙,而我们现在要讲到的iptables,是属于防火墙中的软件防火墙的范畴,但它只是一个命令行工具或者说是一种客户端代理,并不是真正的防火墙,用户通过这个代理,把安全设定执行到真正的防火墙框架中,这个框架叫做Netfilter


原理


Netfilter是Linux中的一个子项目,它的主要功能是进行数据包过滤、连接跟踪、地址转换等,而iptables则是netfilter提供的对用户数据包进行过滤、修改等操作的一种命令行工具,当数据包通过网卡进入进入内核时,它得先经过iptables的五条链,这些链都有相应的处理数据包的规则,而我们正是通过在这些链上设置规则来控制管理数据包,从而达到防火墙的功能。每当数据包到达一个链时,iptables就会从链中的所有规则逐一开始校验该数据包是否符合规则中限定的条件。若满足,系统就会根据每个规则定义的方法来处理该数据包;若不满足,iptables则继续检查下一条规则,如果该数据包不符合链中的任意规则,iptables则会该链的默认策略去处理该数据包。


四个表


iptables的结构是由tables组成,而tables是由链组成,链又是由具体的规则组成。因此我们在编写iptables的规则时,通过要先指定表,再指定链。tables的作用是区分不同功能的规则,并且存储这些规则。


tables的类型分别有:


五条链


链,也称为钩子函数,它是一系列规则的一个组合,当数据包经过这些狗子函数时,她必须完全匹配每一个钩子函数中的所有规则,方能进入下一个钩子函数。


钩子函数的类型分别有:


语法规则


语法:iptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]


1)常用的命令选项:


-t:指定要操纵的表(四个表);


-A:向规则链中添加条目;


-D:从规则链中删除条目;


-i:向规则链中插入条目;


-R:替换规则链中的条目;


-L:显示规则链中已有的条目;


-F:清楚规则链中已有的条目;


-Z:清空规则链中的数据包计算器和字节计数器;


-N:创建新的用户自定义规则链;


-P:定义规则链中的默认目标;


-h:显示帮助信息;


-p:指定要匹配的数据包协议类型;


-s:指定要匹配的数据包源


2)常用的处理动作:


ACCEPT:允许数据包通过


DROP:直接丢弃数据包,不给任何回应信息


REJECT: 拒绝数据包通过,必要时会给数据发送端一个响应的信息


LOG:在/var/log/messages文件中记录日志然后将数据包传递给下一条规则


REDIRECT:  端口映射


SNAT :源地址转换,修改包来源IP为某IP或IP范围,做内网和公网之间的转换


DNAT::目标地址转换。 修改数据包目的地IP为某 Ip 或 IP 范围


3)常用的条件匹配:


1、状态匹配:-m state –state 连接状态


NEW:与任何连接无关的


ESTABLISHED:响应请求或已建立连接的


RELATED:与已有连接有相关性的,如FTP数据连接


2、MAC地址匹配:-m mac –mac-source MAC地址


eg:iptables -A INPUT -m mac --mac-source f0:1b:12:12:22:4f -j DROP


3、IP范围匹配:-m iprange –src-range  IP范围


eg:iptables -A FORWARD -p tcp -m iprange --src-range 192.168.0.1-192.168.0.10 -j ACCEPT


4、多端口匹配:-m multiport –sports 源端口列表  和  -m multiport –sports 目的端口列表


eg:iptables -A INPUT -p tcp -m multiport --dport 11,29,116,121 -j ACCEPT


4)常用的一些iptables策略:


1、拒绝转发来自192.168.2.33主机的数据


iptables -A FORWARD -s 192.168.2.33 -j REJECT 


2、允许转发来自192.168.2.1/99网段的数据


iptables -A FORWARD -s 192.168.2.1/99 -j ACCEPT


3、允许本机开放从TCP端口20-1024提供的应用服务。


iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT 

iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT


4、只允许管理员从202.13.0.0/16网段使用SSH远程登录防火墙主机。


iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT 

iptables -A INPUT -p tcp --dport 22 -j DROP


5、 允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包。


iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT 

iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT


6、屏蔽ip 110.1.1.1的访问


iptables -I INPUT -s 110.1.1.1 -j DROP


7、屏蔽从123.0.0.1到123.255.255.254iptables -I INPUT -s 123.0.0.0/8 -j DROP


8、屏蔽从从123.45.0.1到123.45.255.254iptables -I INPUT -s 124.45.0.0/16 -j DROP


9、屏蔽从从123.45.6.1到123.45.6.254iptables -I INPUT -s 123.45.6.0/24 -j DROP


10、允许所有本机向外的访问iptables -A OUTPUT -j ACCEPT


11、允许访问22端口iptables -A INPUT -p tcp –dport 22 -j ACCEPT


5)常用的iptables命令:


1、查看当前 IPTABLES 规则


service iptables status


2、 将所有iptables以序号标记显示


iptables -L -n --line-numbers


3、 比如要删除INPUT里序号为22的规则


iptables -D INPUT 22


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程