Add selinux rule for swift host.

allow some selinux rules to allow swift-rings to be retreived from the host.

Closes-Bug: #1646124
Change-Id: I64955a4616b08bba6a4efd22c5e35180388db4a2
This commit is contained in:
Marc Gariepy 2017-01-16 15:52:11 -05:00
parent 0e45afbd91
commit 06b3a4837f
4 changed files with 88 additions and 0 deletions

36
files/osa_swift.te Normal file

@ -0,0 +1,36 @@
# Copyright 2017, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
module osa_swift 1.0;
require {
type sshd_t;
type swift_data_t;
type syslogd_t;
type default_t;
type postfix_local_t;
class file { getattr open read };
class dir { search write };
}
#============= postfix_local_t ==============
allow postfix_local_t swift_data_t:dir search;
#============= sshd_t ==============
allow sshd_t swift_data_t:file { getattr open read };
#============= syslogd_t ==============
#!!!! WARNING: 'default_t' is a base type.
allow syslogd_t default_t:dir write;

@ -13,6 +13,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
- include: swift_rings_selinux.yml
when:
- ansible_selinux.status is defined
- ansible_selinux.status == "enabled"
- include: swift_rings_md5sum.yml
- include: swift_rings_check.yml

@ -0,0 +1,45 @@
---
# Copyright 2017, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Create directory for compiling SELinux rule
file:
path: "/tmp/osa_swift-selinux/"
state: 'directory'
mode: '0755'
when:
- ansible_selinux.status == "enabled"
- name: Drop SELinux config
copy:
src: "osa_swift.te"
dest: "/tmp/osa_swift-selinux/osa_swift.te"
owner: "root"
group: "root"
mode: "0755"
when:
- ansible_selinux.status == "enabled"
- name: Compile and load SELinux module
command: '{{ item }}'
args:
creates: '/etc/selinux/targeted/active/modules/400//osa_swift/cil'
chdir: "/tmp/osa_swift-selinux/"
with_items:
- make -f /usr/share/selinux/devel/Makefile
- semodule -i /tmp/osa_swift-selinux/osa_swift.pp
when:
- ansible_selinux.status == "enabled"

@ -20,6 +20,8 @@ swift_distro_packages:
- liberasurecode
- liberasurecode-devel
- libffi-devel
- libselinux
- libselinux-devel
- openssh-server
- python-devel
- rsync