A seguinte política do SELinux será necessária para configurá-lo. NOTA: Eu assumo aqui que o tipo ajp_port_t não existe atualmente no sistema atualmente.
policy_module(myhttpd, 1.0.0)
gen_require('
type httpd_t;
')
type ajp_packet_t;
corenet_packet(ajp_packet_t)
type ajp_port_t;
corenet_port(ajp_port_t)
allow httpd_t ajp_port_t:tcp_socket { client_stream_socket_perms name_connect };
allow httpd_t ajp_port_t:packet { flow_in flow_out forward_in forward_out recv send };
Siga isto pelo comando
semanage port -a -t ajp_port_t -p tcp 9010
Para gerenciar o endereço, isso é um pouco mais complicado. E você pode possivelmente fazer com que a caixa pare de responder pela rede! Então esteja avisado.
Para isso, você precisará deste módulo de política, ele permite que todos os domínios enviem / recebam pacotes não marcados. Se você não fizer isso primeiro, poderá perder a rede, pois, por padrão, quase todos os domínios não têm permissões para enviar / receber pacotes não marcados!
policy_module(unconfined_packets, 1.0.0)
require {
attribute domain;
type unlabeled_t;
}
gen_tunable(allow_unlabeled_packets, 'true');
tunable_policy(allow_unlabeled_packets, '
allow domain unlabeled_t:packet { flow_in flow_out forward_in forward_out recv send };
')
Em seguida, você deve marcar os pacotes de entrada e saída desse host usando o iptables.
iptables -I INPUT -p tcp --sport 9010 -s <src_addr> -j SECMARK --selctx system_u:object_r:ajp_packet_t
iptables -I OUTPUT -p tcp --dport 9010 -d <dst_addr> -j SECMARK --selctx system_u:object_r:ajp_packet_t
iptables -A INPUT -j CONNSECMARK --restore
iptables -A OUTPUT -j CONNSECMARK --save