Gentoo Archives: gentoo-commits

From: Sven Vermeulen <swift@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/hardened-refpolicy:master commit in: /
Date: Mon, 30 Sep 2013 19:04:05
Message-Id: 1380567784.bfd3a1c8be8744da6db2648be14a1c0ffc0e2cd3.swift@gentoo
1 commit: bfd3a1c8be8744da6db2648be14a1c0ffc0e2cd3
2 Author: Dominick Grift <dominick.grift <AT> gmail <DOT> com>
3 AuthorDate: Fri Sep 27 15:43:02 2013 +0000
4 Commit: Sven Vermeulen <swift <AT> gentoo <DOT> org>
5 CommitDate: Mon Sep 30 19:03:04 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=bfd3a1c8
7
8 Initial minissdpd policy module
9
10 MiniSSDPd is a small daemon used by MiniUPnPc (a UPnP control point for
11 IGD devices) to speed up device discoveries. MiniSSDPd keeps memory of
12 all UPnP devices that announced themselves on the network through SSDP
13 NOTIFY packets. MiniSSDPd also has the ability to handle all SSDP
14 traffic received on a computer via the multicast group
15 239.255.255.250:1900.
16
17 MiniSSDPd receives NOTIFY packets and stores information contained for
18 later use by UPnP Control Points on the machine. MiniSSDPd receives
19 M-SEARCH packets and answers on behalf of the UPnP devices running on
20 the machine. MiniUPnPd and MiniUPnPc are designed to take automatically
21 advantage of MiniSSDPd running on the same computer. Just make sure that
22 MiniSSDPd is started before any other UPnP program on the computer.
23
24 Signed-off-by: Dominick Grift <dominick.grift <AT> gmail.com>
25
26 ---
27 minissdpd.fc | 8 ++++++++
28 minissdpd.if | 39 +++++++++++++++++++++++++++++++++++++++
29 minissdpd.te | 46 ++++++++++++++++++++++++++++++++++++++++++++++
30 3 files changed, 93 insertions(+)
31
32 diff --git a/minissdpd.fc b/minissdpd.fc
33 new file mode 100644
34 index 0000000..4970404
35 --- /dev/null
36 +++ b/minissdpd.fc
37 @@ -0,0 +1,8 @@
38 +/etc/default/minissdpd -- gen_context(system_u:object_r:minissdpd_conf_t,s0)
39 +
40 +/etc/rc\.d/init\.d/minissdpd -- gen_context(system_u:object_r:minissdpd_initrc_exec_t,s0)
41 +
42 +/usr/sbin/minissdpd -- gen_context(system_u:object_r:minissdpd_exec_t,s0)
43 +
44 +/var/run/minissdpd\.pid -- gen_context(system_u:object_r:minissdpd_var_run_t,s0)
45 +/var/run/minissdpd\.sock -s gen_context(system_u:object_r:minissdpd_var_run_t,s0)
46
47 diff --git a/minissdpd.if b/minissdpd.if
48 new file mode 100644
49 index 0000000..20de8ef
50 --- /dev/null
51 +++ b/minissdpd.if
52 @@ -0,0 +1,39 @@
53 +## <summary>Daemon used by MiniUPnPc to speed up device discoveries.</summary>
54 +
55 +########################################
56 +## <summary>
57 +## All of the rules required to
58 +## administrate an minissdpd environment.
59 +## </summary>
60 +## <param name="domain">
61 +## <summary>
62 +## Domain allowed access.
63 +## </summary>
64 +## </param>
65 +## <param name="role">
66 +## <summary>
67 +## Role allowed access.
68 +## </summary>
69 +## </param>
70 +## <rolecap/>
71 +#
72 +interface(`minissdpd_admin',`
73 + gen_require(`
74 + type minissdpd_t, minissdpd_initrc_exec_t, minissdpd_conf_t;
75 + type minissdpd_var_run_t
76 + ')
77 +
78 + allow $1 minissdpd_t:process { ptrace signal_perms };
79 + ps_process_pattern($1, minissdpd_t)
80 +
81 + init_labeled_script_domtrans($1, minissdpd_initrc_exec_t)
82 + domain_system_change_exemption($1)
83 + role_transition $2 minissdpd_initrc_exec_t system_r;
84 + allow $2 system_r;
85 +
86 + files_search_etc($1)
87 + admin_pattern($1, minissdpd_conf_t)
88 +
89 + files_search_pids($1)
90 + admin_pattern($1, minissdpd_var_run_t)
91 +')
92
93 diff --git a/minissdpd.te b/minissdpd.te
94 new file mode 100644
95 index 0000000..ae9004b
96 --- /dev/null
97 +++ b/minissdpd.te
98 @@ -0,0 +1,46 @@
99 +policy_module(minissdpd, 1.0.0)
100 +
101 +########################################
102 +#
103 +# Declarations
104 +#
105 +
106 +type minissdpd_t;
107 +type minissdpd_exec_t;
108 +init_daemon_domain(minissdpd_t, minissdpd_exec_t)
109 +
110 +type minissdpd_initrc_exec_t;
111 +init_script_file(minissdpd_initrc_exec_t)
112 +
113 +type minissdpd_conf_t;
114 +files_config_file(minissdpd_conf_t)
115 +
116 +type minissdpd_var_run_t;
117 +files_pid_file(minissdpd_var_run_t)
118 +
119 +########################################
120 +#
121 +# Local policy
122 +#
123 +
124 +allow minissdpd_t self:capability { sys_module net_admin };
125 +allow minissdpd_t self:netlink_route_socket r_netlink_socket_perms;
126 +allow minissdpd_t self:udp_socket create_socket_perms;
127 +allow minissdpd_t self:unix_dgram_socket create_socket_perms;
128 +
129 +allow minissdpd_t minissdpd_var_run_t:file manage_file_perms;
130 +allow minissdpd_t minissdpd_var_run_t:sock_file manage_sock_file_perms;
131 +files_pid_filetrans(minissdpd_t, minissdpd_var_run_t, { file sock_file })
132 +
133 +kernel_read_network_state(minissdpd_t)
134 +kernel_request_load_module(minissdpd_t)
135 +
136 +corenet_all_recvfrom_unlabeled(minissdpd_t)
137 +corenet_all_recvfrom_netlabel(minissdpd_t)
138 +corenet_udp_sendrecv_generic_if(minissdpd_t)
139 +corenet_udp_sendrecv_generic_node(minissdpd_t)
140 +corenet_udp_bind_generic_node(minissdpd_t)
141 +
142 +corenet_sendrecv_ssdp_server_packets(minissdpd_t)
143 +corenet_udp_bind_ssdp_port(minissdpd_t)
144 +corenet_udp_sendrecv_ssdp_port(minissdpd_t)