iptables命令

来源:互联网 发布:焦点堆叠软件 编辑:程序博客网 时间:2024/06/05 18:03

iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,使用iptables命令可以很好的管理防火墙。

iptables的表与链

iptable的四张表
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命令的简单使用

准备工作
关闭防火墙

systemctl stop firewalld[root@www ~]# systemctl disable firewalld

常用的操作命令
-A 或 -append 在所选链尾加入一条或多条规则

-t 指定表的名称
-n 不做解析
-p 网络协议名称
–dport 端口
-s 数据来源
–j 动作
ACCEPET 允许
REJECT 拒绝

-D 或 -delete 在所选链尾部删除一条或者多条规则 (加上数字,表示删除第几条策略)
例:

iptables -D INPUT 2 #删除INPUT链中的第二条策略

-R 或 -replace 在所选链中替换一条匹配规则
例:

iptables -R INPUT 1 -p tcp --dport 80 -j REJECT #修改INPUT链的第一条策略

-I 或 -insert 以给出的规则号在所选链中插入一条或者多条规则. 如果规则号为1,即在链头部.
例:

iptables -I INPUT -p tcp --dport 80 -j REJECT #插入策略到INPUT表中

-L 或 -list 列出指定链中的所有规则,如果没有指定链,将列出链中的所有规则.

-F 或 -flush 清除指定链和表中的所由规则, 假如不指定链,那么所有链都将被清空.

-N 或 -new-chain 以指定名创建一条新的用户自定义链,不能与已有链名相同.
例:

iptables -N redhat #增加redhat链

-X 或 -delete-chain 删除指定的用户定义帘,必需保证链中的规则都不在使用时才能删除,若没有指定链,则删除所有用户链.

-E 用于修改链的名称
例:

iptables -E redhat parameter #将redhat链改名为parameter

-P 或 -policy 为永久帘指定默认规则(内置链策略),用户定义帘没有缺省规则,缺省规则也使规则链中的最后一条规则,用-L显示时它在第一行显示.
例:

iptables -P INPUT DROP #把INPUT默认策略修改为DROP

-C 或 -check 检查给定的包是否与指定链的规则相匹配.

-Z 或 -zero 将指定帘中所由的规则包字节(BYTE)计数器清零.

-h 显示帮助信息.

filter表策略的查看

iptables -t filter -L

这里写图片描述
iptable的清空

iptable -F

当前策略的保存

service iptables save

我们可以尝试使用iptables写一些策略加入到表中

iptables -A INPUT -i lo -j ACCEPT #允许回环端口loiptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许tcp协议并开启22端口iptables -A INPUT -s 172.25.254.211 -j ACCEPT #允许ip172.25.254.211访问主机的所有端口iptables -A INPUT  -j REJECT #拒绝本机的数据来源

这里写图片描述