Linux iptables基本使用

相关概念

防火墙除了软件及硬件的分类,也可对数据封包的取得方式来分类,可分为代理服务器(Proxy)封包过滤机制(IP Filter)。代理服务是一种网络服务,通常就架设在路由上面,可完整的掌控局域网的对外连接。IP Filter这种方式可以直接分析最底层的封包表头数据来进行过滤,所以包括 MAC地址、IP、TCP、 UDP、ICMP 等封包的信息都可以进行过滤分析的功能,用途非常广泛。其实Iptables服务不是真正的防火墙,只是用来定义防火墙规则功能的"防火墙管理工具",将定义好的规则交由内核中的netfilter即网络过滤器来读取,从而真正实现防火墙功能。

(一)iptables抵挡封包的方式:

  1. 拒绝让Internet的封包进入Linux主机某些port
  2. 拒绝让某些来源IP的封包进入
  3. 拒绝让带有某些特殊标志( flag )的封包进入
  4. 分析硬件地址(MAC)来提供服务

(二)iptables命令中设置数据过滤或处理数据包的策略叫做规则,将多个规则合成一个链,叫规则链。

规则链则依据处理数据包的位置不同分类:

PREROUTING: 在进行路由判断之前所要进行的规则(DNAT/REDIRECT)
INPUT: 处理入站的数据包
OUTPUT: 处理出站的数据包
FORWARD: 处理转发的数据包
POSTROUTING: 在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)

(三)iptables中的规则表是用于容纳规则链,规则表默认是允许状态的,那么规则链就是设置被禁止的规则,而反之如果规则表是禁止状态的,那么规则链就是设置被允许的规则。

**raw表:**确定是否对该数据包进行状态跟踪

**mangle表:**为数据包设置标记(较少使用)

**nat表:**修改数据包中的源、目标IP地址或端口

**filter表:**确定是否放行该数据包(过滤)

规则表的先后顺序:raw→mangle→nat→filter

规则链的先后顺序:

**入站顺序:**PREROUTING→INPUT

**出站顺序:**OUTPUT→POSTROUTING

**转发顺序:**PREROUTING→FORWARD→POSTROUTING

内建表与链的关系流程图(去掉了mangle表):

另外注意:

1.没有指定规则表则默认指filter表。

2.不指定规则链则指表内所有的规则链。

3.在规则链中匹配规则时会依次检查,匹配即停止(LOG规则例外),若没匹配项则按链的默认状态处理。

(四)iptables命令中则常见的控制类型有:

ACCEPT: 允许通过.
LOG: 记录日志信息,然后传给下一条规则继续匹配.
REJECT: 拒绝通过,必要时会给出提示.
**DROP:**直接丢弃,不给出任何回应.

iptables命令基本参数和用法

**(一)格式为:**iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]

例如:

"iptables --[A|I 链] [-i|o 网络接口] [-p 协议] [-s 来源ip/网域] [-d 目标ip/网域] --j[ACCEPT|DROP]"

下表格为几乎所有常用的iptables参数:

|-------------|-----------------------------------------|
| 参数 | 作用 |
| -P | 设置默认策略:iptables -P INPUT (DROP|ACCEPT) |
| -F | 清空规则链 |
| -L | 查看规则链 |
| -A | 在规则链的末尾加入新规则 |
| -I num | 在规则链的头部加入新规则 |
| -D num | 删除某一条规则 |
| -s | 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。 |
| -d | 匹配目标地址 |
| -i 网卡名称 | 匹配从这块网卡流入的数据 |
| -o 网卡名称 | 匹配从这块网卡流出的数据 |
| -p | 匹配协议,如tcp,udp,icmp |
| --dport num | 匹配目标端口号 |
| --sport num | 匹配来源端口号 |

(二)Iptables规则查看与清除

查看:

清除:

策略(Policy)的清除:

(三)Iptables开放网口与ip来源

例:所有的来自lo这个网口的封包,都予以接受

iptables --A INPUT --i lo --j ACCEPT

