您的位置:首页 > 其它

iptables系列之基础原理

2017-05-14 18:37 260 查看
Linux网络防火墙

netfilter :frame 过滤,内核中的过滤框架,规则生效的位置框架
iptables:附加在netfilter上,生成防火墙规则,真正实现数据报文过滤,NAT,mangle等规则生成的工具

防火墙:工作在主机或者网络的边缘,对于进出的报文进行检查监控,并根据事先定义好的规则(其中有匹配标准和处理办法),一旦符合标准,对这个报文进行相应的处理规则的组件称为防火墙

iptables的实现实际上是基于报文的过滤,实例如下:
1.IP:源地址,目标地址
TCP:源端口,目标端口
UDP:源端口,目标端口
ICMP:icmp报文类型

发展历程:

linux2.0
ipfw/firewall
linux2.2
ipchain/firewall
linux2.4
iptables/netfilter

netfilter的过滤有下面五个规则链
PREROUTING
INPUT
FORWARD
OUTPUT
POSTROUTING

四种表
filter,过滤表
INPUT,OUTPUT,FORWARD

nat,地址转换表
prerouting,output,postrouting

mangle(拆分,修改,封装) 表
prerouting,forwarding,output,postrouting

raw表
prerouting,output

iptables:
500条规则
能否使用自定义链?
可以使用自定义链,但是只在被调用的时候才能发挥作用,而且如果没有自定义链中的任何规则匹配,还应该有返回机制

*用户可以删除自定义空链
*默认链无法删除

每个规则都有两个内置的计数器
被匹配的报文个数
被匹配的报文大之和

规则内包含:匹配标准,处理动作
匹配标准:
1.通用匹配

-s,--src 源地址

-d,--dst 目标地址

-p(tcp,udp,icmp)指定协议

-i INTERFACE指定数据报文流入的接口(ethX)
可用于定义标准的链,PREROUTING ,INPUT,FORWARD

-o INTERFACE 指定数据报文流出的接口

可用于标准定义的链,OUTPUT,POSTROUTING,FORWARD,

2.扩展匹配
a.隐含扩展:不用特别指明哪个模块进行的扩展,因为此时使用-p(tcp/udp/icmp)

-p tcp 指定目标端口,源端口
--tcp-flags mask comp :只检查mask 指定的标志位,是逗号分隔的标志位列表;comp:此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0

可根据ACK,FIN,RST,SYN等标志位的值来盘端报文的类型,例如当SYN=1,其余为0,则这个报文时TCP/IP的第一次握手

-p-icmp

--icmp-type -8 被ping通

--icmp-type -1能够发出ping 报文

-p-udp

指定目标端口以及源端口

b. 显示扩展:必须指明由哪个模块进行的扩展,在iptables会用-m选项即可完成功能

使用额外的匹配机制
-m EXTENSTION --spe-opt

state:状态扩展 -m state --state NEW -ij ACCEPT
结合ip_constrack追踪会话的状态
NEW:新连接请求
ESTABLISHED:已建立的连接
INVALID:非法连接
RELATED:相关联的

-m multiport :离散的多端口匹配扩展
--source-ports
--destination-ports
--ports

-m iprange 指定一段地址

--src-range
--dst-range

-m connlimit 连接数限制

! --connlimit-above n

-m limit
--limit RATE速率限定

#iptables-save> /etc/sysconfig/iptables.2021
#iptables-restore < /etc/sysconfig/iptables.2021

命令
管理规则
-A:附加一条规则,添加在链的尾部
-I CHAIN [num]:插入一条规则,插入为对应CHAIN上的第num条
-D CHAIN [num]:删除指定链中的第Num条规则
-R CHAIN [num]:替换指定的规则
管理链

-F [CHAIN]:flush用于清空指定规则链,如果省略CHAIN ,则可以删除对应表中的所有链
-P CHAIN :设定指定链的默认策略
-N :自定义一个新的空链
-X:删除一个自定义的空链
-Z:置零指定链中所有规则的计数器
-E:重命名自定义的链
查看类
-L:显示指定表中的规则
-n:以数字形式显示主机地址和端口号
-x:显示计数器的精确值

-v:显示链和规则的详细信息 -vv:
--line-numbers:显示规则号码

执行的动作(target)
-j指定
ACCEPT放行,允许通过

DROP丢弃
REJECT拒绝
DNAT目标地址转换
SNAT源地址转换
REDIRECT(端口重定向)

MASQUERADE:地址伪装 MAC表的PREROUTING链实现
MARK打标记
LOG 日志

iptables不是服务,但有服务脚本:脚本服务的主要作用在于管理保存的规则
装载或移除iptable/netfilter相关的内核模块
iptables_nat,iptales_filter,iptable_mangle,iptables_raw,ip_nat,

保存规则:#service iptables save /etc/sysconfig/iptables
#iptables-save> /etc/sysconfig/iptables.2021#iptables-restore < /etc/sysconfig/iptables.2021
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  防火墙 filter frame