【Linux】配置网络和firewall防火墙(超详细介绍+实战)

本文涉及的产品
云防火墙,500元 1000GB
简介: 【Linux】配置网络和firewall防火墙(超详细介绍+实战)

一.防火墙的介绍



通常所说的网络防火墙指的是隔离在本地网络与外界网络之间的一道防御系统。防火墙可以使内部网络与互联网之间或其他外部网络间互相隔离,限制网络互访,以此来保护内部网络。


防火墙的分类方法多种多样,一般来说大致可分为三类,分别是“包过滤”、“应用代理”、“状态检查”。无论防火墙的功能多么强大,性能多么完善,归根结底都是在这三种技术的基础之上扩展功能的。


二.配置网络


1.使用系统菜单配置网络


在一些主流的Linux系统下,图形界面已经非常完善了,我们一般也首选使用系统菜单配置网络,在这里我们使用的系统是ubuntu18.04版本,我们可以在Linux桌面上依次点击“活动”→“显示应用程序”→“设置”→网络 命令,打开网络配置界面,打开连接,单机齿轮按钮,一步一步完成网络信息查询和网络配置,如下图所示:


1.打开连接,单击齿轮按钮进行配置,如下图所示

2.设置完成后,单击“应用”按钮应用配置,回到刚刚的配置界面。注意网络连接应该设置在“打开状态”,如果在“关闭”状态,则修改

3.再次单击齿轮按钮,显示下图所示网络配置界面,一定勾选“自动连接”选项,否则虚拟机启动后不能自动连接网络,切记,最后一定要单击右上角“应用按钮”,有时可能需要重启系统配置才能生效。

4.然后我们在master终端上测试网络是否能ping通外网,测试成功

ping baidu.com


2.使用图形界面配置网络


前面我们介绍了使用系统菜单配置网络服务,接下来我们使用nmtui命令配置网络,如下图所示:
1.首先在终端输入nmtui命令

nmtui

2.选中编辑连接,键入回车


3.选中要编辑的网卡名称,键入回车


4.把网络IPv4的配置方式改成Manual(手动)

5.单击显示按钮,在配置信息中填写IP地址等信息,单击确定保存配置

6.单击“返回”按钮,回到nmtui图形界面初始状态,选中“启用连接”选项,激活刚刚设置的网卡,网卡前面有“ * ”表示已激活,如下图所示:

至此nmtui图形界面配置网络已经完成,我们可以返回终端,使用ifconfig或者ip a命令查看配置情况,并使用ping命令测试是否连通外网


3.修改网络配置文件配置网络


1.首先打开我们的VMware虚拟机,左上角编辑-虚拟机网络系统,我们选择NAT模式,并打开如图所示的NAT设置


2.进入NAT设置,我们将里面的子网IP和网关IP记下来


3.进入到我们的ubuntu虚拟机中,对/etc/netplan/下的一个后缀为yaml的文件进行编辑,这里每个人的文件名可能不一样

sudo vim /etc/netplan/01-network-manager-all.yaml


4.我们键入:wq保存配置内容,然后输入命令sudo netplan apply生效配置

sudo netplan apply


5.我们通过ip a命令查看ip地址是否配置成功

ip a



6.配置成功后,我们通过ping baidu.com测试一下能够ping通


如图所示可以ping通。到此使用修改网络文件配置网络就成功了


三.firewalld服务


1.firewalld介绍


1.Linux操作系统的动态防火墙管理器拥有基于命令行界面(Command Line Interface,CIL)和基于图形用户界面(Graphical User Interface,GUI)的两种管理模式。


2.相较于传统的防火墙管理配置工具,firewalld支持动态更新技术,并加入了区域的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不用选择合适的策略集合,从而实现防火墙策略的快速切换。


