Redirección de consultas DNS de la red a localhost

3

Antes de decir algo, me gustaría que supiera que mi experiencia en el campo de la administración de redes dura aproximadamente 3 días, así que tráteme como el novato que soy. También he estado buscando alrededor de 2 de estos 3 días tratando de encontrar la mejor manera de lograr mi objetivo, y he encontrado preguntas similares en Internet, pero no he podido hacerlo.

Estoy ejecutando un servidor Apache2 en localhost: 8080 desde un Mac OS X Lion completamente actualizado. Esta Mac está conectada a través de Ethernet (interfaz en0) a un punto de acceso inalámbrico. En el AP, configuré la puerta de enlace para que sea 192.192.192.1, y le di esa dirección IP en0. El objetivo de esta red es redirigir las peticiones http / https de cualquier persona al host local de la puerta de enlace, mostrándoles la página que apache está sirviendo.

- Si antes de este punto hay algún error conceptual, hágamelo saber -

Por lo que he entendido, la mejor manera de hacer esta redirección es usar el pf.confarchivo y pfctl, pero la página del manual pf.confme dejó con un poco de cara de WTF. En freebsdonline.com he encontrado estas instrucciones para hacer algo similar:

# --------- pf.conf ----------
int_if="fxp0"
ext_if="fxp1"

rdr on $int_if inet proto tcp from any to any port www -> 127.0.0.1 port 8080
pass in on $int_if inet proto tcp from any to 127.0.0.1 port 8080 keep state
pass out on $ext_if inet proto tcp from any to any port www keep state
# ------- end pf.conf -------

La cuestión es que esto pf.confparece reenviar paquetes entre 2 interfaces, y no necesito eso (¿o sí?). ¿Podrías ayudarme a adaptarme, o al menos entender esas líneas? ¿Y hay algo más que deba hacer una vez que se hayan agregado esas líneas pf.conf?

PD: Si conoces alguna forma más fácil de hacer esta redirección, me alegrará saberlo. Pensé en usar dnsspoof, pero no he podido encontrarlo para OSX.

Palantir
fuente

Respuestas:

1

Como no lo mencionaste, me aseguraría de navegar a:

/private/etc/apache2/  

y abierto (usando el editor de texto de su elección; vi / m funciona, por supuesto)

httpd.conf  

Una vez que esté allí, asegúrese de que las líneas 39 y 40 (o más o menos) dicen:

Listen *your_web_site's_address*:8080  
Listen 8080  

Si se lee

Listen 12.34.56.78:80  
Listen 80  

Entonces eso es ciertamente una gran parte de su problema, ya que el servidor está escuchando en el puerto equivocado por completo. ¡Como siempre, asegúrese de configurar correctamente su (s) firewall (s)!

soxman
fuente
Gracias por la respuesta :) De todos modos, ya tengo el httpd.conf configurado así. Puedo acceder al sitio web escribiendo localhost: 8080, y desde otras computadoras señalando 192.168.1.1:8080. El problema es que cuando redirijo el tráfico (ahora lo estoy haciendo con dnsspoof) a mi dirección, no sé cómo especificar el puerto, y señala automáticamente el puerto 80 (que, no sé por qué , dice que no tengo permisos para usarlo).
Palantir
Olvidé preguntar si había reenviado puertos correctamente en su enrutador. Según su publicación original, parece que las solicitudes de "cualquiera" significan eso, ya sea LAN o WAN. ¿Es eso exacto? Si es así, el enrutador debe reenviar las solicitudes para el puerto 8080 (que debe ser parte de las solicitudes de nombre del sitio web) a la máquina que aloja el sitio web.
soxman
En realidad, no hay WAN. Mi computadora cumple la función de enrutador, pero como solo quiero que los clientes se comuniquen con mi servidor apache, no necesito reenviar paquetes o abrir puertos abiertos al exterior de la red.
Palantir
Finalmente he logrado que esto funcione en Linux, usando dnsspoof, porque Linux Apache puede usar el puerto 80 sin darme problemas. De todos modos, como usar máquinas virtuales todo el tiempo es bastante desagradable, no estoy cerrando este tema para ver si alguien puede ayudarme a que funcione en OSX :) Gracias por su ayuda
Palantir