From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2032EECE58C for ; Fri, 11 Oct 2019 12:24:23 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EE8A82190F for ; Fri, 11 Oct 2019 12:24:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=bigon.be header.i=@bigon.be header.b="fPuIG0uj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727907AbfJKMYW (ORCPT ); Fri, 11 Oct 2019 08:24:22 -0400 Received: from ithil.bigon.be ([163.172.57.153]:38286 "EHLO ithil.bigon.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728094AbfJKMYW (ORCPT ); Fri, 11 Oct 2019 08:24:22 -0400 Received: from localhost (localhost [IPv6:::1]) by ithil.bigon.be (Postfix) with ESMTP id 6A09120552 for ; Fri, 11 Oct 2019 14:24:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bigon.be; h= content-transfer-encoding:mime-version:references:in-reply-to :x-mailer:message-id:date:date:subject:subject:from:from :received:received:received; s=key1; t=1570796658; x=1572611059; bh=VDBMM3T+nIZTLEf4vCmGy5L5xMwtcRhAcw++8Vtch9s=; b=fPuIG0ujndfl dvakFRjGl2VcWdZ/MQD44ct1OPKWr4G3OF16ABl9A/pHRM3q4wT3yzV+Ink/eVEJ CxJ4aokX5EqUhV1cdJIMvyXK5z3bCFszyPqjhJJ5I2XgLviQXxDiYxgCn3zVm013 pZVOMcHlj7BxsLFElOMUG5Pkv8rvG8I= Received: from ithil.bigon.be ([IPv6:::1]) by localhost (ithil.bigon.be [IPv6:::1]) (amavisd-new, port 10026) with ESMTP id 2j2eIqdn3BcL for ; Fri, 11 Oct 2019 14:24:18 +0200 (CEST) Received: from edoras.bigon.be (unknown [193.53.238.198]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: bigon@bigon.be) by ithil.bigon.be (Postfix) with ESMTPSA for ; Fri, 11 Oct 2019 14:24:18 +0200 (CEST) Received: from bigon (uid 1000) (envelope-from bigon@bigon.be) id 220ec by edoras.bigon.be (DragonFly Mail Agent v0.12); Fri, 11 Oct 2019 14:24:16 +0200 From: Laurent Bigonville To: selinux-refpolicy@vger.kernel.org Subject: [PATCH 10/10] Allow vpnc to create and write its pid file in /run/NetworkManager Date: Fri, 11 Oct 2019 14:24:16 +0200 Message-Id: <20191011122416.14651-10-bigon@debian.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191011122416.14651-1-bigon@debian.org> References: <20191011122416.14651-1-bigon@debian.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: selinux-refpolicy-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: selinux-refpolicy@vger.kernel.org From: Laurent Bigonville The pid file is deleted by NetworkManager itself when the vpnc process exits NetworkManager call vpnc the following way: system_u:system_r:NetworkManager_t:s0 root 11692 0.0 0.0 166272 9472 ? Sl 12:58 0:00 /usr/lib/NetworkManager/nm-vpnc-service --bus-name org.freedesktop.NetworkManager.vpnc.Connection_21 system_u:system_r:vpnc_t:s0 root 11703 0.1 0.0 9900 4896 ? SL 12:58 0:00 /usr/sbin/vpnc --no-detach --pid-file /var/run/NetworkManager/nm-vpnc-fa482929-93ee-4c64-bfba-4ee31d70f35f.pid - ---- type=AVC msg=audit(07/10/19 10:38:35.131:931) : avc: denied { write } for pid=8653 comm=vpnc path=/run/NetworkManager/nm-vpnc-fa482929-93ee-4c64-bfba-4ee31d70f35f.pid dev="tmpfs" ino=112390 scontext=system_u:system_r:vpnc_t:s0 tcontext=system_u:object_r:NetworkManager_runtime_t:s0 tclass=file permissive=1 type=AVC msg=audit(07/10/19 10:38:35.131:931) : avc: denied { create } for pid=8653 comm=vpnc name=nm-vpnc-fa482929-93ee-4c64-bfba-4ee31d70f35f.pid scontext=system_u:system_r:vpnc_t:s0 tcontext=system_u:object_r:NetworkManager_runtime_t:s0 tclass=file permissive=1 type=AVC msg=audit(07/10/19 10:38:35.131:931) : avc: denied { add_name } for pid=8653 comm=vpnc name=nm-vpnc-fa482929-93ee-4c64-bfba-4ee31d70f35f.pid scontext=system_u:system_r:vpnc_t:s0 tcontext=system_u:object_r:NetworkManager_runtime_t:s0 tclass=dir permissive=1 type=AVC msg=audit(07/10/19 10:38:35.131:931) : avc: denied { write } for pid=8653 comm=vpnc name=NetworkManager dev="tmpfs" ino=30783 scontext=system_u:system_r:vpnc_t:s0 tcontext=system_u:object_r:NetworkManager_runtime_t:s0 tclass=dir permissive=1 This commit also adds the needed interfaces Signed-off-by: Laurent Bigonville --- policy/modules/admin/vpn.te | 2 ++ policy/modules/services/networkmanager.if | 38 +++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/policy/modules/admin/vpn.te b/policy/modules/admin/vpn.te index 01fd8340..6b2ad24c 100644 --- a/policy/modules/admin/vpn.te +++ b/policy/modules/admin/vpn.te @@ -124,6 +124,8 @@ optional_policy(` optional_policy(` networkmanager_attach_tun_iface(vpnc_t) + networkmanager_create_pid_files(vpnc_t) + networkmanager_rw_pid_files(vpnc_t) ') optional_policy(` diff --git a/policy/modules/services/networkmanager.if b/policy/modules/services/networkmanager.if index 4c6dd342..fb89f210 100644 --- a/policy/modules/services/networkmanager.if +++ b/policy/modules/services/networkmanager.if @@ -253,6 +253,25 @@ interface(`networkmanager_append_log_files',` append_files_pattern($1, NetworkManager_log_t, NetworkManager_log_t) ') +######################################## +## +## Create networkmanager pid files. +## +## +## +## Domain allowed access. +## +## +# +interface(`networkmanager_create_pid_files',` + gen_require(` + type NetworkManager_runtime_t; + ') + + files_search_pids($1) + create_files_pattern($1, NetworkManager_runtime_t, NetworkManager_runtime_t) +') + ######################################## ## ## Read networkmanager pid files. @@ -273,6 +292,25 @@ interface(`networkmanager_read_pid_files',` allow $1 NetworkManager_runtime_t:file read_file_perms; ') +######################################## +## +## Read/Write networkmanager pid files. +## +## +## +## Domain allowed access. +## +## +# +interface(`networkmanager_rw_pid_files',` + gen_require(` + type NetworkManager_runtime_t; + ') + + files_search_pids($1) + rw_files_pattern($1, NetworkManager_runtime_t, NetworkManager_runtime_t) +') + #################################### ## ## Connect to networkmanager over -- 2.23.0