Ao tentar escrever um perfil apparmor para meu aplicativo python-flask (que é executado via gunicorn), não consigo fazer com que o logprof me pergunte sobre todas as dependências.
Se estiver no modo de reclamação, o aplicativo funciona como esperado, mas o logprof não apresenta mais sugestões (veja o perfil completo por último neste post). Em todo lugar que eu leio, as pessoas parecem afirmar que o logprof deve perguntar sobre todas as dependências, que ele lê em / var / log / syslog em si. Se eu alternar para aa-enforce, o aplicativo falha e morre. O syslog de cauda mostra a rede negada, o que, é claro, acontece porque não fui questionado pelo logprof. Minha pergunta não é como eu posso ativar a rede para o aplicativo, mas sim o que na minha abordagem está incorreta, já que não me perguntam sobre todas as dependências?
Quando em reclamações, coisas da rede são permitidas (e o logprof não vai me perguntar sobre isso ?!)
Feb 22 20:54:40 devshed kernel: [7991608.610578] type=1400 audit(1424634880.675:68975): apparmor="ALLOWED" operation="accept" profile="/usr/local/bin/gunicorn" pid=2350 comm="gunicorn" laddr=127.0.0.1 lport=5000 family="inet" sock_type="stream" protocol=6
Feb 22 20:54:40 devshed kernel: [7991608.716887] type=1400 audit(1424634880.783:68976): apparmor="ALLOWED" operation="accept" profile="/usr/local/bin/gunicorn" pid=2353 comm="gunicorn" laddr=127.0.0.1 lport=5000 family="inet" sock_type="stream" protocol=6
Quando for imposta, o material da rede é negado (e o logprof não vai me perguntar sobre isso também?)
Feb 22 20:41:04 devshed kernel: [7990792.228716] type=1400 audit(1424634064.295:68737): apparmor="DENIED" operation="create" profile="/usr/local/bin/gunicorn" pid=2162 comm="gunicorn" family="inet" sock_type="stream" protocol=0
/usr/local/bin/gunicorn {
#include <abstractions/base>
#include <abstractions/bash>
#include <abstractions/python>
/bin/dash rix,
/bin/uname rix,
/etc/nsswitch.conf r,
/etc/services r,
/proc/*/mounts r,
/sbin/ldconfig rix,
/sbin/ldconfig.real rix,
/usr/bin/python2.7 ix,
/usr/local/bin/ r,
/usr/local/bin/gunicorn r,
/usr/share/mysql/charsets/Index.xml r,
/tmp/* rw,
/var/tmp/* a,
/var/www/api/app.log w,
/var/www/api/app/* r,
/var/www/api/* a,
}