altere a política de porta do selinux (memcached)

1

Estou rodando um Centos 7.2 com o selinux.

Eu escrevi estes dois serviços de arquivo em um Centos 7.2:

Arquivo da unidade Systemd para 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

Arquivo da unidade Systemd para 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

Como você pode ver, a única coisa que muda é a porta onde cada instância do memcached atende.

No entanto, posso iniciar memcached_mc1 , mas memcached_mc2 no:

$ 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)

Eu tentei parar mc1 e iniciar apenas mc2 , mas o resultado é o mesmo: mc2 não foi iniciado.

Eu também tentei descobrir onde posso ver os logs, mas não consegui encontrar onde eles estão armazenados.

Eu acho que o problema é que o selinux não permite usar o memcached em uma porta diferente do 11211 (padrão). É possível? O que eu preciso mudar?

Alguma idéia?

    
por Jordi 24.02.2017 / 14:25

1 resposta

3

Você precisa informar ao SELinux sobre a porta personalizada que deseja usar para o memcached.

Primeiro, vamos ver qual é o tipo correto:

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

Portanto, queremos usar o tipo memcache_port_t e adicionar nossa porta desejada:

# semanage port -a -t memcache_port_t -p tcp 11212
    
por 24.02.2017 / 14:30

Tags