semanage
.
httpd_can_network_connect_db
:
# /usr/sbin/setsebool -P httpd_can_network_connect_db on
getsebool
y grep
para ver si algún Booleano está disponible para permitir el acceso. Por ejemplo, use el comando getsebool -a | grep ftp
para buscar un Booleano relacionado con FTP:
$ /usr/sbin/getsebool -a | grep ftp allow_ftpd_anon_write --> off allow_ftpd_full_access --> off allow_ftpd_use_cifs --> off allow_ftpd_use_nfs --> off ftp_home_dir --> off httpd_enable_ftp_server --> off tftp_anon_write --> off
/usr/sbin/getsebool -a
. Para una lista de los Booleanos y una explicación de lo que son, y de si están activos o no, ejecute el comando /usr/sbin/semanage boolean -l
como usuario root de Linux. vaya a Sección 5.6, “Booleanos” para información sobre listado y configuración de Booleanos.
semanage port -l | grep http
como usuario root de Linux para listar los puertos relacionados con http
:
# /usr/sbin/semanage port -l | grep http http_cache_port_t tcp 3128, 8080, 8118 http_cache_port_t udp 3130 http_port_t tcp 80, 443, 488, 8008, 8009, 8443 pegasus_http_port_t tcp 5988 pegasus_https_port_t tcp 5989
http_port_t
define los puertos en los que el Servidor HTTP Apache puede escuchar, que en este caso son los puertos TCP 80, 443, 488, 8008, 8009, y 8443. Si un administrador configura httpd.conf
para que httpd
escuche en el puerto 9876 (Listen 9876
), pero la política no fue actualizada para reflejar esto, el comando service httpd start
falla:
# /sbin/service httpd start Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:9876 (13)Permission denied: make_sock: could not bind to address 0.0.0.0:9876 no listening sockets available, shutting down Unable to open logs [FAILED]
/var/log/audit/audit.log
:
type=AVC msg=audit(1225948455.061:294): avc: denied { name_bind } for pid=4997 comm="httpd" src=9876 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket
httpd
escuchar en un puerto que no está listado en el tipo de puerto http_port_t
, ejecute el comando semanage port
para agregar un puerto a la configuración de la política [15]:
# /usr/sbin/semanage port -a -t http_port_t -p tcp 9876
-a
agrega un nuevo registro; la opción -t
define un tipo; y la opción -p
define un protocolo. El último argumento es el número de puerto a agregar.
[15]
El comando semanage port -a
agrega una entrada al archivo /etc/selinux/targeted/modules/active/ports.local
. Nota: por defecto, este archivo sólo puede ser visto por el usuario root de Linux.