* Thu Jul 24 2014 Lukas Vrabec <lvrabec@redhat.com> 3.13.1-67

- Allow zabbix domains to access /proc//net/dev.
- Dontaudit list /tmp for icecast (#894387)
- Allow postfix_smtpd to stream connect to antivirus (#1105889)
- Add setpgid process to mip6d
- Allow keepalived manage snmp files(#1053450)
- Added support for Naemon policy (#1120789).
- Allow certmonger to exec ldconfig to make  ipa-server-install
working. (#1122110)
- Update cockpik policy from cockpit usptream.
This commit is contained in:
Lukas Vrabec 2014-07-24 16:12:42 +02:00
parent 610d0fc14f
commit 0a90ee743a
2 changed files with 132 additions and 120 deletions

View File

@ -11136,7 +11136,7 @@ index 008f8ef..144c074 100644
admin_pattern($1, certmonger_var_run_t) admin_pattern($1, certmonger_var_run_t)
') ')
diff --git a/certmonger.te b/certmonger.te diff --git a/certmonger.te b/certmonger.te
index 550b287..31b8bd7 100644 index 550b287..0b1d596 100644
--- a/certmonger.te --- a/certmonger.te
+++ b/certmonger.te +++ b/certmonger.te
@@ -18,6 +18,9 @@ files_type(certmonger_var_lib_t) @@ -18,6 +18,9 @@ files_type(certmonger_var_lib_t)
@ -11200,8 +11200,12 @@ index 550b287..31b8bd7 100644
fs_search_cgroup_dirs(certmonger_t) fs_search_cgroup_dirs(certmonger_t)
@@ -70,16 +84,17 @@ init_getattr_all_script_files(certmonger_t) @@ -68,18 +82,21 @@ auth_rw_cache(certmonger_t)
init_getattr_all_script_files(certmonger_t)
+libs_exec_ldconfig(certmonger_t)
+
logging_send_syslog_msg(certmonger_t) logging_send_syslog_msg(certmonger_t)
-miscfiles_read_localization(certmonger_t) -miscfiles_read_localization(certmonger_t)
@ -11221,7 +11225,7 @@ index 550b287..31b8bd7 100644
') ')
optional_policy(` optional_policy(`
@@ -92,11 +107,51 @@ optional_policy(` @@ -92,11 +109,51 @@ optional_policy(`
') ')
optional_policy(` optional_policy(`
@ -13537,26 +13541,26 @@ index 5f306dd..e01156f 100644
') ')
diff --git a/cockpit.fc b/cockpit.fc diff --git a/cockpit.fc b/cockpit.fc
new file mode 100644 new file mode 100644
index 0000000..ee6e817 index 0000000..276ea8a
--- /dev/null --- /dev/null
+++ b/cockpit.fc +++ b/cockpit.fc
@@ -0,0 +1,9 @@ @@ -0,0 +1,10 @@
+/usr/lib/systemd/system/cockpit.service -- gen_context(system_u:object_r:cockpit_unit_file_t,s0) +# cockpit stuff
+ +
+/usr/lib/systemd/system/cockpit.socket -- gen_context(system_u:object_r:cockpit_unit_file_t,s0) +/usr/lib/systemd/system/cockpit.* -- gen_context(system_u:object_r:cockpit_unit_file_t,s0)
+/etc/systemd/system/cockpit.* -- gen_context(system_u:object_r:cockpit_unit_file_t,s0)
+ +
+/usr/lib/systemd/system/cockpitd.service -- gen_context(system_u:object_r:cockpit_unit_file_t,s0) +/usr/libexec/cockpit-ws -- gen_context(system_u:object_r:cockpit_ws_exec_t,s0)
+ +
+/usr/libexec/cockpitd -- gen_context(system_u:object_r:cockpit_exec_t,s0) +/usr/libexec/cockpit-session -- gen_context(system_u:object_r:cockpit_session_exec_t,s0)
+ +
+/var/lib/cockpit(/.*)? gen_context(system_u:object_r:cockpit_var_lib_t,s0) +/usr/libexec/cockpit-agent -- gen_context(system_u:object_r:shell_exec_t,s0)
diff --git a/cockpit.if b/cockpit.if diff --git a/cockpit.if b/cockpit.if
new file mode 100644 new file mode 100644
index 0000000..25e3237 index 0000000..573dcae
--- /dev/null --- /dev/null
+++ b/cockpit.if +++ b/cockpit.if
@@ -0,0 +1,186 @@ @@ -0,0 +1,188 @@
+
+## <summary>policy for cockpit</summary> +## <summary>policy for cockpit</summary>
+ +
+######################################## +########################################
@ -13569,13 +13573,32 @@ index 0000000..25e3237
+## </summary> +## </summary>
+## </param> +## </param>
+# +#
+interface(`cockpit_domtrans',` +interface(`cockpit_ws_domtrans',`
+ gen_require(` + gen_require(`
+ type cockpit_t, cockpit_exec_t; + type cockpit_ws_t, cockpit_ws_exec_t;
+ ') + ')
+ +
+ corecmd_search_bin($1) + corecmd_search_bin($1)
+ domtrans_pattern($1, cockpit_exec_t, cockpit_t) + domtrans_pattern($1, cockpit_ws_exec_t, cockpit_ws_t)
+')
+
+########################################
+## <summary>
+## Execute TEMPLATE in the cockpit domin.
+## </summary>
+## <param name="domain">
+## <summary>
+## Domain allowed to transition.
+## </summary>
+## </param>
+#
+interface(`cockpit_session_domtrans',`
+ gen_require(`
+ type cockpit_session_t, cockpit_session_exec_t;
+ ')
+
+ corecmd_search_bin($1)
+ domtrans_pattern($1, cockpit_session_exec_t, cockpit_session_t)
+') +')
+ +
+######################################## +########################################
@ -13666,7 +13689,7 @@ index 0000000..25e3237
+# +#
+interface(`cockpit_systemctl',` +interface(`cockpit_systemctl',`
+ gen_require(` + gen_require(`
+ type cockpit_t; + type cockpit_ws_t;
+ type cockpit_unit_file_t; + type cockpit_unit_file_t;
+ ') + ')
+ +
@ -13675,33 +13698,12 @@ index 0000000..25e3237
+ allow $1 cockpit_unit_file_t:file read_file_perms; + allow $1 cockpit_unit_file_t:file read_file_perms;
+ allow $1 cockpit_unit_file_t:service manage_service_perms; + allow $1 cockpit_unit_file_t:service manage_service_perms;
+ +
+ ps_process_pattern($1, cockpit_t) + ps_process_pattern($1, cockpit_ws_t)
+') +')
+ +
+ +
+######################################## +########################################
+## <summary> +## <summary>
+## Send and receive messages from
+## cockpit over dbus.
+## </summary>
+## <param name="domain">
+## <summary>
+## Domain allowed access.
+## </summary>
+## </param>
+#
+interface(`cockpit_dbus_chat',`
+ gen_require(`
+ type cockpit_t;
+ class dbus send_msg;
+ ')
+
+ allow $1 cockpit_t:dbus send_msg;
+ allow cockpit_t $1:dbus send_msg;
+')
+
+########################################
+## <summary>
+## All of the rules required to administrate +## All of the rules required to administrate
+## an cockpit environment +## an cockpit environment
+## </summary> +## </summary>
@ -13719,16 +13721,21 @@ index 0000000..25e3237
+# +#
+interface(`cockpit_admin',` +interface(`cockpit_admin',`
+ gen_require(` + gen_require(`
+ type cockpit_t; + type cockpit_ws_t;
+ type cockpit_session_t;
+ type cockpit_var_lib_t; + type cockpit_var_lib_t;
+ type cockpit_unit_file_t; + type cockpit_unit_file_t;
+ ') + ')
+ +
+ allow $1 cockpit_t:process { signal_perms }; + allow $1 cockpit_ws_t:process { signal_perms };
+ ps_process_pattern($1, cockpit_t) + ps_process_pattern($1, cockpit_ws_t)
+
+ allow $1 cockpit_session_t:process { signal_perms };
+ ps_process_pattern($1, cockpit_session_t)
+ +
+ tunable_policy(`deny_ptrace',`',` + tunable_policy(`deny_ptrace',`',`
+ allow $1 cockpit_t:process ptrace; + allow $1 cockpit_ws_t:process ptrace;
+ allow $1 cockpit_session_t:process ptrace;
+ ') + ')
+ +
+ files_search_var_lib($1) + files_search_var_lib($1)
@ -13744,10 +13751,10 @@ index 0000000..25e3237
+') +')
diff --git a/cockpit.te b/cockpit.te diff --git a/cockpit.te b/cockpit.te
new file mode 100644 new file mode 100644
index 0000000..589262d index 0000000..cc6201d
--- /dev/null --- /dev/null
+++ b/cockpit.te +++ b/cockpit.te
@@ -0,0 +1,95 @@ @@ -0,0 +1,89 @@
+policy_module(cockpit, 1.0.0) +policy_module(cockpit, 1.0.0)
+ +
+######################################## +########################################
@ -13755,93 +13762,87 @@ index 0000000..589262d
+# Declarations +# Declarations
+# +#
+ +
+type cockpit_t; +type cockpit_ws_t;
+type cockpit_exec_t; +type cockpit_ws_exec_t;
+init_daemon_domain(cockpit_t, cockpit_exec_t) +init_daemon_domain(cockpit_ws_t,cockpit_ws_exec_t)
+ +
+type cockpit_var_lib_t; +type cockpit_tmp_t;
+files_type(cockpit_var_lib_t) +files_tmp_file(cockpit_tmp_t)
+ +
+type cockpit_unit_file_t; +type cockpit_unit_file_t;
+systemd_unit_file(cockpit_unit_file_t) +systemd_unit_file(cockpit_unit_file_t)
+ +
+type cockpit_session_t;
+type cockpit_session_exec_t;
+domain_type(cockpit_session_t)
+domain_entry_file(cockpit_session_t,cockpit_session_exec_t)
+
+######################################## +########################################
+# +#
+# cockpit local policy +# cockpit_ws_t local policy
+# +#
+allow cockpit_t self:capability net_admin;
+allow cockpit_t self:fifo_file rw_fifo_file_perms;
+allow cockpit_t self:unix_stream_socket create_stream_socket_perms;
+allow cockpit_t self:netlink_kobject_uevent_socket create_socket_perms;
+allow cockpit_t self:unix_dgram_socket create_socket_perms;
+ +
+manage_dirs_pattern(cockpit_t, cockpit_var_lib_t, cockpit_var_lib_t) +allow cockpit_ws_t self:capability net_admin;
+manage_files_pattern(cockpit_t, cockpit_var_lib_t, cockpit_var_lib_t) +allow cockpit_ws_t self:tcp_socket create_stream_socket_perms;
+manage_lnk_files_pattern(cockpit_t, cockpit_var_lib_t, cockpit_var_lib_t)
+files_var_lib_filetrans(cockpit_t, cockpit_var_lib_t, { dir file lnk_file })
+ +
+kernel_read_system_state(cockpit_t) +# cockpit-ws can execute cockpit-session
+kernel_read_network_state(cockpit_t) +can_exec(cockpit_ws_t,cockpit_session_exec_t)
+ +
+corecmd_exec_bin(cockpit_t) +# cockpit-ws can read from /dev/urandom
+corecmd_exec_shell(cockpit_t) +dev_read_urand(cockpit_ws_t) # for authkey
+dev_read_rand(cockpit_ws_t) # for libssh
+ +
+corenet_tcp_bind_cockpit_port(cockpit_t) +# cockpit-ws can read from the cockpit port
+# TODO: disable this until we have it in our f20 selinux-policy-targeted
+# corenet_tcp_bind_cockpit_port(cockpit_ws_t)
+#allow cockpit_ws_t init_t:tcp_socket accept;
+corenet_tcp_bind_all_reserved_ports(cockpit_ws_t)
+ +
+dev_read_sysfs(cockpit_t) +# cockpit-ws can connect to other hosts via ssh
+corenet_tcp_connect_ssh_port(cockpit_ws_t)
+ +
+domain_use_interactive_fds(cockpit_t) +# cockpit-ws can write to its temp files
+domain_read_all_domains_state(cockpit_t) +manage_dirs_pattern(cockpit_ws_t, cockpit_tmp_t, cockpit_tmp_t)
+manage_files_pattern(cockpit_ws_t, cockpit_tmp_t, cockpit_tmp_t)
+files_tmp_filetrans(cockpit_ws_t, cockpit_tmp_t, { dir file })
+ +
+files_read_etc_files(cockpit_t) +auth_use_nsswitch(cockpit_ws_t)
+files_list_tmp(cockpit_t)
+ +
+fs_read_tmpfs_symlinks(cockpit_t) +logging_send_syslog_msg(cockpit_ws_t)
+fs_list_cgroup_dirs(cockpit_t)
+fs_read_cgroup_files(cockpit_t)
+fs_getattr_all_fs(cockpit_t)
+ +
+auth_use_nsswitch(cockpit_t) +# cockpit-ws launches cockpit-session
+cockpit_session_domtrans(cockpit_ws_t)
+allow cockpit_ws_t cockpit_session_t:process signal_perms;
+ +
+init_dbus_chat(cockpit_t) +# cockpit-session communicates back with cockpit-ws
+init_status(cockpit_t) +allow cockpit_session_t cockpit_ws_t:unix_stream_socket rw_stream_socket_perms;
+init_read_state(cockpit_t)
+init_list_pid_dirs(cockpit_t)
+
+logging_send_syslog_msg(cockpit_t)
+
+miscfiles_read_localization(cockpit_t)
+
+systemd_status_all_unit_files(cockpit_t)
+systemd_read_logind_sessions_files(cockpit_t)
+
+udev_read_pid_files(cockpit_t)
+ +
+optional_policy(` +optional_policy(`
+ dbus_system_bus_client(cockpit_t) + ssh_read_user_home_files(cockpit_ws_t)
+ dbus_connect_system_bus(cockpit_t) +')
+ +
+ optional_policy(` +#########################################################
+ accountsd_dbus_chat(cockpit_t) +#
+ ') +# cockpit-session local policy
+#
+ +
+ optional_policy(` +# cockpit-session changes to the actual logged in user
+ devicekit_dbus_chat_disk(cockpit_t) +allow cockpit_session_t self:capability { sys_admin dac_override setuid setgid };
+ devicekit_dbus_chat_power(cockpit_t) +allow cockpit_session_t self:process { setexec setsched signal_perms };
+ ')
+ +
+ optional_policy(` +# cockpit-session runs a full pam stack, including pam_selinux.so
+ networkmanager_dbus_chat(cockpit_t) +auth_login_pgm_domain(cockpit_session_t)
+ networkmanager_stream_connect(cockpit_t) +auth_write_login_records(cockpit_session_t)
+ ')
+ +
+ optional_policy(` +# cockpit-session can execute cockpit-agent as the user
+ realmd_dbus_chat(cockpit_t) +userdom_spec_domtrans_all_users(cockpit_session_t)
+ ') +
+optional_policy(`
+ userdom_signal_all_users(cockpit_session_t)
+') +')
+ +
+optional_policy(` +optional_policy(`
+ docker_stream_connect(cockpit_t) + unconfined_domtrans(cockpit_session_t)
+') +')
diff --git a/collectd.fc b/collectd.fc diff --git a/collectd.fc b/collectd.fc
index 79a3abe..8d70290 100644 index 79a3abe..8d70290 100644
@ -37549,7 +37550,7 @@ index 0000000..0d61849
+') +')
diff --git a/keepalived.te b/keepalived.te diff --git a/keepalived.te b/keepalived.te
new file mode 100644 new file mode 100644
index 0000000..1e45967 index 0000000..a5b2f96
--- /dev/null --- /dev/null
+++ b/keepalived.te +++ b/keepalived.te
@@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
@ -37606,7 +37607,7 @@ index 0000000..1e45967
+logging_send_syslog_msg(keepalived_t) +logging_send_syslog_msg(keepalived_t)
+ +
+optional_policy(` +optional_policy(`
+ snmp_manage_snmp_var_lib_files(keepalived_t) + snmp_manage_var_lib_files(keepalived_t)
+') +')
diff --git a/kerberos.fc b/kerberos.fc diff --git a/kerberos.fc b/kerberos.fc
index 4fe75fd..b029c28 100644 index 4fe75fd..b029c28 100644
@ -108291,7 +108292,7 @@ index dd63de0..38ce620 100644
- admin_pattern($1, zabbix_tmpfs_t) - admin_pattern($1, zabbix_tmpfs_t)
') ')
diff --git a/zabbix.te b/zabbix.te diff --git a/zabbix.te b/zabbix.te
index 7f496c6..f2b5fa6 100644 index 7f496c6..11bcf63 100644
--- a/zabbix.te --- a/zabbix.te
+++ b/zabbix.te +++ b/zabbix.te
@@ -6,27 +6,32 @@ policy_module(zabbix, 1.6.0) @@ -6,27 +6,32 @@ policy_module(zabbix, 1.6.0)
@ -108330,7 +108331,7 @@ index 7f496c6..f2b5fa6 100644
type zabbix_log_t; type zabbix_log_t;
logging_log_file(zabbix_log_t) logging_log_file(zabbix_log_t)
@@ -36,27 +41,53 @@ files_tmp_file(zabbix_tmp_t) @@ -36,27 +41,54 @@ files_tmp_file(zabbix_tmp_t)
type zabbix_tmpfs_t; type zabbix_tmpfs_t;
files_tmpfs_file(zabbix_tmpfs_t) files_tmpfs_file(zabbix_tmpfs_t)
@ -108354,6 +108355,7 @@ index 7f496c6..f2b5fa6 100644
+allow zabbix_domain self:unix_stream_socket create_stream_socket_perms; +allow zabbix_domain self:unix_stream_socket create_stream_socket_perms;
+ +
+kernel_read_all_sysctls(zabbix_domain) +kernel_read_all_sysctls(zabbix_domain)
+kernel_read_network_state(zabbix_domain)
+ +
+corenet_tcp_sendrecv_generic_if(zabbix_domain) +corenet_tcp_sendrecv_generic_if(zabbix_domain)
+corenet_tcp_sendrecv_generic_node(zabbix_domain) +corenet_tcp_sendrecv_generic_node(zabbix_domain)
@ -108396,7 +108398,7 @@ index 7f496c6..f2b5fa6 100644
manage_dirs_pattern(zabbix_t, zabbix_tmp_t, zabbix_tmp_t) manage_dirs_pattern(zabbix_t, zabbix_tmp_t, zabbix_tmp_t)
manage_files_pattern(zabbix_t, zabbix_tmp_t, zabbix_tmp_t) manage_files_pattern(zabbix_t, zabbix_tmp_t, zabbix_tmp_t)
@@ -70,13 +101,9 @@ manage_files_pattern(zabbix_t, zabbix_var_run_t, zabbix_var_run_t) @@ -70,13 +102,9 @@ manage_files_pattern(zabbix_t, zabbix_var_run_t, zabbix_var_run_t)
files_pid_filetrans(zabbix_t, zabbix_var_run_t, { dir file }) files_pid_filetrans(zabbix_t, zabbix_var_run_t, { dir file })
kernel_read_system_state(zabbix_t) kernel_read_system_state(zabbix_t)
@ -108410,7 +108412,7 @@ index 7f496c6..f2b5fa6 100644
corenet_sendrecv_ftp_client_packets(zabbix_t) corenet_sendrecv_ftp_client_packets(zabbix_t)
corenet_tcp_connect_ftp_port(zabbix_t) corenet_tcp_connect_ftp_port(zabbix_t)
@@ -85,24 +112,18 @@ corenet_tcp_sendrecv_ftp_port(zabbix_t) @@ -85,24 +113,18 @@ corenet_tcp_sendrecv_ftp_port(zabbix_t)
corenet_sendrecv_http_client_packets(zabbix_t) corenet_sendrecv_http_client_packets(zabbix_t)
corenet_tcp_connect_http_port(zabbix_t) corenet_tcp_connect_http_port(zabbix_t)
corenet_tcp_sendrecv_http_port(zabbix_t) corenet_tcp_sendrecv_http_port(zabbix_t)
@ -108438,7 +108440,7 @@ index 7f496c6..f2b5fa6 100644
tunable_policy(`zabbix_can_network',` tunable_policy(`zabbix_can_network',`
corenet_sendrecv_all_client_packets(zabbix_t) corenet_sendrecv_all_client_packets(zabbix_t)
corenet_tcp_connect_all_ports(zabbix_t) corenet_tcp_connect_all_ports(zabbix_t)
@@ -110,12 +131,11 @@ tunable_policy(`zabbix_can_network',` @@ -110,12 +132,11 @@ tunable_policy(`zabbix_can_network',`
') ')
optional_policy(` optional_policy(`
@ -108453,7 +108455,7 @@ index 7f496c6..f2b5fa6 100644
') ')
optional_policy(` optional_policy(`
@@ -125,6 +145,7 @@ optional_policy(` @@ -125,6 +146,7 @@ optional_policy(`
optional_policy(` optional_policy(`
snmp_read_snmp_var_lib_files(zabbix_t) snmp_read_snmp_var_lib_files(zabbix_t)
@ -108461,7 +108463,7 @@ index 7f496c6..f2b5fa6 100644
') ')
######################################## ########################################
@@ -132,18 +153,7 @@ optional_policy(` @@ -132,18 +154,7 @@ optional_policy(`
# Agent local policy # Agent local policy
# #
@ -108481,7 +108483,7 @@ index 7f496c6..f2b5fa6 100644
rw_files_pattern(zabbix_agent_t, zabbix_tmpfs_t, zabbix_tmpfs_t) rw_files_pattern(zabbix_agent_t, zabbix_tmpfs_t, zabbix_tmpfs_t)
fs_tmpfs_filetrans(zabbix_agent_t, zabbix_tmpfs_t, file) fs_tmpfs_filetrans(zabbix_agent_t, zabbix_tmpfs_t, file)
@@ -151,16 +161,13 @@ fs_tmpfs_filetrans(zabbix_agent_t, zabbix_tmpfs_t, file) @@ -151,16 +162,13 @@ fs_tmpfs_filetrans(zabbix_agent_t, zabbix_tmpfs_t, file)
manage_files_pattern(zabbix_agent_t, zabbix_var_run_t, zabbix_var_run_t) manage_files_pattern(zabbix_agent_t, zabbix_var_run_t, zabbix_var_run_t)
files_pid_filetrans(zabbix_agent_t, zabbix_var_run_t, file) files_pid_filetrans(zabbix_agent_t, zabbix_var_run_t, file)
@ -108501,7 +108503,7 @@ index 7f496c6..f2b5fa6 100644
corenet_sendrecv_zabbix_agent_server_packets(zabbix_agent_t) corenet_sendrecv_zabbix_agent_server_packets(zabbix_agent_t)
corenet_tcp_bind_zabbix_agent_port(zabbix_agent_t) corenet_tcp_bind_zabbix_agent_port(zabbix_agent_t)
@@ -177,21 +184,28 @@ corenet_tcp_sendrecv_zabbix_port(zabbix_agent_t) @@ -177,21 +185,28 @@ corenet_tcp_sendrecv_zabbix_port(zabbix_agent_t)
dev_getattr_all_blk_files(zabbix_agent_t) dev_getattr_all_blk_files(zabbix_agent_t)
dev_getattr_all_chr_files(zabbix_agent_t) dev_getattr_all_chr_files(zabbix_agent_t)

View File

@ -19,7 +19,7 @@
Summary: SELinux policy configuration Summary: SELinux policy configuration
Name: selinux-policy Name: selinux-policy
Version: 3.13.1 Version: 3.13.1
Release: 66%{?dist} Release: 67%{?dist}
License: GPLv2+ License: GPLv2+
Group: System Environment/Base Group: System Environment/Base
Source: serefpolicy-%{version}.tgz Source: serefpolicy-%{version}.tgz
@ -600,6 +600,16 @@ SELinux Reference policy mls base module.
%endif %endif
%changelog %changelog
* Thu Jul 24 2014 Lukas Vrabec <lvrabec@redhat.com> 3.13.1-67
- Allow zabbix domains to access /proc//net/dev.
- Dontaudit list /tmp for icecast (#894387)
- Allow postfix_smtpd to stream connect to antivirus (#1105889)
- Add setpgid process to mip6d
- Allow keepalived manage snmp files(#1053450)
- Added support for Naemon policy (#1120789).
- Allow certmonger to exec ldconfig to make ipa-server-install working. (#1122110)
- Update cockpik policy from cockpit usptream.
* Mon Jul 21 2014 Miroslav Grepl <mgrepl@redhat.com> 3.13.1-66 * Mon Jul 21 2014 Miroslav Grepl <mgrepl@redhat.com> 3.13.1-66
- Revert labeling back to /var/run/systemd/initctl/fifo - Revert labeling back to /var/run/systemd/initctl/fifo
- geoclue dbus chats with modemmanger - geoclue dbus chats with modemmanger