iptables防火墙

目录

引言

一、Linux防火墙基础

1、防火墙的概述

(1)netfilter

(2)iptables

2、iptables的表、链结构

(1)四表五链结构介绍

(2)四表五链的作用

(3)四个表规矩表

(4)五种规矩链

3、数据包控制的匹配流程

(1)规矩表之间的顺序

(2)规矩链之间的顺序

(3)规矩链内的匹配顺序

(4)数据包在规则表、链间的匹配流程

二、编写防火墙规则

1、iptables安装

(1)关闭firewalld防火墙

(2)安装iptables 防火墙

(3)设置iptables开机启动

2、基本语法、控制类型

(1)语法构成

(2)注意事项

(3)数据包的常见控制类型

3、添加、查看、删除规则

(1)iptables命令的常用管理选项

(2)添加新的规则

(3)查看规则列表

(4)删除、清空规则

(5)设置默认策略

4、规则的匹配条件

(1)通用匹配

(2)隐含匹配

(3)显式匹配

总结


引言

伴随着企业将各种服务器的应用系统来为用户提供网络服务,这些服务器在Internet中存在着不安全因素,为了防止黑客的恶意入侵,就需要在网络层针对TCP/IP数据包实施过滤和限制,这时候就需要用到典型的包过滤防火墙,Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和高效率,也因此获得广泛的应用。

一、Linux防火墙基础

1、防火墙的概述

IP 信息包过滤系统,它实际上由两个组件netfilter和iptable组成,主要工作在网络层,针对IP数据包,体现在对包内的IP地址、端口等信息的处理。

(1)netfilter

①属于“内核态”又称内核空间(kernel space)的防火墙功能体系。

②是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

(2)iptables

①属于“用户态”(User Space, 又称为用户空间)的防火墙管理体系。

②是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables目录下。

2、iptables的表、链结构

(1)四表五链结构介绍

①iptables的作用是为包过滤机制的实现提供规则,通过各种不同的规则,告诉netfilter对来自某些源,前往某些目的或具有某些协议特征的数据包应该如何处理,为了更加方便的组织和管理防火墙规则;

②iptables采用了表和链的分层结构,所以它会对请求的数据包的包头数据进行分析,根据我们预先设定的规则进行匹配来决定是否可以进入主机;

③其中每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表,在每个表容器内又包括不同的规则链,根据处理数据包的不同时机划分为五种链。

(2)四表五链的作用

①规则表的作用:容纳各种规则链;表的划分依据:防火墙规则的作用相似。

②规则链的作用:容纳各种防火墙规则,对数据包进行过滤或处理;链的分类依据:处理数据包的不同时机。

③总结:表里有链,链里有规则。

(3)四个表规矩表

①raw:主要用来决定是否对数据包进行状态跟踪 包含两个规则链,OUTPUT、PREROUTING。

②mangle:修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING。

③nat:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、PREROUTING、POSTROUTING。

④filter:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个链,即PREROUTING、POSTROUTING、OUTPUT。

(4)五种规矩链

①INPUT:处理入站数据包,匹配目标IP为本机的数据包。

②OUTPUT:处理出站数据包,一般不在此链上做配置。

③FORWARD:处理转发数据包,匹配流经本机的数据包。

④PREROUTING链:在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上。

⑤POSTROUTING链:在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网。

3、数据包控制的匹配流程

(1)规矩表之间的顺序

规则表应用顺序:raw→mangle→nat→filter

(2)规矩链之间的顺序

①入站数据(来自外界的数据包,且目标地址是防火墙本机):PREROUTING→INPUT→本机的应用程序。

②出站数据(从防火墙本机向外部地址发送的数据包):本机的应用程序→OUTPUT→POSTROUTING。

③转发数据(需要经过防火墙转发的数据包):PREROUTING→FORWARD→POSTROUTING。

(3)规矩链内的匹配顺序

①自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)要么放行,要么丢弃。

②若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)。

注:按第一条规则……第二条规则的顺序进行匹配处理,遵循“匹配即停止”的原则,一旦找到一条匹配规则将不再检查后续的其他规则,如果一直找不到匹配的规则,就按默认规则处理。

默认规则用iptables -L查看,规则链后面出现(policy ACCEPT)即是默认放行;

默认策略不参与链内规则的顺序编排。-F清空链时,默认策略不受影响。

(4)数据包在规则表、链间的匹配流程

①入站数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING链处理(是否修改数据包地址等),然后进行路由选择(判断该数据包应发往何处);如果数据包的目标地址是防火墙本机(如Internet用户访问网关的Web服务端口),那么内核将其传递给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如 httpd 服务器)进行响应。

②转发数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING链处理,然后再进行路由选择;如果数据包的目标地址是其他外部地址(如局域网用户通过网关访问QQ服务器),则内核将其传递给FORWARD链进行处理(允许转发或拦截、丢弃),最后交给POSTROUTING链(是否修改数据包的地址等)进行处理。

③出站数据流向:防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网DNS服务时),首先进行路由选择,确定了输出路径后,再经由 OUTPUT 链处理,最后再交POSTROUTING链(是否修改数据包的地址等)进行处理。入站 PREROUTING INPUT应用程序OUTPUT POSTROUTING。

二、编写防火墙规则

1、iptables安装

(1)关闭firewalld防火墙

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# systemctl disable firewalld.service

(2)安装iptables 防火墙

[root@localhost ~]# yum install iptables iptables-services -y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值