设为首页 收藏本站
查看: 295|回复: 0

[经验分享] iptables 命令学习

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-20 08:12:37 | 显示全部楼层 |阅读模式
Netfilter架构
iptables命令是netfilter的用户层配置工具,所以要用好iptables命令,首先要熟悉其实现原理。
IPv4协议栈为了实现对netfilter架构的支持,在IP packet在
IPv4协议栈上的游历路线之中,仔细选择了五个参考点‘241。在这五个参考点上,各引入了一行对NF—HOOK()宏函数的~个相应的调用。这五个参考点被分别命名为PREROUTING,LOCALIN,FORWARD,LOCALOUT和POSTROUTING。Linux内置的防火墙模块都是以这五个点(以下称为钩子点或HOOK点)作为调用的入口。
如下图所示,描述了ip 封包的处理流程,我们在应用层通过iptables命令实现在这5个钩子点创建不同的规则,从而实现所需功能。


DSC0000.jpg
Iptables命令:
-t:用来指定规则表,目前netfilter内建3个规则表:filter、nat、mangle。
其中
filter表:主要用来建立对数据包进行过滤的规则,该表是默认规则表,当不指定表的类
型时即为filter表,该表包括3个chain,分别是INPUT、OUTPUT、FORWARD
   Nat表:该表主要用来进行一对一、一对多、多对多的地址转换功能,该表包括
PREROUTING、POSTROUTING两个chain
   Mangle表:此规则表拥有PREROUTING、FORWARD和POSTROUTING三个规则链。除了
进行网址转换工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS)或者是设定MARK(将封包作记号,以进行后续的过滤),这时就必须将这些工作定义在mangle规则表中,使用率不高
-A:新增加一个规则到一个指定的规则chain中(存放在规则chain的表尾)
Iptables –t filter –A INPUT --dport 80 –j DROP
-D:删除一个规则chain中的一条指定规则
Iptables –t filter –D INPUT index
-R:替换一个规则chain中的一条指定规则
Iptables –t filter –R INPUT 1 –dport 80 –j ACCEPT
-I:向一个指定的规则chain中插入一个新的规则(存放在规则chain的表头)
Iptables -t filter -I INPUT --dport 80 -j DROP
-L:(--list)列出一条规则chain中的所有规则
Iptables -L -t filter INPUT
-F:(--flush)删除一条规则chain中的所有规则
Iptables -t filter -F INPUT
Iptables -F -t filter
-Z:(--zero)将一个chain或所有chain的数据包计数清零
Iptables -Z -t filter
-N:(--new)新建一个chain


-X:( --delete-chain)删除一个用户链
-P:( --policy)设置一条链的默认规则
Iptables -t filter -P INPUT  DROP
-E:( --rename-chain) 修改一个链的名称
Iptables –E INPUT NEW_INPUT
OPTIONS:
--proto       -p:协议类型
--source      -s:源地址/掩码
--destination -d:目的地址/掩码
--in-interface –i:入口接口名称
--out-interface –o:出口接口名称
--sport,--source-port:源端口
--dport,--destination-port:目的端口
--tcp-flags:设置TCP包的状态标志,包括SYN
(同步)、ACK(应答)、FIN(结束)、RST(重设)、URG(紧急)、PSH(强迫推送)等
均可使用于参数中,除此之外还可以使用关键词ALL和NONE进行匹配。匹配标志时,可
以使用! 运算符行反向匹配。
--icmp-type:ICMP包的类型标志
-m mac ,--mac-source:源mac地址


-j:(--jump)跳转动作,有ACCEPT、DROP、REJECT、REDIRECT、MASQUERADE、LOG、DNAT、
SNAT、MIRROR、QUEUE、RETURN、MARK.
其中
REDIRECT:封包重新导向到另一个端口(PNAT),进行完此处理动作后,将会继续匹配
其它规则。这个功能可以用来实现透明代理或用来保护web服务器
MASQUERADE:改写封包来源IP 为防火墙NICIP,可以指定port对应的范围,进行完此
处理动作后,直接跳往下一个规则链(manglepostrouting)。这个功能与SNAT略有不同,
当进行IP 伪装时,不需指定要伪装成哪个IP,IP会从网卡直接读取,当使用拨号接连
时,IP通常是由ISP公司的DHCP服务器指派的,这个时候MASQUERADE特别有用。
SNAT:改写封包来源IP 为某特定IP 或IP 范围,可以指定port对应的范围,进行完此
处理动作后,将直接跳往下一个规则。
   DNAT:改写封包目的地IP 为某特定IP 或IP 范围,可以指定port对应的范围,进行完
此处理动作后,将会直接跳往下一个规则链(filter:input 或filter:forward)
         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-128875-1-1.html 上篇帖子: 简单的iptables规则定义的步骤与方法 下篇帖子: CentOS / Redhat Iptables Firewall Configuration Tutorial
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表