Fijar IP remota y REMOTE_ADDR con mod_rpaf / mod_remoteip no funciona

Así que estoy migrando un proyecto PHP legado de un servidor viejo a otro. Nuevo servidor está utilizando Debian 10 / Nginx / Apache 2.4 / PHP 5.6.40

He establecido todo lo que estoy acostumbrado, usando mod_rpaf para anular la dirección IP remota con la que viene de nginx en X-Real-IP. Veo la dirección correcta. $_SERVER['HTTP_X_REAL_IP'] en PHP, pero $_SERVER['REMOTE_ADDR'] sigue siendo '127.0.0.1 '

Cosas que ya traté:

  • Comentando en el rpaf. archivo conf (algunas respuestas anteriores sugirieron que el nombre del módulo podría ser incorrecto);
  • cambiar las directivas de configuración de RPAFenable, etc. RPAF_Enable y así sucesivamente - apache se niega a empezar tan obviamente el RPAFenable el formato es correcto;
  • disabling mod_rpaf and using mod_remoteip instead - no effect;
  • usando la opción de archivo ini auto_prepend_file de PHP para reemplazar REMOTE_ADDR with HTTP_X_REAL_IP - no tiene ningún efecto a pesar de que el código está siendo ejecutado (verificado con echo '1';).

Así que estoy bastante en un callejón sin salida y no veo otra opción pero simplemente usar isset($_SERVER['HTTP_X_REAL_IP']) && $_SERVER['HTTP_X_REAL_IP'] || $_SERVER['REMOTE_ADDR'] construcciones feas en todo el código...

Pero todavía espero que haya algo que me esté perdiendo.

Actualización: De hecho, la opción auto_prepend_file funcionó, pero se siente un poco hacky... Todavía me gustaría encontrar una mejor opción.

Pregunta hecha hace 3 años, 4 meses, 27 días - Por codemaster89


2 Respuestas:

  • Parece que has intentado varias soluciones para fijar la dirección IP remota con modrpaf / modremoteip, pero aún no has logrado que funcione correctamente. Aquí hay algunas sugerencias adicionales que podrían ayudarte a solucionar el problema:

    • Verificar configuración de Nginx: Asegúrate de que la configuración de Nginx esté pasando correctamente la dirección IP a Apache a través del encabezado X-Real-IP. Puedes revisar el archivo de configuración de Nginx para confirmar esto.
    • Verificar configuración de Apache: Además de la configuración de mod_rpaf o mod_remoteip, revisa la configuración general de Apache para asegurarte de que no haya conflictos o configuraciones incorrectas que puedan estar causando el problema.
    • Orden de los módulos: Asegúrate de que mod_rpaf o mod_remoteip esté cargado antes que otros módulos que puedan manipular la dirección IP, ya que el orden de los módulos en la configuración de Apache es importante en algunos casos.
    • Reiniciar servicios: Después de realizar cualquier cambio en la configuración de Nginx o Apache, asegúrate de reiniciar los servicios para que los cambios surtan efecto correctamente.
    • Consultar la documentación: Revisa la documentación oficial de mod_rpaf y mod_remoteip para obtener más información sobre la configuración correcta y posibles problemas comunes.

    Espero que alguna de estas sugerencias te ayude a solucionar el problema y fijar correctamente la IP remota en tu servidor. ¡Déjame saber si necesitas más ayuda!

    Respondida el Dec 20, 2020 a las 07:39 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Solución 1: Revisar la configuración de mod_rpaf

    Verifica que la configuración de mod_rpaf sea correcta en tu archivo de configuración de Apache. Asegúrate de que la directiva RPAFenable esté establecida en On y que las directivas RPAFproxyIPs o RPAFheader estén configuradas correctamente para tu configuración.

    Solución 2: Usar mod_remoteip

    Intenta usar modremoteip en lugar de modrpaf. mod_remoteip es un módulo de Apache que puede modificar la dirección IP remota según los encabezados entrantes, como X-Real-IP.

    Configura mod_remoteip agregando lo siguiente a tu archivo de configuración de Apache:

    
    LoadModule remoteip_module modules/mod_remoteip.so
    RemoteIPHeader X-Real-IP
    RemoteIPTrustedProxy 127.0.0.1
    

    Solución 3: Habilitar Autoindex para mod_rpaf

    En algunas configuraciones, habilitar AutoIndex para mod_rpaf puede resolver el problema. Agrega lo siguiente a tu archivo de configuración de Apache:

    
    
      RPAFenable On
      RPAFproxyIPs 127.0.0.1
      RPAFheader X-Real-IP
      AutoIndex On
    
    

    Solución 4: Establecer ServerName

    Establecer la directiva ServerName en tu archivo de configuración de Apache puede ayudar en algunos casos. Agrega lo siguiente a tu archivo de configuración de Apache:

    
    ServerName ejemplo.com
    

    Solución 5: Evitar el uso de autoprependfile

    El uso de auto_prepend_file para modificar las variables de entorno no es una solución recomendada ya que puede generar problemas de seguridad y rendimiento. Se recomienda utilizar otras soluciones como modificar la configuración de Apache o usar mod_remoteip.

    Solución 6: Verificar el cortafuegos

    Asegúrate de que tu cortafuegos no esté bloqueando el tráfico desde la dirección IP remota esperada.

    Solución 7: Contactar al proveedor de alojamiento

    Si ninguna de las soluciones anteriores funciona, considera contactar a tu proveedor de alojamiento para obtener asistencia adicional.

    Respondida el Dec 20, 2020 a las 07:42 - por Gemini

    Votos positivos: 0 | Votos negativos: 0