Linux系统安全之CentOS 7 firewalld防火墙入门详解

在Internet中,企业通过架设各种应用系统来为用户提供各种网络服务,比如Web网站、电子邮件、FTP服务器等。而且大部分都是使用Linux服务器进行搭建的。那么,想要保护这些服务器,过滤非授权的访问,甚至恶意进入内部网络 。就需要使用到——防火墙

防火墙除了硬件防火墙之外,Linux系统的防火墙也十分强大,今天主要认识CentOS 7系统的防火墙——firewalld

一、Linux防火墙基础

不管是Linux系统、Windows系统的防火墙或者是硬件防火墙都是设置不同网络与网络安全之间的一系列部件的组合,也是不同安全域之间信息的唯一出(入)口。通过检测、限制并更改跨越防火墙的数据流。尽可能地对外屏蔽网络内部的信息、结构和运行状态,且可以有选择的接受外部外部网络的访问。在内外网之间架起一道安全的屏障,以避免发生不知情的情况下进入内部网络,对我们内部网络产生一定的威胁。

从传统意义上来说防火墙分为三类:包过滤、应用代理、状态检测。无论一个防火墙的实现过程有多复杂,说到底都是在这三种技术的基础上进行扩展的。

Linux的防火墙体系主要工作在网络层,属于典型的包过滤防火墙(也称为网络层防火墙)。

包过滤防火墙的工作原理:

  • 工作在网络层,针对IP数据包;
  • 静态的打开端口、具有一定的安全隐患;
  • 体现在对包内的IP地址、端口等信息的处理上;

状态检测防火墙的工作原理:

  • 工作在网络层;
  • 动态的打开端口;

应用代理防火墙的工作原理:

  • 工作在应用层;

Linux系统的防火墙体系基于内核编码实现,既有非常稳定的性能和高效率,也因此获得广泛的应用。Linux系统的防火墙主要有:firewalld、iptables、ebtables。不过在CentOS 7 系统中默认使用firewalld来管理netfilter子系统。

  • netfilter:指的是Linux内核中实现包过滤防火墙的内部结构,不以程序或文件的形式存在,属于“内核态”的防火墙功能体系;
  • firewalld:指用于管理Linux防火墙的命令程序,属于“用户态”的防火墙的管理体系。

严格意义上来说,netfilter才是Linux系统的防火墙,firewalld只是管理netfilter的工具而已!

二、firewalld概述

1.firewalld简介

firewalld提供了支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具,支持ipv4、ipv6防火墙以及以太网桥,并且拥有两种配置模式:运行时配置与永久配置。它还支持服务或应用程序直接添加防火墙规则。

2.firewalld的区域

firewalld将所有的网络数据流量划分为多个区域,从而简化防火墙管理。根据数据包的源IP地址或传入网络接口等条件,将数据流量转入相应区域的防火墙规则。对于进入系统的数据包,首先检查的就是其源地址。

firewalld数据处理流程:
首先检查的就是其源地址。

  • 若源地址关联到特定的区域,则执行该区域所制定的规则;
  • 若源地址未关联到特定的区域,则使用传入网络接口的区域并执行该区域所制定的规则;
  • 若网络接口未关联到特定的区域,则使用默认区域并执行该区域所制定的规则;

默认区域不是单独的区域,而是执行系统上定义的某个其他区域。默认情况下,默认区域是public,系统管理员可以根据实际情况进行修改。

以上匹配规则,按照先后顺序,第一个匹配的规则胜出(从上往下、找到即停!)

在每个区域中都可以配置其要打开或者关闭的一系列服务或端口,firewalld的每个预定义的区域默认都开启一些相应的服务,如图:

传出流量:简单来说就是访问的资源不是防火墙本身,而是通过防火墙的流量称为传出流量。

3.firewalld防火墙的配置方法

在CentOS 7 系统中,可以使用三种方式配置防火墙:

  • firewall-config图形工具;
  • firewall-cmd命令行工具;
  • /etc/firewalld/中的配置文件;

通常情况下,不建议直接修改其配置文件!

(1)图形化管理工具

打开图形化管理工具的两种方式:

1)图形化桌面


2)通过终端命令打开
[[email protected] ~]# firewall-config