例:目标来自192.168.1.200这个IP的封包都予以接受

iptables --A INPUT --i eth0 --s 192.168.1.200 --j ACCEPT

例:192.168.1.0/24可接受,但192.168.1.10丢弃

iptalbes --A INPUT --i eth0 --s 192.168.1.0/24 --j ACCEPT

iptables -A INPUT -i eth0 -s 192.168.1.10 -j DROP

(四)Iptables规则记录

例:# iptables -A INPUT -s 192.168.1.200 -j LOG

相关信息就会被写入到/var/log/messages当中,然后该封包会继续进行后续的规则比对。LOG这个动作仅在进行记录而已,并不会影响到这个封包的其它规则比对的。

(五)Iptables开放tcp、udp端口

例:开放samba端口(udp137,138;tcp139,445)

iptables --A INPUT --i eth0 --p udp --dport 137:138 --j ACCEPT

iptables --A INPUT --i eth0 --p tcp --dport 139--j ACCEPT

iptables --A INPUT --i eth0 --p tcp --dport 445--j ACCEPT

(六)iptables匹配ICMP端口和ICMP类型

iptables --A INPUT --p icmp --icmp-type 类型 --j ACCEPT

参数:--icmp-type :后面必须要接 ICMP 的封包类型,也可以使用代号,

(七)Iptables --syn的处理方式

指定TCP匹配扩展

使用 --tcp-flags 选项可以根据tcp包的标志位进行过滤。

#iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN

#iptables -A FROWARD -p tcp --tcp-flags ALL SYN,ACK

上实例中第一个表示SYN、ACK、FIN的标志都检查,但是只有SYN匹配。第二个表示ALL(SYN,ACK,FIN,RST,URG,PSH)的标志都检查,但是只有设置了SYN和ACK的匹配。

#iptables -A FORWARD -p tcp --syn

选项---syn相当于"--tcp-flags SYN,RST,ACK SYN"的简写。

(八)Iptables状态模块

例:只要已建立或相关封包就予以通过,只要是不合法封包就丢弃

iptables --A INPUT --m state --state RELATED ESTABLISHED --j ACCEPT

iptables --A INPUT --m state --state INVALID --j DORP

例:对局域网内mac地址为00:0C:29:56:A6:A2主机开放其联机

[root@linux ~]# iptables -A INPUT -m mac --mac-source 00:0C:29:56:A6:A2 -j ACCEPT

(九)Iptables保存于恢复

iptables-save > /etc/sysconfig/iptables.log

iptables-restore < /etc/sysconfig/iptables.log

相关推荐
yaosheng_VALVE10 小时前
探究全金属硬密封蝶阀的奥秘-耀圣控制
运维·eclipse·自动化·pyqt·1024程序员节
dami_king10 小时前
SSH特性|组成|SSH是什么?
运维·ssh·1024程序员节
一个通信老学姐5 天前
专业125+总分400+南京理工大学818考研经验南理工电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
sheng12345678rui5 天前
mfc140.dll文件缺失的修复方法分享,全面分析mfc140.dll的几种解决方法
游戏·电脑·dll文件·dll修复工具·1024程序员节
huipeng9266 天前
第十章 类和对象(二)
java·开发语言·学习·1024程序员节
earthzhang20216 天前
《深入浅出HTTPS》读书笔记(19):密钥
开发语言·网络协议·算法·https·1024程序员节
爱吃生蚝的于勒7 天前
计算机基础 原码反码补码问题
经验分享·笔记·计算机网络·其他·1024程序员节
earthzhang20217 天前
《深入浅出HTTPS》读书笔记(20):口令和PEB算法
开发语言·网络协议·算法·https·1024程序员节
一个通信老学姐8 天前
专业140+总分410+浙江大学842信号系统与数字电路考研经验浙大电子信息与通信工程,真题,大纲,参考书。
考研·信息与通信·信号处理·1024程序员节
earthzhang20218 天前
《深入浅出HTTPS》读书笔记(18):公开密钥算法RSA(续)
网络·网络协议·算法·https·1024程序员节