• 技术文章 >运维 >linux运维

    linux有防火墙吗

    青灯夜游青灯夜游2023-04-11 17:25:43原创122

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

    本教程操作环境: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来实现这个目标。一个域是一组的合理、通用的规则,这些规则适配大部分用户的日常需求。默认情况下有九个域。

    你可以查看你发行版本的所有域,或通过配置文件 /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核实处理。
    专题推荐:linux
    上一篇:linux i386是什么 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • linux nx是什么• linux golang怎么部署• 聊聊Docker支持哪些版本的Linux系统• Linux系统中怎么安装Docker• 聊聊Linux系统中使用Docker的方法• linux的基本文件类型有哪几种• linux tmpfs是什么
    1/1

    PHP中文网