首页 运维 linux运维 linux有防火墙吗

linux有防火墙吗

Apr 11, 2023 pm 05:25 PM
linux

linux有防火墙,防火墙几乎是公网上Linux服务器必备的软件。很多Linux发行版本已经自带了防火墙,通常是iptables;而Fedora、CentOS、Red Hat发行版本上,默认安装的防火墙软件是firewalld,可通过“firewall-cmd”命令来配置和控制。

linux有防火墙吗

本教程操作环境:linux7.3系统、Dell G3电脑。

Linux是有防火墙和杀毒软件的。防火墙几乎是公网上Linux服务器必备的软件。另外各机房几乎都有硬件防火墙,用来进行入侵检测,攻击防护等。

合理的防火墙是你的计算机防止网络入侵的第一道屏障。你在家里上网,通常互联网服务提供会在路由中搭建一层防火墙。当你离开家时,那么你计算机上的那层防火墙就是仅有的一层,所以配置和控制好你 Linux 电脑上的防火墙很重要。如果你维护一台 Linux 服务器,那么知道怎么去管理你的防火墙同样重要,只要掌握了这些知识你才能保护你的服务器免于本地或远程非法流量的入侵。

1.png

Linux安装防火墙

很多 Linux 发行版本已经自带了防火墙,通常是 iptables。它很强大并可以自定义,但配置起来有点复杂。幸运的是,有开发者写出了一些前端程序来帮助用户控制防火墙,而不需要写冗长的 iptables 规则。

在 Fedora、CentOS、Red Hat 和一些类似的发行版本上,默认安装的防火墙软件是 firewalld,通过 firewall-cmd 命令来配置和控制。在 Debian 和大部分其他发行版上,可以从你的软件仓库安装 firewalld。Ubuntu 自带的是简单防火墙Uncomplicated Firewall(ufw),所以要使用 firewalld,你必须启用 universe 软件仓库:

$ sudo add-apt-repository universe
$ sudo apt install firewalld

你还需要停用 ufw:

$ sudo systemctl disable ufw

没有理由不用 ufw。它是一个强大的防火墙前端。然而,本文重点讲 firewalld,因为大部分发行版都支持它而且它集成到了 systemd,systemd 是几乎所有发行版都自带的。

不管你的发行版是哪个,都要先激活防火墙才能让它生效,而且需要在启动时加载:

$ sudo systemctl enable --now firewalld

理解防火墙的域

Firewalld 旨在让防火墙的配置工作尽可能简单。它通过建立域zone来实现这个目标。一个域是一组的合理、通用的规则,这些规则适配大部分用户的日常需求。默认情况下有九个域。

  • trusted:接受所有的连接。这是最不偏执的防火墙设置,只能用在一个完全信任的环境中,如测试实验室或网络中相互都认识的家庭网络中。

  • home、work、internal:在这三个域中,接受大部分进来的连接。它们各自排除了预期不活跃的端口进来的流量。这三个都适合用于家庭环境中,因为在家庭环境中不会出现端口不确定的网络流量,在家庭网络中你一般可以信任其他的用户。

  • public:用于公共区域内。这是个偏执的设置,当你不信任网络中的其他计算机时使用。只能接收选定的常见和最安全的进入连接。

  • dmz:DMZ 表示隔离区。这个域多用于可公开访问的、位于机构的外部网络、对内网访问受限的计算机。对于个人计算机,它没什么用,但是对某类服务器来说它是个很重要的选项。

  • external:用于外部网络,会开启伪装(你的私有网络的地址被映射到一个外网 IP 地址,并隐藏起来)。跟 DMZ 类似,仅接受经过选择的传入连接,包括 SSH。

  • block:仅接收在本系统中初始化的网络连接。接收到的任何网络连接都会被 icmp-host-prohibited 信息拒绝。这个一个极度偏执的设置,对于某类服务器或处于不信任或不安全的环境中的个人计算机来说很重要。

  • drop:接收的所有网络包都被丢弃,没有任何回复。仅能有发送出去的网络连接。比这个设置更极端的办法,唯有关闭 WiFi 和拔掉网线。

你可以查看你发行版本的所有域,或通过配置文件 /usr/lib/firewalld/zones 来查看管理员设置。举个例子:下面是 Fefora 31 自带的 FedoraWorkstation 域:

$ cat /usr/lib/firewalld/zones/FedoraWorkstation.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Fedora Workstation</short>
  <description>Unsolicited incoming network packets are rejected from port 1 to 1024, except for select network services. Incoming packets that are related to outgoing network connections are accepted. Outgoing network connections are allowed.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <service name="samba-client"/>
  <port protocol="udp" port="1025-65535"/>
  <port protocol="tcp" port="1025-65535"/>
</zone>

获取当前的域

任何时候你都可以通过 --get-active-zones 选项来查看你处于哪个域:

$ sudo firewall-cmd --get-active-zones

输出结果中,会有当前活跃的域的名字和分配给它的网络接口。笔记本电脑上,在默认域中通常意味着你有个 WiFi 卡:

