Tao's Blog

Linux运维必备技能之iptables

生活在如今的一个非常开放的网络环境中, 用户可以通过网络来获取自己想要的资讯和可以进行社交、学习。
当然任何事物必有两面性,网络中不免涉及到攻击, 诈骗等等。
作为一个运维人员来说,掌握一种网络安全的工具很是必要。下面来详细学习iptables这个能把Linux防火墙
玩得团团转的家伙。

iptables简介

iptables是一个运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的流动与转送。
当然iptables只是一个Linux防火墙的实现工具,在Centos7中在原有的netfilter/iptables架构的基础上添加了firewalld,
firewalld也是调用了底层的iptables,在这里,笔者主要介绍iptables

iptables默认维护这四张表filter表(过滤规则)、net表(地址转换规则)、mangle表(修改数据标记位规则)、raw表(跟踪数据规则)
和五条链INPUT(数据进入本机后处理)、OUTPUT(数据出本机前处理)、FORWARD(转发数据处理)、PREROUTING(路由前处理)、POSTROUTING(路由后处理)

iptables使用

iptables命令的使用格式: iptables -t [表名(默认filter)] 选项 规则

该表中所列的选项后接链名
| 选项 | 说明 |
| ——— | ——— |
| -A | 追加一条规则(添加到最后一条) |
| -D | 删除一条规则 |
| -F | 清空所有规则 |
| -I | 插入一条规则(添加到第一条) |
| -L | 查看规则列表 |
| -R | 替换一条规则 |
| -Z | 清空所有规则 |

规则中的参数列表:
该表中的参数都可以在其前加上!表示取反
| 参数 | 说明 |
| ——— | ——— |
| -i | 入网网卡接口 |
| -s | 后接源地址 |
| —sport | 后接源端口 |
| -d | 后接目标地址 |
| —dport | 后接目标端口 |
| -p | 后接协议(tcp, udp, icmp) |
| -j | 后接动作(DROP, REJECT, ACCEPT等) |
| -o | 出网网卡接口 |
| -state | 后接状态(INVALID, ESTABLISHED, NEW, RELATED) |

-j后跟的动作列表:
| 动作 | 说明 |
| ——— | ——— |
| ACCEPT | 允许数据包通过 |
| DROP | 丢弃数据包 |
| REJECT | 拒绝数据包 |
| SNAT | 源地址转换 |
| DNAT | 目标地址转换 |
| MASQUERADE | 地址欺骗 |
| LOG | 将数据包信息记录到syslog日志中 |
| REDIRECT | 重定向 |
注:在iptables规则中的顺序很重要,每一个数据包进入到本机中都会按照iptables中的规则依次匹配下去,直到匹配到为止。如果匹配成功,就进行规则处理,不会再匹配下去。
查看规则的顺序可以用--line-number参数进行显示

本文链接: http://taolichuan.com/2016/11/21/Linux运维必备技能之iptables/  转载请注明转载自: 陶之夭夭