forum.gl-inet.cn

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
    查看: 1048|回复: 0

    怎样对路由器上的进程配置防火墙规则

    [复制链接]

    76

    主题

    2144

    帖子

    9633

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    9633

    官方人员

    发表于 2022-6-15 18:59:02 | 显示全部楼层 |阅读模式
    最近解决了一个问题,由于业务需要,我需要对路由器上运行的特定程序制定防火墙规则,iptables本身并没有专门针对进程的插件,找了一圈,最后通过iptables的owner插件来达到了这一目的
    iptables owner模块介绍:
    iptables-mod-extra 包含防火墙的owner模块,可用于Linux用户ID及用户组ID的匹配,在早期版本中支持pid-owner,sid-owner和cmd-owner的匹配,但由于效率太低,新版本的内核模块已经弃用这个俩个选项,目前owner支持以下参数匹配:
    1. owner match options:
    2. [!] --uid-owner userid[-userid]      Match local UID
    3. [!] --gid-owner groupid[-groupid]    Match local GID
    4. [!] --socket-exists                  Match if socket exists
    复制代码
    owner模块的说明如链接(pid-owner,sid-owner和cmd-owner已不再支持
    https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH


    根据owner模块的介绍,我们可以通过不同的用户ID和组ID来匹配规则,也就意味着,我只要以特定用户名或用户组运行程序,就可以达到防火墙匹配进程的目的。
    这里我建议大家大家不要通过用户名去做匹配,因为你会遇到大量的权限问题(血的教训),最好是建立一个特定的用户组,然后将root加入用户组,这样可以避免权限问题
    下面是配置步骤。

    安装相关软件包
    1. opkg update
    2. opkg install iptables-mod-extra
    3. opkg install sudo
    复制代码
    添加用户组并将root加入用户组,组名为nonevpn, 组ID设置为65533
    1. echo nonevpn:x:65533:root >>/etc/group
    复制代码
    添加防火墙规则,我这里是数据打上特定标记
    1. iptables -t mangle -I OUTPUT -m owner --gid-owner 65533-j  MARK --set-xmark 0x80000/0x80000
    复制代码

    以特定用户组执行应用程序
    1. sudo -g nonevpn /usr/lib/ddns/dynamic_dns_updater.sh
    复制代码








    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|gl-inet.cn ( 粤ICP备18130956号 )

    GMT+8, 2024-4-30 09:03 , Processed in 0.020707 second(s), 25 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表