Linux网络服务之Linux防火墙

发布时间:2020-07-27 03:18:54 作者:wx5d8a17c45cb5b
来源:网络 阅读:268

Linux网络服务之Linux防火墙

本文核心:

  1. 熟悉Linux防火墙的表、链结构;
  2. 理解数据包匹配的基本流程;
  3. 掌握iptables概念和编写其规则;

一、前言

​ 在之前的各种服务配置过程中,我们在启动服务之前,对于防火墙的设置一般都是直接在命令行输入“systemctl stop firewalld”以及“setenforce 0” 两条命令来关闭防火墙SELinux的功能。这样简单粗暴的操作对防护墙的认知显然是粗浅而不够完善的,那么本文就针对linux防火墙作具体的讲解以及相关的配置。

二、相关概念概述

2.1 何为防火墙?

​ 防火墙,(英文:firewall),是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。

​ 简单举例来说,防火墙就好比家家户户的家门外面的防盗门,主要是起一定的保护作用。虽然这样理解防火墙的概念有失偏颇,不过个人认为比较方便理解一点。不过话说回来,在生产环境中,真正意义上的防火墙是硬件防火墙。那我们先来谈谈防火墙的分类。

​ 从物理层面上说,一般分为硬件防火墙和软件防火墙,其区别顾名思义,实际上的差别也很明显:

2.2为什么需要防火墙?

​ 存在的就是合理的,既然存在防火墙,有防火墙的相关技术,那么就一定有其存在的意义与价值。因此,我们需要了解其实际的功能,才能明白其真正的价值。

​ 防火墙的主要功能如下:

2.3防火墙的主要类型

(1)过滤型防火墙

​ 过滤型防火墙是在网络层与传输层中,可以基于数据源头的地址以及协议类型等标志特征进行分析,确定是否可以通过。在符合防火墙规定标准之下,满足安全性能以及类型才可以进行信息的传递,而一些不安全的因素则会被防火墙过滤、阻挡。

(2)应用代理类型防火墙

应用代理防火墙主要的工作范围就是在OSI的最高层,位于应用层之上。其主要的特征是可以完全隔离网络通信流,通过特定的代理程序就可以实现对应用层的监督与控制。这两种防火墙是应用较为普遍的防火墙,其他一些防火墙应用效果也较为显著,在实际应用中要综合具体的需求以及状况合理的选择防火墙的类型,这样才可以有效地避免防火墙的外部侵扰等问题的出现。

(3)复合型

目前应用较为广泛的防火墙技术当属复合型防火墙技术,综合了包过滤防火墙技术以及应用代理防火墙技术的优点,譬如发过来的安全策略是包过滤策略,那么可以针对报文的报头部分进行访问控制;如果安全策略是代理策略,就可以针对报文的内容数据进行访问控制,因此复合型防火墙技术综合了其组成部分的优点,同时摒弃了两种防火墙的原有缺点,大大提高了防火墙技术在应用实践中的灵活性和安全性。

以上是对防火墙的概念概述,下面主要将针对其中的软件防火墙进行具体介绍,即Linux防火墙。Linux系统的防火墙主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux系统的防火墙体系基于内核编码实现,具有非常稳定的性能和极高的效率,也因此获得广泛的应用。

三、Linux防火墙之iptables及netfilter

3.1iptables与netfilter的联系

​ iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理, 用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫netfilter。
​ netfilter才是防火墙真正的安全框架(framework) ,netfilter位于内核空间。
​ iptables其实是一个命令行工具, 位于用户空间,我们用这个工具操作真正的框架。
​ netfilter/iptables (之后简称为iptables) 组成Linux平台下的包过滤防火墙,与大多数的Linux软件一 样, 这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT) 等功能。
​ Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:
​ 网络地址转换(Network Address Translate)、数据包内容修改以及数据包过滤的防火墙功能

​ 所以说,虽然我们使用service iptables start启动iptables"服务" ,但是其实准确的来说,iptables并没有一 个守护进程, 所以并不能算是真正意义上的服务,而应该算是内核提供的功能。

3.2iptables的表、链结构(四表五链很关键)

首先来解释一下什么是iptables的表,什么是iptables的链。

3.2.1表的概念

iptables管理者四个不同的表,其功能分别由独立的内核模块实现。

filter表:负责过滤功能,防火墙;内核魔抗:iptable_filter

nat表:network address translation, 网络地址转换;内核模块:iptable_nat

mangle表:拆解报文,做出修改,并且重新封装的功能;iptable_mangle

raw表:关闭nat表上启用的连接追踪机制;iptable_raw

3.2.2链的概念

​ 防火墙的作用在于对经过的数据包报文匹配规则(之后会讲述规则的相关概念),然后执行对应的动作,当数据包报文经过防火墙的各个关卡时,将匹配与之对应的规则,而其中的各个关卡上可能并非只有一条规则,那么这些规则串联起来就形成了链,当数据包经过时,就要将链上(就是上面的“关卡”)的所有的规则都匹配一次,符合则执行对应操作。

​ 其实,简单举个例子,这个链就好比古时候各个城池之间的关隘一般,每个关卡都会去对应匹配验证来往人的身份或者是通关文牒(就好比是上述的规则),检查其是否允许通过的过程。

​ 当然,链的具体结构如下所示:

Linux网络服务之Linux防火墙

下面对这五条链作简要概念解释:

  1. PREROUTING链:进来的数据包应用此规则链中的策略
  2. INPUT链:外出的数据包应用此规则链中的策略
  3. FORWARD链:转发数据包时应用此规则链中的策略
  4. OUTPUT链:对数据包作路由选择前应用此链中的规则(所有的数据包进来的时候都先由这个链处理)
  5. POSTROUTING链:对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

其中,INPUT、OUTPUT链主要作用在主机型防火墙中,即主要针对服务器本机进行保护的防火墙,而其余的多用在“网网络型防火墙”中,如使用Linux防火墙作为网关服务器,在公司内网与Internet之间进行安全。

3.2.3iptables的表和链的关系

​ 四表五链的关系如下图所示:

Linux网络服务之Linux防火墙

根据上图,则可以理解为表中包含与之相对应的链,链中则应该对应着各种匹配规则。其实我们在实际的使用过程中,往往是通过“表”作为操作入口,对规则进行定义。

表——功能

链——钩子

raw表中的规则可以被这些链使用: PREROUTING, OUTPUT
mangle表中的规则可以被这些链使用: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
nat表中的规则可以被这些链使用: PREROUTING, OUTPUT, POSTROUTING (centos7中还有INPUT, centos6中没有)
filter表中的规则可以被这些链使用: INPUT, FORWARD,OUTPUT

四、数据包过滤的匹配流程

我们从规则链之间的顺序角度来理解数据包过滤的匹配流程:

Linux网络服务之Linux防火墙

五、iptables的语法格式

iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]

常见参数

-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 匹配来源端口号

六、小结

​ 本文主要介绍的是防火墙的相关知识,以及着重介绍Linux系统的防火墙理论知识,介绍什么是iptables及其与netfilter之间的关系。

​ 其次阐述iptables的四表五链以及二者之间的关系,最后给出iptables的语法格式。

推荐阅读:
  1. Linux网络服务之网络设置相关命令
  2. Linux防火墙与iptables

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

防火墙 四表五链 iptables

上一篇:Mikrotik-routeros命令行操作(持续更新)

下一篇:CentOS7.4—构建LVS+Keepalived高可用群集

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》