3.对于防火墙策略的快速切换,我们可以用以下例子来理解。例如我们有一台笔记本电脑,每天要在办公室、咖啡厅和家里使用。按常理来讲,这三者的安全性按照由高到低的顺序排序,应该是家里、办公室、咖啡厅。当前,我们希望为这台笔记本电脑指定如下策略:在家允许访问所有服务;在办公室内仅允许访问文件共享服务;在咖啡厅仅允许上网浏览。以往我们需要频繁地手动设置防火墙策略,而现在只需要预设好区域集合,然后轻点鼠标就可以自动切换了,从而极大地提升了防火墙策略的应用型效率。


firewalld中常见的区域名称(默认为public)及默认策略如下表:


区域名称 默认策略
trusted 允许所有的数据表
home 拒绝流入的流量,除非与流出的流量相关;如果流量与SSH、mdns、ipp-client、amba-client和dhcpv6-client服务相关,则允许流量流入
intermal 等同于home区域
work 拒绝流入的流量,除非与流出的流量数相关;如果流量与SSH、ipp-client和dhcpv6-client服务相关,则允许流量流入
public 拒绝流入的流量,除非与流出的流量相关;如果流量与SSH、dhcpv6-client服务相关,则允许流量流入
external 拒绝流入的流量,除非与流出的流量相关;如果流量与SSH服务相关,则允许流量流入
dmz 拒绝流入的流量,除非与流出的流量相关;如果流量与SSH服务相关,则允许流量流入
block 拒绝流入的流量,除非与流出的流量相关
drop 拒绝流入的流量,除非与流出的流量相关


2.使用终端管理工具


命令行终端是一种极具效率的工作方式,firewall-cmd命令是firewalld防火墙配置管理工具的CLI版本。它的参数一般都是以“长格式”来提供的,长格式参数及其含义如下表:


参数 作用
–get-defalut-zone 查询默认的区域名称
–set-defalut-zone=<区域名称> 设置默认的区域,使其永久生效
–get-zone 显示可用的区域
–get-services 显示预先定义的服务
–get-active-zones 显示当前正在使用的区域和网卡名称
–add-source= 将源自此IP地址或子网的流量导向指定的区域
–remove-source= 不再将源自此IP或子网的流量导向某个指定的区域
–add-interface=<网卡名称> 将源自该网卡的所有流量都导向某个指定区域
–change-interface=<网卡名称> 将某个网卡与区域关联
–list-all 显示当前区域的网卡配置参数、资源、端口以及服务等信息
–list-all-zones 显示当前区域的网卡配置参数、资源、端口以及服务等信息
–add-service=<服务名> 设置默认区域允许该服务的流量
–add-port=端口号/协议> 设置默认区域允许该端口的流量
–remove-service=<服务名> 设置默认区域不再允许该服务的流量
–remove-port=端口号/协议> 设置默认区域不再允许该端口的流量
–reload 让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
–panic-on 开启应急状况模式
–panic-off 关闭应急状况模式


与Linux操作系统中其他防火墙一样,使用firewalld配置的防火墙默认为运行模式,又称为当前生效模式,重启后就会失效。如果想让配置策略一直存在,就需要使用永久(Permanent)模式,方法是在firewall-cmd命令正常设置防火墙策略时添加–permanent参数,这样配置的防火墙就永久生效,但是在设置完永久生效后一定要手动执行一下firewall-cmd --reload命令才会立即生效。


以下是使用终端管理工具的实例:


1.查看firewalld服务当前状态和使用的区域


firewall-cmd --state #查看防火墙状态
systemctl restart firewalld #重启防火墙服务
firewall-cmd --get-defalult-zone #查看默认区域


2.查询防火墙在firewalld服务中的区域


查询防火墙生效ens33网卡在firewalld服务中的区域

firewall-cmd --get-active-zones #查看当前防火墙中生效的区域
firewall-cmd --set-default-zone=trusted #设定默认区域


3.修改默认区域


把firewalld服务中ens33网卡的默认区域修改为external,并在系统重启后生效。分别查看当前生效模式与永久模式下的区域名称。


firewall-cmd --list-all --zone=work #查看指定区域的防火墙策略
firewall-cmd --permanent --zone=external --change-interface=ens33
firewall-cmd --get-zone-of-interface=ens33
firewall-cmd --permanent --get-zone-of-interface=ens33


4.设置firewalld服务的当前默认区域


把firewalld服务的当前默认区域设置为public

firewall-cmd --set-default-zone=public
firewall-cmd --get-default-zone


5.启动/关闭firewalld服务的应急状况模式


启动/关闭firewalld服务的应急状况模式,阻断一切网络连接(当远程控制服务器的时候慎用!)

firewall-cmd --panic-on #启动应急模式
firewall-cmd --panic-off #关闭应急模式


6.查询public区域是否允许请求SSH和HTTPS的服务


firewall-cmd --zone=public --query-service=ssh
firewall-cmd --zone=public --query-service=https


7.设置firewalld服务中请求HTTPS的流量为永久允许


firewalld服务中请求HTTPS的流量并设置为永久允许,并立即生效

firewall-cmd --get-services #查看所有可以设定的服务
firewall-cmd --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd -reload
firewall-cmd --list-all #查看生效的防火墙策略


8.设置firewalld服务中请求HTTPS的流量为永久拒绝


把firewalld服务中请求HTTPS的流量设置为永久拒绝,并立即生效。


firewall-cmd --permanent --zone=public --remove-service=https
firewall-cmd --reload
firewall-cmd --list-all #查看生效的防火墙策略


9.设置允许在firewalld服务中访问的端口号


把在firewalld服务中访问8088和8089端口的流量策略设置为允许,但仅限当前生效。

firewall-cmd --zone=public --add-port=8088-8089/tcp
firewll-cmd --zone=public --list-ports


3.使用图形管理工具


firewall-config命令是firewalld防火墙配置管理工具的GUI版本,几乎可以实现所有以命令来执行的操作。


1.安装firewall-config


firewall-config默认没有安装,我们执行以下命令来安装firewall-config

mount /dev/cdrom /media
apt-get install firewall-config


2.启动firewall-config


安装完成后,虚拟机的“活动”菜单中会出现防火墙图标,在终端输入firewall-config或者单击“活动”→“防火墙”命令,启动图形界面的firewall

firewall-config

其具体的功能如下:

选择运行时模式或永久模式的配置

可选策略集合区域列表

常用的系统服务列表

当前正在使用的区域

管理当前被选中区域中的服务

管理当前被选中区域的端口

开启或关闭源地址转换技术(SNAT)

设置端口转发策略

控制请求互联网控制报文协议

管理防火墙的富规则

管理网卡设备

被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量

firewall-config工具的运行状态


3.设置允许当前区域中请求http服务的流量


将当前区域中请求http服务的流量设置为允许,但仅限当前生效,配置如下图所示


4.添加一条防火墙策略,使其放行访问指定端口的流量


添加一条防火墙策略,使其放行访问8088~8089端口(TCP)的流量,并将其设置为永久生效,以达到重启后防火墙策略依然生效的目的


选择“端口”→“添加”命令,打开如下图所示界面

配置完毕单击“确定”按钮

在“选项”菜单中单击“重载防火墙”命令,让配置的防火墙策略立即生效,这与命令行中执行–reload参数的效果一样



四.总结


作为Linux操作系统的管理员,学习Liunx服务器的网络配置是至关重要的,管理远程主机也是管理员必须掌握的。


