前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux防火墙iptables工作原理

linux防火墙iptables工作原理

作者头像
dys
发布2018-04-03 13:07:56
1.8K0
发布2018-04-03 13:07:56
举报
文章被收录于专栏:性能与架构性能与架构

防火墙对于系统安全至关重要,iptables则是防火墙的管理工具 iptables帮助我们定义各种验证规则,实现对网络的验证控制 数据包的传输过程 数据包来到防火墙后,传输过程会经历一系列验证链: (1)prerouting 数据包作路由选择前 (2)forward 转发数据包的时候 (3)input 数据包进入系统的时候 (4)output 系统发出数据包的时候 (5)postrouting 数据包作路由选择后 过程说明

从外界到达防火墙的数据包,先被 prerouting 规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处) 如果数据包的目标是本机,内核将其传给input链处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如Apache服务器)进行响应,响应完成后如果需要发出数据包,就交给output规则链,验证通过之后进行路由选择,然后传递给 postrouting 规则链(是否修改数据包的地址等)进行处理 如果数据包的目标地址是其它外部地址,则内核将其传递给 forward 链进行处理(是否转发或拦截),然后再交给postrouting 规则链(是否修改数据包的地址等)进行处理 iptables的规则表 iptables从名字就可以看出,它还有个重要的概念,就是验证表 iptables内置了4个表,每个表中定义了各个规则链中的具体验证规则 这几个表有优先级,当数据包到达某个规则链时,就会按照表的优先级,取得表中定义的此验证链的规则 4个表及优先级如下

iptables的管理 (1)查看已添加的规则 iptables -L -n (2)清除已有规则 iptables -F iptables -X iptables -Z (3)添加规则 先看几个示例,然后通过示例看各项具体含义 #允许所有本机向外的访问 iptables -A OUTPUT -j ACCEPT # 允许访问22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #屏蔽单个IP的命令是 iptables -I INPUT -s 123.45.6.7 -j DROP #减少不安全的端口连接 iptables -A OUTPUT -p tcp --sport 31337 -j DROP iptables命令格式 iptables table command chain parameter action table 指定要操作哪个规则表 通过 -t 指定,没指定时默认为 filter 表 command 定义如何对规则进行管理 常用命令有 -A : 追加,在当前链的最后新增一个规则 -I num : 把当前规则插入为第几条,没有num时插入头部 -R num : Replays替换/修改第几条规则 -D num : 删除,明确指定删除第几条规则 chain 指定接下来的规则是在哪个链上的 parameter 指定匹配规则 常用参数 -s:指定作为源地址匹配,必须是IP -d:表示匹配目标地址 -p:用于匹配协议(TCP/UDP/ICMP) --dport XX-XX:指定目标端口,不能指定多个非连续端口,只能指定单个端口 --sport:指定源端口 action 指定如何进行处理 -j ACCEPT 同意接受 -j DROP 悄悄放弃

-j REJECT 明确拒绝

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档