изменить политику порта selinux (memcached)

Я работает Centos 7.2 с selinux.

Я написал эти две файловые службы на Centos 7.2:

Файл модуля Systemd для 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

Файл модуля Systemd для 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 не запускается.

Я также пытался выяснить, где можно посмотреть журналы, но я не смог найти, где они хранятся.

Я думаю, проблема в том, что selinux не позволяет использовать memcached на порту, отличном от 11211 (стандартный). Является ли это возможным? Что мне нужно изменить?

Есть идеи?

1
задан 24 February 2017 в 15:25
1 ответ

Вам необходимо сообщить SELinux пользовательский порт, который вы хотите использовать для memcached.

Сначала посмотрим, какой правильный тип:

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

Итак, мы хотим использовать тип memcache_port_t и добавить наш желаемый порт:

# semanage port -a -t memcache_port_t -p tcp 11212
3
ответ дан 3 December 2019 в 18:31

Теги

Похожие вопросы