目录
相关文章
|
13天前
|
SQL 安全 算法
网络安全与信息安全的守护之道:漏洞防护、加密技术与安全意识提升
【9月更文挑战第21天】在数字化浪潮中,网络安全与信息安全成为维系社会稳定和个体隐私的重要屏障。本文将深入探讨网络安全中的常见漏洞,分析其成因及防范措施;介绍加密技术的基本原理及其在信息保护中的应用;强调安全意识的重要性,并通过具体案例分享如何在日常生活中提升个人和企业的安全防御能力。文章旨在为读者提供一套综合性的网络安全防护策略,以应对日益复杂的网络威胁。
|
4天前
|
SQL 安全 算法
网络安全的盾牌与剑:漏洞防御与加密技术的实战应用
【9月更文挑战第30天】在数字时代的浪潮中,网络安全成为守护信息资产的关键防线。本文深入浅出地探讨了网络安全中的两大核心议题——安全漏洞与加密技术,并辅以实例和代码演示,旨在提升公众的安全意识和技术防护能力。
|
5天前
|
安全 网络安全 量子技术
探索网络安全世界:从漏洞防护到加密技术与安全意识
本文旨在深入探讨网络安全与信息安全的关键方面,包括网络安全漏洞、加密技术以及安全意识的重要性。通过分析这些要素,我们将揭示如何构建一个更加安全的网络环境,并强调个人和组织在维护网络安全中的角色。本文不仅提供技术性的见解,还强调了普及安全意识的必要性,旨在为读者提供一个全面的网络安全知识框架。
|
14天前
|
SQL 安全 网络安全
网络安全的盾牌与矛:漏洞防护与加密技术解析
【9月更文挑战第20天】在数字化时代的浪潮中,网络安全成了我们不得不面对的严峻话题。本文将深入探讨网络安全中的两个核心要素——漏洞防护和加密技术,以及它们如何共同构建起保护信息安全的坚固防线。通过分析最新的网络攻击案例、介绍常见的安全漏洞类型、阐述加密技术的原理及其应用,并强调安全意识的重要性,本文旨在为读者提供一场关于网络安全知识的精彩分享,帮助大家更好地理解并应对日益复杂的网络威胁。
35 7
|
12天前
|
SQL 安全 网络安全
网络安全的屏障与钥匙:漏洞防护与加密技术解析
【9月更文挑战第22天】在数字时代的浪潮中,网络安全和信息安全成为维护个人隐私与企业资产的重要防线。本文将深入探讨网络安全漏洞的成因与防范措施,分析加密技术在信息安全中的应用,并强调提升安全意识的必要性。通过实例分析,我们将了解如何构建坚固的网络防御体系,以及在日益复杂的网络环境中保持警觉的重要性。
|
14天前
|
网络协议 Python
告别网络编程迷雾!Python Socket编程基础与实战,让你秒变网络达人!
在网络编程的世界里,Socket编程是连接数据与服务的关键桥梁。对于初学者,这往往是最棘手的部分。本文将用Python带你轻松入门Socket编程,从创建TCP服务器与客户端的基础搭建,到处理并发连接的实战技巧,逐步揭开网络编程的神秘面纱。通过具体的代码示例,我们将掌握Socket的基本概念与操作,让你成为网络编程的高手。无论是简单的数据传输还是复杂的并发处理,Python都能助你一臂之力。希望这篇文章成为你网络编程旅程的良好开端。
37 3
|
13天前
|
运维 监控 安全
网络管理:防火墙和安全组配置详解
网络管理:防火墙和安全组配置详解
29 1
|
15天前
|
机器学习/深度学习 JSON API
HTTP协议实战演练场:Python requests库助你成为网络数据抓取大师
在数据驱动的时代,网络数据抓取对于数据分析、机器学习等至关重要。HTTP协议作为互联网通信的基石,其重要性不言而喻。Python的`requests`库凭借简洁的API和强大的功能,成为网络数据抓取的利器。本文将通过实战演练展示如何使用`requests`库进行数据抓取,包括发送GET/POST请求、处理JSON响应及添加自定义请求头等。首先,请确保已安装`requests`库,可通过`pip install requests`进行安装。接下来,我们将逐一介绍如何利用`requests`库探索网络世界,助你成为数据抓取大师。在实践过程中,务必遵守相关法律法规和网站使用条款,做到技术与道德并重。
30 2
|
22天前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
48 8
|
17天前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
在网络的广阔世界里,Python凭借其简洁的语法和强大的库支持,成为开发网络爬虫的首选语言。本文将通过实战案例,带你探索urllib和requests两大神器的魅力。urllib作为Python内置库,虽API稍显繁琐,但有助于理解HTTP请求本质;requests则简化了请求流程,使开发者更专注于业务逻辑。从基本的网页内容抓取到处理Cookies与Session,我们将逐一剖析,助你从爬虫新手成长为高手。
40 1
下一篇
无影云桌面