Re: redis - selinux

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/20/2016 11:34 PM, Kamil Boratyński wrote:
It looks like SELinux policies block the connection betweeen Redis servers.
It is needed for replication purposes.

It's already reported in Red Hat bugzilla - https://bugzilla.redhat.com/show_bug.cgi?id=1348471
and seems like it will be fixed in the next RHEL-7 release.

Petr

* sealert
root@redis-2 ~]# sealert -a /var/log/audit/audit.log
  3% done'list' object has no attribute 'split'
103% done
found 1 alerts in /var/log/audit/audit.log
--------------------------------------------------------------------------------

SELinux is preventing /usr/bin/redis-server from name_connect access on the tcp_socket port 6379.

*****  Plugin catchall (100. confidence) suggests   **************************

If you believe that redis-server should be allowed name_connect access on the port 6379 tcp_socket by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep redis-server /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp


Additional Information:
Source Context                system_u:system_r:redis_t:s0
Target Context                system_u:object_r:redis_port_t:s0
Target Objects                port 6379 [ tcp_socket ]
Source                        redis-server
Source Path                   /usr/bin/redis-server
Port                          6379
Host                          <Unknown>
Source RPM Packages           redis-2.8.19-2.el7.x86_64
Target RPM Packages
Policy RPM                    selinux-policy-3.13.1-60.el7_2.7.noarch
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Host Name                     redis-2
Platform                      Linux redis-2 3.10.0-327.22.2.el7.x86_64 #1 SMP
                              Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64
Alert Count                   250
First Seen                    2016-07-20 21:14:59 UTC
Last Seen                     2016-07-20 21:26:05 UTC
Local ID                      90314588-4f75-485a-bce4-3b8b1742fe8f

Raw Audit Messages
type=AVC msg=audit(1469049965.377:1214): avc:  denied  { name_connect } for  pid=5668 comm="redis-server" dest=6379 scontext=system_u:system_r:redis_t:s0 tcontext=system_u:object_r:redis_port_t:s0 tclass=tcp_socket


type=SYSCALL msg=audit(1469049965.377:1214): arch=x86_64 syscall=connect success=no exit=EACCES a0=5 a1=7f6e8c010df0 a2=10 a3=7fff1db82944 items=0 ppid=1 pid=5668 auid=4294967295 uid=995 gid=993 euid=995 suid=995 fsuid=995 egid=993 sgid=993 fsgid=993 tty=(none) ses=4294967295 comm=redis-server exe=/usr/bin/redis-server subj=system_u:system_r:redis_t:s0 key=(null)

Hash: redis-server,redis_t,redis_port_t,tcp_socket,name_connect

[root@redis-2 ~]#



* sestatus
[root@redis-2 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
[root@redis-2 ~]#
Policy Type

* kernel-version
[root@redis-2 ~]# uname -a
Linux redis-2 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@redis-2 ~]#


* checkpolicy version:
[root@redis-2 ~]# checkpolicy --version
29 (compatibility range 29-15)
[root@redis-2 ~]#

* libselinux-version:
[root@redis-2 ~]# yum info installed libselinux
Loaded plugins: fastestmirror
Installed Packages
Name        : libselinux
Arch        : x86_64
Version     : 2.2.2
Release     : 6.el7
Size        : 159 k
Repo        : installed
From repo   : anaconda
Summary     : SELinux library and simple utilities
URL         : http://oss.tresys.com/git/selinux.git
License     : Public Domain
Description : Security-enhanced Linux is a feature of the Linux? kernel and a number
            : of utilities with enhanced security functionality designed to add
            : mandatory access controls to Linux.  The Security-enhanced Linux
            : kernel contains new architectural components originally developed to
            : improve the security of the Flask operating system. These
            : architectural components provide general support for the enforcement
            : of many kinds of mandatory access control policies, including those
            : based on the concepts of Type Enforcement?, Role-based Access
            : Control, and Multi-level Security.
            :
            : libselinux provides an API for SELinux applications to get and set
            : process and file security contexts and to obtain security policy
            : decisions.  Required for any applications that use the SELinux API.

[root@redis-2 ~]#

* libsemanage:
[root@redis-2 ~]# yum info installed libsemanage
Loaded plugins: fastestmirror
Installed Packages
Name        : libsemanage
Arch        : x86_64
Version     : 2.1.10
Release     : 18.el7
Size        : 220 k
Repo        : installed
From repo   : anaconda
Summary     : SELinux binary policy manipulation library
URL         : http://oss.tresys.com/git/selinux.git
License     : LGPLv2+
Description : Security-enhanced Linux is a feature of the Linux? kernel and a number
            : of utilities with enhanced security functionality designed to add
            : mandatory access controls to Linux.  The Security-enhanced Linux
            : kernel contains new architectural components originally developed to
            : improve the security of the Flask operating system. These
            : architectural components provide general support for the enforcement
            : of many kinds of mandatory access control policies, including those
            : based on the concepts of Type Enforcement?, Role-based Access
            : Control, and Multi-level Security.
            :
            : libsemanage provides an API for the manipulation of SELinux binary
            : policies. It is used by checkpolicy (the policy compiler) and similar
            : tools, as well as by programs like load_policy that need to perform
            : specific transformations on binary policies such as customizing policy
            : boolean settings.

[root@redis-2 ~]#

* policy:
[root@redis-2 ~]# grep redis-server /var/log/audit/audit.log | audit2allow
#============= redis_t ==============
allow redis_t redis_port_t:tcp_socket name_connect;
[root@redis-2 ~]#

In case of any further questions, feel free to ask me.
I think it would be nice to have a boolean value for this.

— K.



_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.


_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.




[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux