添加规则后注意保存 :
iptables规则配置保存:
(1) 方法一:
# service iptables save
(2) 方法二:
# iptables-save > /etc/sysconfig/iptables
注意:iptables-save是连在一起的,是一个命令,不是参数;
iptables-save 仅仅是列出当前设置,并不是将配置保存
历史介绍: linux 内核2.0 RedHat 5.1 ipfwadmin
linux 内核2.2 RedHat 7.x ipchains
linux 内核2.4 RedHat 9.x iptables
centos 7 firewall
其实linux内核中运行的是 netfilter,用户通过iptables命令来调用 netfilter。
iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置 iptables将会帮助你更有效地管理Linux防火墙。
首先介绍iptables的结构:
iptables -> Tables -> Chains -> Rules.
简单地讲,tables由chains组成,而chains又由rules组成。
首先介绍iptables的结构:
iptables -> Tables -> Chains -> Rules.
简单地讲,tables由chains组成,而chains又由rules组成。
如果把linux当做网络防火墙的话,需要在执行iptables 之前激活ip数据包的转发功能。
因为普通的主机只能处理目标地址为自己的单播数据包,而防火墙需要把符合规则的、且目标地址为其他的机器的数据包进行转发,这样必须激活ip的转发功能(路由功能),激活命令|
echo"1">/proc/sys/net/ipv4/ip_forward 此命令一次有效
编辑 /etc/sysctl.conf 设置net.ipv4.ip_forward=1 执行命令 #sysctl -p 永久生效
因为普通的主机只能处理目标地址为自己的单播数据包,而防火墙需要把符合规则的、且目标地址为其他的机器的数据包进行转发,这样必须激活ip的转发功能(路由功能),激活命令|
echo"1">/proc/sys/net/ipv4/ip_forward 此命令一次有效
编辑 /etc/sysctl.conf 设置net.ipv4.ip_forward=1 执行命令 #sysctl -p 永久生效
一、iptables的表与链
iptables具有Filter, NAT, Mangle, Raw四种内建表:
1. Filter表(过滤)
Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:
INPUT链 – 处理来自外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他网卡设备上。
2. NAT表
NAT表有三种内建链:
PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于 DNAT(destination NAT)。
POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于 SNAT(source NAT)。
OUTPUT链 – 处理本机产生的数据包。
3. Mangle表
Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:
PREROUTING
OUTPUT
FORWARD
INPUT
POSTROUTING
4. Raw表
Raw表用于处理异常,它具有2个内建链:
PREROUTING chain
OUTPUT chain
iptables具有Filter, NAT, Mangle, Raw四种内建表:
1. Filter表(过滤)
Filter表示iptables的默认表,因此如果你没有自定义表,那么就默认使用filter表,它具有以下三种内建链:
INPUT链 – 处理来自外部的数据。
OUTPUT链 – 处理向外发送的数据。
FORWARD链 – 将数据转发到本机的其他网卡设备上。
2. NAT表
NAT表有三种内建链:
PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于 DNAT(destination NAT)。
POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于 SNAT(source NAT)。
OUTPUT链 – 处理本机产生的数据包。
3. Mangle表
Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链:
PREROUTING
OUTPUT
FORWARD
INPUT
POSTROUTING
4. Raw表
Raw表用于处理异常,它具有2个内建链:
PREROUTING chain
OUTPUT chain
iptables定义规则的方式比较复杂:
格式:
iptables [-t table] COMMAND chain [match] [-j ACTION]
格式:
iptables [-t table] COMMAND chain [match] [-j ACTION]
A增加 D删除 R替换 -p 协议
I插入 L列表 -s源地址 -d 目的地址
I插入 L列表 -s源地址 -d 目的地址
F清除所有 -i进入网卡
X清除用户的 -o流出网卡
Z统计归零 --sport源端口 --dport 目的端口
Z统计归零 --sport源端口 --dport 目的端口
N 新建链 P内置链策略
E链改名
E链改名
-t table :3个filter nat mangle 省略即默认为 filter表
COMMAND:执行的命令
chain:指定操作的链,当定义策略的时候,是可以省略的
match :指定匹配模板
-j ACTION :指定如何进行处理
COMMAND:执行的命令
chain:指定操作的链,当定义策略的时候,是可以省略的
match :指定匹配模板
-j ACTION :指定如何进行处理
三
详解COMMAND: