3 votos

mod_unique_id: incapaz de encontrar la dirección IPv4 de FQDN a pesar de la configuración de hosts de etcetera y nombre del servidor Apache

Estoy tratando de conseguir mod_security y golpeó el muy común error de nombre de host

[alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "computername.domain.com"

Esto normalmente significa una entrada en el archivo hosts. Sin embargo he probado todas las combinaciones para el nombre de host; localhost (127.0.0.1), dirección IP local (192.168....) y la dirección IP pública ("122.56.11.156"). También he probado todas las combinaciones de Apache ServerName; ordenador.de dominio, dominio, direcciones IP y no se ajuste del todo. Nada parece funcionar para mí.

Actualmente mi archivo /etc/hosts parece:

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1              computername.domain.com computername localhost.localdomain localhost    
::1             localhost6.localdomain6 localhost6
192.168.0.102           computername.domain.com computername

#192.168.0.102          computername.hostingprovider.local  computername  # NIC <eth0>
#122.56.11.156          computername.domain.com computername

Ping funciona, también muestra el nombre de host

[root@computername~]# hostname
computername.domain.com

El dns público no tiene computername como un subdominio entonces, ¿cuál es la correcta dirección IP / nombre del servidor combo a utilizar? ¿Qué pasa con las entradas duplicadas en los hosts? ¿Qué mod_unqiue_id de verificación que podría ocasionar que falle?

Gracias por cualquier ayuda que pueda ofrecer


El problema subyacente

Gracias por la strace sugerencia. Sobre el inicio de apache tengo las siguientes.

1377  open("/etc/hosts", O_RDONLY)      = -1 EACCES (Permission denied)

Así que rápidamente comprobación de validez de los permisos y:

# ll /etc/hosts
-rw-r--r-- 2 root root 608 Jul 22 16:01 /etc/hosts

Pero resultó ser SELinux, ver más abajo

4voto

KCD Puntos 310

El problema era SELinux

#less /var/log/audit/audit.log

type=AVC msg=audit(1311546944.235:1040): avc:  denied  { read } for  pid=1396 comm="httpd" 
name="hosts" dev=dm-0 ino=262931 
scontext=user_u:system_r:httpd_t:s0 
tcontext=system_u:object_r:initrc_tmp_t:s0 tclass=file

En mi caso se solucionó:

# ls -lZ /etc/hosts
-rw-r--r--  root root system_u:object_r:initrc_tmp_t   /etc/hosts
# setenforce 0
# restorecon -R -F -v /etc/hosts
# setenforce 1
# ls -lZ /etc/hosts
-rw-r--r--  root root system_u:object_r:etc_t          /etc/hosts

3voto

Ryan Sampson Puntos 2898

Buscar erratas y otros errores "estúpidamente simple" todos hacemos de tiempo en tiempo (yo uso mi esposa como un lector de prueba), pero si eso no funciona sólo encendería para arriba strace para ver qué mod_security está intentando hacer. No podría estar leyendo /etc/hosts --tal vez tiene un fallo para resolver el nombre mediante DNS como una especie de disco duro falla en su lugar, o algo más.

En cualquier caso, yo sería poner nombre de la máquina en DNS de todos modos. Sólo ahorra muchas molestias.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: