iptables详解

一、iptables介绍

iptables :包过滤防火墙,是内核防火墙netfilter的管理工具。
核心:四表五链

iptables并不是真正意义上的防火墙,可以将它理解为一个客户端工具。
用户通过iptables这个客户端,将用户的安全设定执行到对应的“安全框架”--netfilter中。
netfilter才是正在的防火墙,netfilter位于内核空间。
而iptables是一个命令行工具,位于用户空间,通过这个命令行工具来操作netfilter。
netfilter/iptables组成Linux平台下的包过滤防火墙,它可以完成封包过滤、封包重定向和网络地址转换(NAT)等功能.
防火墙分类

(1)从逻辑上分类
主机防火墙:针对单个主机进行防护
网络防火墙:处于网络入口或者边缘,针对网络入口进行防护,服务于防火墙背后的本地局域网
(2)从物理上分类
硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高
软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低

二、iptables四表五链详解

规则

防火墙的作用就在于对经过的报文匹配“规则”,然后执行对应的“动作”

规则:网络管理员预定义的条件,即如果数据包头符合这样的条件,就这样处理这个数据包。 规则存储在内核空间的信息包过滤表中。
规则指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP、SMTP)等。
当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accep)、拒绝(reject)和丢弃(drop)等。
等。 配置防火墙的主要工作就是添加、修改和删除这些规则。

匹配条件加上处理动作共同组成了规则

netfilter才是真正的防火墙,它是内核的一部分,所以,如果想要防火墙能够达到“防火”的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡。
经过检查后,符合放行条件的才能放行,符合阻拦条件的则需要被阻止。
于是,就出现了input关卡和output关卡,而这些关卡在iptables中被称为“链”。

五链:
INPUT
OUTPUT
PREROUTING:路由前
FORWARD:转发
POSTROUTING:路由后

表:把具有相同功能的规则的集合叫做“表”,不同的规则放置于不同的表中工作,在iptables中定义了四种表,每种表对应不同的功能。

说明
filter表负责过滤功能
nat表network address translation,网络地址转换功能;内核模块:iptable_nat
mangle表拆解报文,做出修改,并重新分装的功能;iptable_mangle
raw表关闭nat表上启用的连接追踪机制;iptable_raw

当iptables定义的四种表处于同一条“链”时,执行的优先级如下:
优先级次序(由高而低):raw–>mangle–>nat–>filter

PREROUTINGraw表,mangle表,nat表
INPUTmangle表,filter表,(centos7中还有nat表,centos6中没有)
FORWARDmangle表,filter表
OUTPUTraw表,mangle表,nat表,filter表
POSTROUTINGmngle表,nat表

在这里插入图片描述

三、iptables基本用法

匹配条件
基本匹配条件扩展匹配条件
源地址Source IP源端口Source Port
目标地址Destination IP目标端口Destination Port
处理动作
动作含义
ACCEPT允许数据包通过
DROP丢弃数据包,不给任何回应信息客户端过了超时时间才会有反应
REJECT拒绝数据包通过,必要时会给数据发送端一个响应的信息
SNAT源地址转换,解决内网用户用同一个公网地址上网的问题
MASQUERADE是SNAT的一种特殊形式,适用于动态的、临时会变的ip上
DNAT目标地址转换
REDIRECT在本机做端口映射,80–>8080
LOG在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则让下一条规则去匹配,也就是说除了记录以外不对数据包做任何其他操作
iptables参数
常用操作命令说明
-A在指定链尾部添加规则
-D删除匹配的规则
-R替换匹配的规则
-I在指定位置插入规则(例:iptables -t filter -I INPUT 1 --dport 80 -j ACCEPT将规则插入到filter表INPUT链中的第一位上)
-L/S列出指定链或所有链的规则
-F删除指定链或所有链的规则
-N创建用户自定义链
-X删除指定的用户自定义链
-P为指定链设置默认规则策略,对自定义链不起作用
-Z将指定链或所有链的计数器清零
-E更改自定义链的名称
-nip地址和端口号以数字方式显示,不解析IP地址,直接显示出IP地址
-t指定要操作的表,缺省时表示filter表
-vverbose,列出详细信息
–line-numbers显示规则序号
-x显示出计算器的精确值
常用规则匹配器说明
-p tcp/udp/icmp/all匹配协议,all会匹配所有协议
-s addr[/mask]匹配源地址
-d addr[/mask]匹配目标地址
- -sport匹配源端口(可指定连续的端口)如- -sport80
- -dport匹配目的端口(可指定连续的端口)如- -dport80
-o interface匹配出口网卡,只适用于FORWARD、POSTROUTING、OUTPUT(例:iptables -A FORWARD -o eth0)
-i interface匹配入口网卡,只适用于PREROUTING、INPUT、FORWARD
- -icmp-type匹配icmp类型(使用iptables -p icmp -h可查看可用的icmp类型)
- -tcp-flags mask comp匹配TCP标记,mask表示检查范围,comp表示匹配mask中的哪些标记(例:iptables -A FORWARD -p tcp --tcp-flags ALL SYN,ACK -j ACCEPT 表示匹配SYN和ACK标记的数据包)
-j DROP/ACCEPT/REJECT/LOG拒绝/允许/拒绝并发出消息/在/var/log/messages中登记分组匹配的记录
-m mac -mac绑定MAC地址
-m limit -limit 1/s 1/m设置时间策略
-s 192.168.1.153或192.168.1.0/24指定源地址或地址段
-d 192.168.1.153或192.168.1.0/24指定目标地址或地址段
-s ! 192.168.1.0指定源地址以外的

iptables -t 表 -A 链 匹配的条件 -j 动作
在这里插入图片描述
规则保存
[root@localhost ~]# service iptables save #保存规则到文件 /etc/sysconfig/iptables
[root@localhost ~]# iptables-save > /root/iptables #导出iptables模板
[root@localhost ~]# iptables-restore < iptables #导入iptables模板

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值