/run/resolvconf/resolv.conf foi marcado para acessar no modo de execução do SELinux no Ubuntu 16.04

0

Estou executando o Ubuntu Xenial 16.04 no AWS EC2, instalei o SELinux e mudei seu modo para Enforcing . Eu configurei o tipo selinux ssh_port_t para a porta 22 . Embora eu tenha criado o encaminhamento de porta via ssh, descobri que o túnel não funcionava corretamente.

No arquivo de log /var/log/syslog , o resultado é

kernel: [  311.860046] audit: type=1400 audit(1519664302.158:506): avc:  denied  { getattr } for  pid=1367 comm="sshd" path="/run/resolvconf/resolv.conf" dev="tmpfs" ino=267 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:init_var_run_t:s0 tclass=file permissive=0

O SELinux proibiu o comando sshd para acessar o arquivo /run/resolvconf/resolv.conf , este arquivo é um link de /etc/resolv.conf

$ readlink -f /etc/resolv.conf
/run/resolvconf/resolv.conf

$ ls -Z /etc/resolv.conf
unconfined_u:object_r:etc_t:SystemLow /etc/resolv.conf

$ ls -Z /run/resolvconf/resolv.conf
system_u:object_r:init_var_run_t:SystemLow /run/resolvconf/resolv.conf

O arquivo do tipo /run/resolvconf/resolv.conf é init_var_run_t , tentei alterá-lo para o tipo default_t , var_run_t , sshd_var_run_t via comando

# sudo semanage fcontext -a -t $TYPE /var/run/resolvconf/resolv.conf
sudo semanage fcontext -m -t $TYPE /var/run/resolvconf/resolv.conf

sudo restorecon -F -R /run/resolvconf/resolv.conf

Quando eu mudei para sshd_var_run_t , o túnel funciona. Mas outro utilitário também precisa usar o arquivo /run/resolvconf/resolv.conf , por exemplo. chronyd , esta solução não está bem.

Se eu alterar o modo SELinux para permissivo , o túnel funcionou bem, o SELinux acabou de registrar a informação no log do sistema.

Mas minha exigência é fazer o sistema funcionar bem no modo Enforcing . Como devo lidar com o arquivo /run/resolvconf/resolv.conf ou o que devo fazer para resolver o problema?

    
por Gorgon 26.02.2018 / 20:12

0 respostas