网络防火墙,顾名思义:为防止不需要的网络连接而设置的保护屏障。常在与外界建立连接或提供网络服务时使用。例如,如果您在学校或咖啡店使用笔记本电脑,您不希望陌生人窥探您的计算机。每个Fedora系统都带有一个内置的防火墙。这是Linux内核网络功能的一部分。本文介绍如何通过firewall-cmd命令修改防火墙配置。网络基础本文并未教授计算机网络的所有知识,但会简要介绍一些网络基础知识。网络中的所有计算机都有一个IP地址,可以将其视为电子邮件地址。有了电子邮件地址,电子邮件就知道将它发送到哪里。每台计算机还有一组端口,端口号从0到65535。同样,您可以将这些端口视为连接电子邮件地址的连接点。通常,端口将是标准端口号或根据应用程序的响应要求选择的端口范围。例如,Web服务器通常为HTTP通信保留端口80,为HTTPS保留端口443。小于1024的端口主要用于系统或普通用途,1024-49151端口已经注册,49152及以上端口多为临时使用(仅供短期使用)。互联网传输中最常用的两种协议,TCP和UDP。当要传输的数据很重要且不能丢失时使用TCP协议,如果数据包乱序到达,则需要将它们重新组合成正确的顺序。UDP协议更多用于时间敏感的服务。为了保证时效性,有时会允许部分数据丢失。系统上运行的应用程序,比如web服务器,会保留一些端口(比如上面提到的80和443)。网络传输时,主机会为传输的两端建立一条链路,一端是源地址和源端口,另一端是目的地址和目的端口。网络防火墙是一套基于地址、端口等标准的规则,用来屏蔽或阻断网络数据的传输。通过firewall-cmd命令,我们可以查看或修改防火墙的工作配置。防火墙域(zone)为了验证防火墙是否开启,使用firewall-cmd命令,进入时加上sudo。(通常,在运行PolicyKit的环境中,您也可以不使用sudo)$sudofirewall-cmd--staterunningfirewalld该服务支持任意数量的域。每个域都可以有独立的配置和保护规则。FedoraWorkstation的对外接口(如WIFI或有线网卡)默认域为FedoraWorkstation。要查看哪些区域处于活动状态,请使用--get-active-zones选项。在这个例子中,有两个网卡,有线以太网网卡wlp2s0和虚拟(libvirt)网桥网卡virbr0:$sudofirewall-cmd--get-active-zonesFedoraWorkstationinterfaces:wlp2s0libvirtinterfaces:virbr0如果你想看什么默认区域是,或者直接查询所有域:$sudofirewall-cmd--get-default-zoneFedoraWorkstation$sudofirewall-cmd--get-zonesFedoraServerFedoraWorkstationblockdmzdropexternalhomeinternallibvirtpublictrustedwork查询哪些系统被发布默认域中的防火墙,使用--list-services选项。下面的例子展示了自定义系统的查询结果,可以看到和通常的结果有一些不同。$sudofirewall-cmd--list-servicesdhcpv6-clientmdnssamba-clientssh系统开启了四个对外服务。每个服务对应一个公共端口。比如ssh服务对应的是22端口,如果想查看当前域中防火墙还开放了哪些端口,可以使用--list-ports选项。当然你也可以随时查询其他域:$sudofirewall-cmd--list-ports--zone=FedoraWorkstation1025-65535/udp1025-65535/tcp结果显示从1025到65535的端口(包括UDP和TCP)两者都默认启用。以上修改域、端口、服务都是预先设计好的防火墙策略。是为了保证新手用户安装的应用程序能够正常访问网络。如果你确定你知道自己在想什么并且想要一个更具保护性的策略,你可以将接口放入FedoraServer域并明确禁止访问所有端口。(警告:如果你的服务器之前连接过互联网,这样做可能会导致连接中断,那你得在机房修改更多的配置项!)$sudofirewall-cmd--change-interface=
