:: [devuan-dev] bug#607: marked as don…
Top Page
Delete this message
Reply to this message
Author: Devuan bug Tracking System
Date:  
To: Mark Hindley
Subject: [devuan-dev] bug#607: marked as done (chrony: AppArmor profile needed between ISC dhcp client and chrony)
Your message dated Wed, 15 Feb 2023 16:05:37 +0000
with message-id <Y+0C0X1MsM5CrphY@???>
and subject line Re: bug#607: chrony: AppArmor profile needed between ISC dhcp client and chrony
has caused the Devuan bug report #607,
regarding chrony: AppArmor profile needed between ISC dhcp client and chrony
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@???
immediately.)


--
607: https://bugs.devuan.org/cgi/bugreport.cgi?bug=607
Devuan Bug Tracking System
Contact owner@??? with problems
Package: chrony
Version: 3.4-4+deb10u1
Severity: minor
Tags: d-i

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   * What was the outcome of this action?
   * What outcome did you expect instead?


*** End of the template - remove these template lines ***


This chronyd daemon configuration-reading
bug (/etc/chrony/chrony.conf) occurs ONLY when
using ALL of the following:

* dhclient (ISC DHCP client)
* chrony (Chrony NTP time server)
* apparmor (Application Armor)

WHAT DID I DO?

I merely installed the following those 3 packages:

apt install isc-dhcp-client chrony apparmor

The NTP server IP address(es) supplied by
a (remote) DHCP server gets written
into /var/lib/dhcp/chrony.server.eth1 file
and later read by chronyd daemon at startup.

OUTCOME

AppArmor reported that a file permission error
while chronyd daemon was reading the
/var/lib/dhcp/chrony.server.eth1 file.

WORKAROUND

Adding the following two files into /etc/apparmor.d/local
fixes this problem.

/etc/apparmor.d/local/sbin.dhclient.chronyd

    /var/lib/dhcp/chrony.server.* wrix,


/etc/apparmor.d/local/usr.sbin.chronyd.dhclient

    /var/lib/dhcp/chrony.server.* r,


then reload the AppArmor

    /etc/init.d/apparmor reload
    ifdown eth1
    ifup eth1
    ip addr list eth1



CONCLUSION

Ideally, two things probably needs to happen:

1.  Move (yet NOT append, but kept separate) those local 
    (but inter-package-related) apparmor files out of
    the local subdirectory and into the corresponding main 
    AppArmor config direcetory found in the 
    /etc/apparmor.d/ subdirectory


2.  During Debian post install scripting, some kind of
    dependency logic is required to do both removal and
    addition of those two AppArmor files depending on:


    A.  Both chrony and isc-dhcp-client are installed: install
        these two AppArmor files.


    B.  Only chrony are installed: check if isc-dhcp-client
        package is not installed, then remove the two AppArmor 
        inter-package-specific files.


    C.  Only isc-dhcp-client are installed: check if chrony
        package is not installed, then remove the two
        AppArmor inter-package files.


    D.  If 'apt purge' is used, always purge these two files.



Since chronyd is on the receiving end of this NTP
server IP address information, it would make more sense
to place the isc-dhcp-client/chrony inter-package
dependency logic inside the chrony package (unless
there is some grander Debian design of handling
AppArmor that I am not aware of).

-- System Information:
Distributor ID:    Devuan
Description:    Devuan GNU/Linux 3 (beowulf)
Release:    3
Codename:    beowulf
Architecture: x86_64


Kernel: Linux 5.10.46d1-no-mod-minfs (SMP w/4 CPU cores)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
LSM: AppArmor: enabled

Versions of packages chrony depends on:
ii  adduser              3.118
ii  init-system-helpers  1.56+nmu1+devuan3
ii  iproute2             4.20.0-2+deb10u1
ii  libc6                2.28-10
ii  libcap2              1:2.25-2
ii  libedit2             3.1-20181209-1
ii  libnettle6           3.4.1-1+deb10u1
ii  libseccomp2          2.3.3-4
ii  lsb-base             10.2019051400
ii  ucf                  3.0038+nmu1


chrony recommends no packages.

Versions of packages chrony suggests:
ii  bind9-dnsutils [dnsutils]  1:9.16.15-1~bpo10+1
pn  networkd-dispatcher        <none>


-- no debconf information
Version: 4.0~pre4-1

Chrony now saves NTP servers configured over DHCP to /run/chrony-dhcp/$interface.sources.
I believe that resolves this issue.

Closing.

Mark