FedoraWorkstation
  interfaces: wlp61s0

修改你当前的域

要更改你的域,请将网络接口重新分配到不同的域。例如,把例子中的 wlp61s0 卡修改为 public 域:

$ sudo firewall-cmd --change-interface=wlp61s0 --zone=public

你可以在任何时候、任何理由改变一个接口的活动域 —— 无论你是要去咖啡馆,觉得需要增加笔记本的安全策略,还是要去上班,需要打开一些端口进入内网,或者其他原因。在你凭记忆学会 firewall-cmd 命令之前,你只要记住了关键词 change 和 zone,就可以慢慢掌握,因为按下 Tab 时,它的选项会自动补全。

相关推荐:《Linux视频教程

以上是linux有防火墙吗的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驱动投资研究,做出更明智的决策

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

套娃系统教程:多系统怎么玩?Ubuntu安装实战 套娃系统教程:多系统怎么玩?Ubuntu安装实战 Sep 02, 2025 pm 05:09 PM

昨天已经介绍了VMwareWorkstationPro的安装方法,但由于录制时间的限制未能及时发布,今天为大家带来更新!!!欢迎喜欢尝试新事物的朋友们来安装下面的Ubuntu系统。Ubuntu同样是一款非常优秀的操作系统,尽管不像Windows那样直观易用,例如许多应用需要通过命令行来下载,这对新手来说可能有一定的难度,不过大家可以尝试体验一下。以下为大家推荐几个下载系统镜像的网站:Windows操作系统镜像及工具和资源:https://msdn.itellyou.cn/Linux操作系统官方网

如何清理Linux系统 如何清理Linux系统 Aug 22, 2025 am 07:42 AM

Removeunusedpackagesanddependencieswithsudoaptautoremove,cleanpackagecacheusingsudoaptcleanorautoclean,andremoveoldkernelsviasudoaptautoremove--purge.2.Clearsystemlogswithsudojournalctl--vacuum-time=7d,deletearchivedlogsin/var/log,andempty/tmpand/var

现代Linux系统系统D的深度指南 现代Linux系统系统D的深度指南 Aug 23, 2025 pm 12:02 PM

Systemdisthefirstprocess(PID1)inmodernLinuxsystems,replacingolderinitsystemslikeSysVinitandUpstart,responsibleforbooting,managingservices,devices,logs,andusersessionsthroughasuiteofintegratedtools.2.Itusesunitfiles(.service,.timer,.socket,etc.)todefi

是基于Linux的Mac OS 是基于Linux的Mac OS Sep 01, 2025 am 03:52 AM

不,麦片中的notbasedonlinux; itisbuiltonunix,特别是theunix-likedarwinoperatingsystemdemendStemderivedFrombsDandNextstep.1)macosiscertifiedunix-compliantsiancesionsionsionsionsion10.5andusesthedarwincorewincorewincorewincorewincorewincorewiththththexnukernel,whecombinemach,whecombinesmach,bsosneent,bsostofon,bsostofon,bsopon

如何在Linux中实时进程 Linux FIFO调度策略 如何在Linux中实时进程 Linux FIFO调度策略 Sep 03, 2025 pm 12:39 PM

要让Linux进程以实时FIFO调度运行,需使用chrt命令或sched_setscheduler系统调用设置调度策略与优先级,如sudochrt-f99./app或在C程序中配置SCHED_FIFO及优先级参数,同时确保进程具有CAP_SYS_NICE能力或root权限,并通过limits.conf配置rtprio和memlock限制以保障实时性,避免优先级反转需使用支持优先级继承的互斥锁。

Linux如何安装deb格式软件包 Linux如何安装deb格式软件包 Sep 03, 2025 pm 12:36 PM

安装.deb包常用方法包括:使用dpkg命令安装并用apt修复依赖;2.推荐使用aptinstall./package_name.deb自动处理依赖;3.图形化方式可双击文件通过软件中心安装;4.安装后可用dpkg-l或dpkg-s检查软件包状态。

如何在Linux系统上管理用户和组 如何在Linux系统上管理用户和组 Sep 05, 2025 am 08:01 AM

创建用户用adduser或useradd,2.修改用户用usermod,3.删除用户用deluser或userdel,4.创建组用groupadd,5.添加用户到组用usermod-aG,6.从组中移除用户用gpasswd-d,7.删除组用groupdel,8.查看信息用whoami、groups、getent等命令,9.遵循最佳实践如避免直接使用root、定期清理账户、设置密码策略并合理分配组权限,通过掌握这些核心命令并根据发行版选择合适工具,可有效实现Linux用户和组的管理。

Linux如何检查CPU使用情况 Linux如何检查CPU使用情况 Aug 22, 2025 pm 04:39 PM

Usetopforareal-timeoverviewofCPUusageandprocesses,whereCPUstatslikeuser,system,andidleareshownatthetopandcanbesortedbyCPUwithShift P;2.Usehtopforamoreuser-friendly,color-coded,andscrollableinterface,installableviasudoaptinstallhtoporsudodnfinstallhto

See all articles