更改selinux端口策略(memcached)

我使用selinux运行Centos 7.2。

我在Centos 7.2上写了这两个文件服务:

系统单元文件为memcached_mc2

 [Unit] Description=memcached instance memcached_mc2 After=network.target [Service] LimitNOFILE=1024 ExecStart=/usr/bin/memcached -m 64 -U 11212 -p 11212 -u memcached -l 0.0.0.0 -c 1024 -I 1m Restart=on-failure [Install] WantedBy=multi-user.target 

系统单元文件为memcached_mc1

 [Unit] Description=memcached instance memcached_mc1 After=network.target [Service] LimitNOFILE=1024 ExecStart=/usr/bin/memcached -m 64 -U 11211 -p 11211 -u memcached -l 0.0.0.0 -c 1024 -I 1m Restart=on-failure [Install] WantedBy=multi-user.target 

正如你所看到的,唯一的变化就是每个memcached实例监听的端口。

不过,我可以启动memcached_mc1但是memcached_mc2没有:

 $ systemctl status memcached_mc1 ● memcached_mc1.service - memcached instance memcached_mc1 Loaded: loaded (/etc/systemd/system/memcached_mc1.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2017-02-24 10:39:17 UTC; 48s ago Main PID: 14388 (memcached) CGroup: /system.slice/memcached_mc1.service └─14388 /usr/bin/memcached -m 64 -U 11211 -p 11211 -u memcached -l 0.0.0.0 -c 1024 -I 1 $ systemctl status memcached_mc2 memcached_mc2.service - memcached instance memcached_mc2 Loaded: loaded (/etc/systemd/system/memcached_mc2.service; enabled; vendor preset: disabled) Active: failed (Result: start-limit) since Fri 2017-02-24 10:37:18 UTC; 2min 50s ago Process: 14359 ExecStart=/usr/bin/memcached -m 64 -U 11212 -p 11212 -u memcached -l 0.0.0.0 -c 1024 -I 1m (code=exited, status=71) Main PID: 14359 (code=exited, status=71) 

我试着停止mc1 ,只启动mc2但结果是一样的: mc2没有启动。

我也试图找出我可以在日志上查看的地方,但是,我无法find它们的存储位置。

我认为问题是selinux不允许在不同于11211(标准)的端口上使用memcached。 可能吗? 我需要改变什么?

有任何想法吗?

您需要告诉SELinux关于您想要用于memcached的自定义端口。

首先让我们看看正确的types是什么:

 # semanage port -l | grep -w 11211 memcache_port_t tcp 11211 memcache_port_t udp 11211 

所以我们要使用memcache_port_ttypes并添加我们想要的端口:

 # semanage port -a -t memcache_port_t -p tcp 11212