不懂就问系列! 为什么 iptables 或者 firewalld 这类工具要作为服务运行? - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
LoeNet

不懂就问系列! 为什么 iptables 或者 firewalld 这类工具要作为服务运行?

  •  
  •   LoeNet Oct 14, 2021 4065 views
    This topic created in 1670 days ago, the information mentioned may be changed or developed.

    有一个疑问,Netfilter 作为网络数据包过滤机制,iptables 和 firewalld 作为用户端管理工具,按照我的理解 只是下发策略,应该完全可以无需 systemctl 服务管理. 但是目前 Linux 发行版都有这个服务. 这个主要目的还有什么?

    11 replies    2021-10-14 14:23:12 +08:00
    saytesnake
        1
    saytesnake  
       Oct 14, 2021
    iptables 跟 nftables 可以不用服务运行,没经历过 init 时代? firewalld 跟 ufw 只是 iptables 的封装。
    cweijan
        2
    cweijan  
       Oct 14, 2021
    配置的策略最终也是某些软件在用啊, iptables 就是最底层的软件.
    podel
        3
    podel  
       Oct 14, 2021
    @cweijan iptables 还不是最底层的。 最底层的是内核的 netfilter 。
    本质是。 作为防火墙。这种软件是没办法运行在 内核态的。 用户态和内核态之间会有 中断切换。开销很大。
    iptables 本质是 内核里面的现有加载模块的 控制器。
    2i2Re2PLMaDnghL
        4
    2i2Re2PLMaDnghL  
       Oct 14, 2021   10
    你 systemctl cat iptables.service 看看内容,它 RemainAfterExit=yes 说明这个服务不是一个进程。
    它只是作为 service 单元被 systemd 管理,它的启动过程即是载入 rules,然后就认为这个服务已经存在了。

    @cweijan 不是,最终是内核态处理,每个包都过一遍用户态太慢了。
    2i2Re2PLMaDnghL
        5
    2i2Re2PLMaDnghL  
       Oct 14, 2021   2
    @podel 准确地说 iptables 本质是运行在内核态的一个微型且功能特化的虚拟机式解释器。
    前沿似乎在转用 eBPF,准备用单一一个解释器运行大部分甚至所有需插入内核态运行的代码。
    GuuJiang
        6
    GuuJiang  
       Oct 14, 2021 via iPhone
    @2i2Re2PLMaDnghL 学到了,问题是个好问题,答案也是好答案
    yanqiyu
        7
    yanqiyu  
       Oct 14, 2021
    Firewalld 之类的需要监听网络环境的变化(比如某个网口插入网线并被分配 ip ),然后按照预配的或者是 NetworkManager 传递 zone 信息更新 nft
    cweijan
        8
    cweijan  
       Oct 14, 2021
    @2i2Re2PLMaDnghL 原来是这样, 感谢指教
    adoal
        9
    adoal  
       Oct 14, 2021
    开机启动做初始化啊亲
    adoal
        10
    adoal  
       Oct 14, 2021
    要不然你打算怎么做,在 rc.local 里加载写好的防火墙规则吗
    LoeNet
        11
    LoeNet  
    OP
       Oct 14, 2021
    @2i2Re2PLMaDnghL 感谢参与讨论.茅塞顿开. 目前 firewalld 已经改成 dbus.
    cat /usr/lib/systemd/system/firewalld.service
    [Unit]
    Description=firewalld - dynamic firewall daemon
    Before=network-pre.target
    Wants=network-pre.target
    After=dbus.service
    After=polkit.service
    COnflicts=iptables.service ip6tables.service ebtables.service ipset.service
    Documentation=man:firewalld(1)

    [Service]
    EnvirOnmentFile=-/etc/sysconfig/firewalld
    ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS
    ExecReload=/bin/kill -HUP $MAINPID
    # supress to log debug and error output also to /var/log/messages
    StandardOutput=null
    StandardError=null
    Type=dbus
    BusName=org.fedoraproject.FirewallD1
    KillMode=mixed

    [Install]
    WantedBy=multi-user.target
    Alias=dbus-org.fedoraproject.FirewallD1.service
    About     Help     Advertise     Blog     API     FAQ     Solana     1012 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 22:34 PVG 06:34 LAX 15:34 JFK 18:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86