Назад | Перейти на главную страницу

изменить политику порта 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 (стандартный). Является ли это возможным? Что мне нужно изменить?

Любые идеи?

Вам нужно указать 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