由于图形化简单易懂,所以这里就不详细介绍了!

(2)firewall-cmd命令行工具

1)启动、停止、查看firewalld服务
[[email protected] ~]# systemctl start firewalld
//启动firewalld服务
[[email protected] ~]# systemctl enable firewalld
//将firewalld服务设置为开机自启动
[[email protected] ~]# systemctl status firewalld
//查看firewalld服务状态
[[email protected] ~]# firewall-cmd --state
//查看firewalld服务状态
[[email protected] ~]# systemctl stop firewalld
//停止firewalld服务
[[email protected] ~]# systemctl disable firewalld
//将firewalld服务设置为开机不自动启动
2)获取预定义信息
[[email protected] ~]# firewall-cmd --get-zones
//显示预定义的区域信息
[[email protected] ~]# firewall-cmd --get-services
//显示预定义的服务(服务较多,大部分都是常用的,这里就不介绍了)
[[email protected] ~]# firewall-cmd --get-icmptypes
//显示预定义的ICMP类型

firewall-cmd --get-icmptypes命令执行结果中各类的含义:

  • destination-unreachable:目的地址不可达;
  • echo-reply:应答回应;
  • parameter-problem:参数问题;
  • redirect:重新定向;
  • router-advertisement:路由器通告;
  • router-solicitation:路由器征寻;
  • source-quench:源端抑制;
  • time-exceeded:超时;
  • timestamp-reply:时间戳应答回应;
  • timestamp-request:时间戳请求;
3)区域管理

区域管理命令的常用选项,如图:

[[email protected] ~]# firewall-cmd --get-default-zone
//显示当前系统中的默认区域
[[email protected] ~]# firewall-cmd --list-all
//显示默认区域的所有规则
[[email protected] ~]# firewall-cmd --get-zone-of-interface=ens33
//显示网络接口ens33对应的区域
[[email protected] ~]# firewall-cmd --zone=internal --change-interface=ens33
The interface is under control of NetworkManager, setting zone to ‘internal‘.
success
//将网络接口ens33对应区域改为internal区域
[[email protected] ~]#  firewall-cmd --zone=internal --list-interfaces
ens33
[[email protected] ~]# firewall-cmd --get-zone-of-interface=ens33
internal
//验证
[[email protected] ~]# firewall-cmd --get-active-zones
internal
  interfaces: ens33
//显示所有激活区域
4)服务管理

在最新版本firewalld中默认定义了70多种服务供我们使用,对于每个网络区域,均可以配置允许访问服务。当需要添加的服务在列表中没有的话,可以添加端口。

区域服务管理的常用选项,如图:

[[email protected] ~]# firewall-cmd --list-services
dhcpv6-client ssh
//显示默认区域允许访问的服务
[[email protected] ~]# firewall-cmd --add-service=http
//设置默认区域允许访问http服务
[[email protected] ~]# firewall-cmd --list-services
dhcpv6-client ssh http
//验证效果
[[email protected] ~]# firewall-cmd --zone=internal --add-port=80/tcp
success
//在internal区域上允许TCP协议80端口访问
[[email protected] ~]# firewall-cmd --zone=internal --remove-port=443/tcp
success
//在internal区域上禁止TCP协议443端口访问
[[email protected] ~]# firewall-cmd --list-all --zone=internal
internal (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client mdns samba-client ssh
  ports: 80/tcp
  protocols:
  masquerade: no
  forward-ports:
  sourceports:
  icmp-blocks:
  rich rules:
//查看指定区域的详细配置

使用firewall-cmd命令行工具有两种配置模式:

  • 运行时模式:表示当前内存中运行的防火墙配置,在系统重启或者firewalld服务重启时配置将会失效;
  • 永久模式:表示重启firewalld服务或重启系统时,系统将自动的加载防火墙的规则配置,是永久存储在配置文件中;

firewall-cmd命令工具与配置模式相关的三个选项:

  • --reload:重新加载防火墙并保持状态信息,即将永久配置应用为运行时配置;
  • --permanent:带此选项的命令用于设置永久规则,这些规则只有在重新启动firewalld服务是规则才会生效;若不带此选项,表示用于设置运行时规则;
  • --runtime-to-permanent:将当前的运行配置写入规则配置文件中,使其成为永久配置。

关于firewalld防火墙介绍到此结束!

原文地址:https://blog.51cto.com/14157628/2433524

时间: 2024-11-08 22:45:58

Linux系统安全之CentOS 7 firewalld防火墙入门详解的相关文章

Firewalld防火墙基础详解

Firewalld简介 支持网络区域所定义的网络链接以及接口安全等级的动态防火墙管理工具,支持IPv4.IPv6防火 墙设置以及以太网桥,支持服务或应用程序直接添加防火墙规则接口. 拥有两种配置模式 1.运行时配置 2.永久配置 Firewalld和iptables的关系 netfilter: 位于Linux内核中的包过滤功能体系称为Linux防火墙的"内核态" Firewalld/iptables: CentOS7默认的管理防火墙规则的工具(Firewalld)称为Linux防火墙的

Linux 系统之文件查找工具--- locate、 find详解

一.学习Linux为什么要学习文件查找工具? 作为Linux爱好者,或者Linux运维人员经常会遇到要查找某个或者某一类文件的问题,但对于"一切皆文件"的Linux系统来说,如何能够在成千上万的文件中快速精确的定位到我们所需的文件,对我们来说是至关重要的.因此,熟练掌握并运用Linux系统下的文件查找命令是我们快速定位的关键. 本文着重介绍Linux环境下的locate.find文件查找工具 二.文件查找工具locate使用详解 2.1.locate - find files by n

Linux系统编程之--守护进程的创建和详解【转】

本文转载自:http://www.cnblogs.com/mickole/p/3188321.html 一,守护进程概述 Linux Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务.Linux系统的大多数服务器就是通过守护进程实现的.常见的守护进程包括系统日志进程syslogd. web服务器httpd.邮件服务器sendmail和数据库服务器

linux系统中安装和使用rz/sz命令详解

对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令.今天,我们就简单的讲解一下如何安装和使用rz.sz命令. 1.软件安装 (1)编译安装 root 账号登陆后,依次执行以下命令: # cd /tmp # wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz # tar zxvf lrzsz-0.1

linux系统rwx(421)、777权限详解

摘要 linux的常见权限,mark一下 常用的linux文件权限如下: 444 r--r--r-- 600 rw------- 644 rw-r--r-- 666 rw-rw-rw- 700 rwx------ 744 rwxr--r-- 755 rwxr-xr-x 777 rwxrwxrwx 1 2 3 4 5 6 7 8 从左至右,先是3个数字,代表文件的权限 然后是9个字母(或者连字符) 其中 1-3位数字代表文件所有者的权限 4-6位数字代表同组用户的权限 7-9数字代表其他用户的权限

CentOS 7安装MariaDB 10详解以及相关配置

CentOS 7安装MariaDB 10详解以及相关配置 第一步:添加 MariaDB yum 仓库 首先在CentOS操作系统中/etc/yum.repos.d/目录下添加 MariaDB 的YUM配置文件MariaDB.repo文件. vi /etc/yum.repos.d/MariaDB.repo 在该文件中添加以下内容保存: [mariadb]name = MariaDBbaseurl = http://yum.mariadb.org/10.2/centos7-amd64gpgkey=h

Linux上命令的使用格式和基础命令详解

一.Linux上命令的使用格式 命令行提示符详解: 用户通过终端的命令行接口来控制操作系统,登陆后如下: [[email protected] ~]# root: 当前登录的用户 @:分隔符 localhost: 当前主机的主机名,非完整格式:此处的完整格式为:localhost.localdomain [[email protected] ~]# hostname localhost.localdomain ~:用户当前所在的目录(current directory),也称为工作目录(work

CentOS下安装Apache步骤详解

CentOS下安装Apache步骤详解 一.实验环境 Linux: CentOS release 6.7 (Final) Apache: httpd-2.4.23.tar.gz VMware: VMware 10.0 宿主机: Win10 x64 二.Apache介绍 Apache一款 Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速.可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器

【转】centos关机与重启命令详解

连接:http://blog.csdn.net/jiangzhengdong/article/details/8036594 Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 10 过10分钟自动重启(root用户使用) 4.shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话