diff options
| author | sarthurdev <965089+sarthurdev@users.noreply.github.com> | 2025-09-23 15:23:55 +0200 |
|---|---|---|
| committer | sarthurdev <965089+sarthurdev@users.noreply.github.com> | 2025-09-23 19:55:17 +0200 |
| commit | cdf9fe4c9cfd4572c49207936c2304162e91e7b1 (patch) | |
| tree | 861c2f0a19574d9a40136111eb8b3af16788f320 /src | |
| parent | 868e45f86d39936ad04566e702ac95759b738149 (diff) | |
| download | vyos-1x-cdf9fe4c9cfd4572c49207936c2304162e91e7b1.tar.gz vyos-1x-cdf9fe4c9cfd4572c49207936c2304162e91e7b1.zip | |
kea: T7854: Use helper for Kea VRF systemd units
Diffstat (limited to 'src')
| -rw-r--r-- | src/etc/sudoers.d/vyos | 4 | ||||
| -rw-r--r-- | src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service | 11 | ||||
| -rw-r--r-- | src/etc/systemd/system/isc-kea-dhcp4-server@.service | 13 | ||||
| -rw-r--r-- | src/etc/systemd/system/isc-kea-dhcp6-server@.service | 13 | ||||
| -rwxr-xr-x | src/init/vyos-router | 12 | ||||
| -rwxr-xr-x | src/system/kea-vrf-helper | 14 |
6 files changed, 32 insertions, 35 deletions
diff --git a/src/etc/sudoers.d/vyos b/src/etc/sudoers.d/vyos index 0feaabc2e..198b9b9aa 100644 --- a/src/etc/sudoers.d/vyos +++ b/src/etc/sudoers.d/vyos @@ -47,9 +47,6 @@ Cmnd_Alias DIAGNOSTICS = /bin/ip vrf exec * /bin/ping *, \ /usr/libexec/vyos/op_mode/* Cmnd_Alias KEA_IP6_ROUTES = /sbin/ip -6 route replace *,\ /sbin/ip -6 route del * -Cmnd_Alias KEA_DHCP = /bin/ip vrf exec * /usr/sbin/kea-dhcp*,\ - /usr/bin/chown * /var/run/kea/*,\ - /usr/bin/chown * /run/kea/* %operator ALL=NOPASSWD: DATE, IPTABLES, ETHTOOL, IPFLUSH, HWINFO, \ PPPOE_CMDS, PCAPTURE, /usr/sbin/wanpipemon, \ DMIDECODE, DISK, CONNTRACK, IP6TABLES, \ @@ -65,4 +62,3 @@ Cmnd_Alias KEA_DHCP = /bin/ip vrf exec * /usr/sbin/kea-dhcp*,\ %sudo ALL=NOPASSWD: /usr/bin/mokutil _kea ALL=NOPASSWD: KEA_IP6_ROUTES -_kea ALL=NOPASSWD:SETENV: KEA_DHCP diff --git a/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service b/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service index 9451addd4..4b1504ffc 100644 --- a/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service @@ -5,17 +5,10 @@ Wants=network-online.target After=vyos-router.service [Service] -User=_kea +User=root AmbientCapabilities=CAP_NET_BIND_SERVICE Environment="KEA_LOCKFILE_DIR=/run/lock/kea" -ConfigurationDirectory=kea -RuntimeDirectory=kea lock/kea -RuntimeDirectoryPreserve=yes -LogsDirectory=kea -LogsDirectoryMode=0750 -StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp-ddns -c /var/run/kea/kea-%i-dhcp-ddns.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp-ddns* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +ExecStart=/usr/libexec/vyos/system/kea-vrf-helper %i /usr/sbin/kea-dhcp-ddns -c /var/run/kea/kea-%i-dhcp-ddns.conf Restart=on-failure [Install] diff --git a/src/etc/systemd/system/isc-kea-dhcp4-server@.service b/src/etc/systemd/system/isc-kea-dhcp4-server@.service index 588cca216..28521e755 100644 --- a/src/etc/systemd/system/isc-kea-dhcp4-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp4-server@.service @@ -5,21 +5,12 @@ Wants=network-online.target After=vyos-router.service [Service] -User=_kea +User=root AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW Environment="KEA_DHCP_DATA_DIR=/config/dhcp" Environment="KEA_HOOK_SCRIPTS_PATH=/usr/libexec/vyos/system" Environment="KEA_LOCKFILE_DIR=/run/lock/kea" -ConfigurationDirectory=kea -ConfigurationDirectoryMode=0750 -RuntimeDirectory=kea lock/kea -RuntimeDirectoryPreserve=yes -RuntimeDirectoryMode=0750 -LogsDirectory=kea -LogsDirectoryMode=0750 -StateDirectory=kea -ExecStart=sudo -E /bin/ip vrf exec %i /usr/sbin/kea-dhcp4 -c /var/run/kea/kea-%i-dhcp4.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/dhcp4-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp4* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +ExecStart=/usr/libexec/vyos/system/kea-vrf-helper %i /usr/sbin/kea-dhcp4 -c /var/run/kea/kea-%i-dhcp4.conf Restart=on-failure [Install] diff --git a/src/etc/systemd/system/isc-kea-dhcp6-server@.service b/src/etc/systemd/system/isc-kea-dhcp6-server@.service index 7196239af..072a2ef5f 100644 --- a/src/etc/systemd/system/isc-kea-dhcp6-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp6-server@.service @@ -5,21 +5,12 @@ Wants=network-online.target After=vyos-router.service [Service] -User=_kea +User=root AmbientCapabilities=CAP_NET_BIND_SERVICE Environment="KEA_DHCP_DATA_DIR=/config/dhcp" Environment="KEA_HOOK_SCRIPTS_PATH=/usr/libexec/vyos/system" Environment="KEA_LOCKFILE_DIR=/run/lock/kea" -ConfigurationDirectory=kea -ConfigurationDirectoryMode=0750 -RuntimeDirectory=kea lock/kea -RuntimeDirectoryPreserve=yes -RuntimeDirectoryMode=0750 -LogsDirectory=kea -LogsDirectoryMode=0750 -StateDirectory=kea -ExecStart=sudo -E /bin/ip vrf exec %i /usr/sbin/kea-dhcp6 -c /var/run/kea/kea-%i-dhcp6.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/dhcp6-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp6* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +ExecStart=/usr/libexec/vyos/system/kea-vrf-helper %i /usr/sbin/kea-dhcp6 -c /var/run/kea/kea-%i-dhcp6.conf Restart=on-failure [Install] diff --git a/src/init/vyos-router b/src/init/vyos-router index 34c216cd6..5365a40f1 100755 --- a/src/init/vyos-router +++ b/src/init/vyos-router @@ -504,6 +504,18 @@ start () nfct helper add tns inet6 tcp nft --file /usr/share/vyos/vyos-firewall-init.conf || log_failure_msg "could not initiate firewall rules" + # Create needed kea directories + mkdir -p /var/run/kea /run/lock/kea + chmod 750 /var/run/kea /run/lock/kea + chown _kea:_kea /var/run/kea /run/lock/kea + if [ -d /opt/vyatta/etc/config ]; then + if [ ! -d /opt/vyatta/etc/config/dhcp ]; then + mkdir /opt/vyatta/etc/config/dhcp + chmod 750 /opt/vyatta/etc/config/dhcp + chown _kea:vyattacfg /opt/vyatta/etc/config/dhcp + fi + fi + # Ensure rsyslog is the default syslog daemon SYSTEMD_SYSLOG="/etc/systemd/system/syslog.service" SYSTEMD_RSYSLOG="/lib/systemd/system/rsyslog.service" diff --git a/src/system/kea-vrf-helper b/src/system/kea-vrf-helper new file mode 100755 index 000000000..b4dd6a349 --- /dev/null +++ b/src/system/kea-vrf-helper @@ -0,0 +1,14 @@ +#!/bin/bash + +VRF=$1 +shift + +export KEA_DHCP_DATA_DIR=/config/dhcp +export KEA_HOOK_SCRIPTS_PATH=/usr/libexec/vyos/system +export KEA_LOCKFILE_DIR=/run/lock/kea + +ip vrf exec $VRF \ + setpriv --reuid=_kea --regid=_kea --init-groups \ + --inh-caps +net_bind_service,+net_raw \ + --ambient-caps +net_bind_service,+net_raw \ + $@ |
