一.防火墙的介绍
通常所说的网络防火墙指的是隔离在本地网络与外界网络之间的一道防御系统。防火墙可以使内部网络与互联网之间或其他外部网络间互相隔离,限制网络互访,以此来保护内部网络。
防火墙的分类方法多种多样,一般来说大致可分为三类,分别是“包过滤”、“应用代理”、“状态检查”。无论防火墙的功能多么强大,性能多么完善,归根结底都是在这三种技术的基础之上扩展功能的。
二.配置网络
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服务器的网络配置是至关重要的,管理远程主机也是管理员必须掌握的。