4 votos

Web Sharing Apache Localhost - Permisos de acceso

Quiero instalar phpMyAdmin en el servidor web Apache nativo que viene incluido en Mac OS X 10.6. He activado la opción de compartir la web en las Preferencias del Sistema. Sin embargo, mi temor es que mi ordenador esté dando acceso a todo el mundo en la web.

  1. ¿Dónde están las restricciones de acceso de los usuarios para el servidor web compartido / Apache dentro de Mac?

  2. ¿Cómo puedo restringir el acceso a todos los ordenadores excepto el mío para poder ejecutar aplicaciones en el servidor web localhost (como phpMyAdmin)?

5voto

Lester Cheung Puntos 103

Como ya se ha señalado, a menos que esté reenviando específicamente el tráfico http desde su router a su máquina, su material alojado localmente sólo estará disponible para usted y los otros ordenadores de su red local.

Para responder a tu pregunta sobre la restricción del acceso a tu servidor web sólo a tu máquina. Usted puede hacer esto de un par de maneras.

Recuerde que cada vez que cambie la configuración de apache, debe reiniciar apache para que esos cambios surtan efecto.

Método 1

Si quieres limitar todo lo que hay en tu servidor web local a tu máquina local, edita el archivo "/etc/apache2/httpd.conf". Aproximadamente en la línea 195 encontrarás un bloque de configuración similar al siguiente:

<Directory "/Library/WebServer/Documents">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks MultiViews

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>

Va a querer comentar las dos líneas inferiores de ese bloque y añadir nuevas reglas

Deny from all

y

Allow from 127.0.0.1

ese bloque debería tener ahora un aspecto:

<Directory "/Library/WebServer/Documents">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks MultiViews

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    #Order allow,deny
    #Allow from all
    Deny from all
    Allow from 127.0.0.1

</Directory>

Método 2

También puede utilizar los archivos .htaccess para limitar el acceso a un directorio. Para que los archivos .htaccess funcionen, primero hay que habilitarlos. Abra el mismo archivo al que hice referencia en el método 1 (/etc/apache2/httpd.conf) y vaya al mismo bloque de configuración que mencioné antes (en la línea 195 aproximadamente). Tendrás que cambiar (en la línea 215 aproximadamente):

AllowOverride None

a

AllowOverride All

Una vez hecho esto, puede crear un archivo llamado .htaccess en cualquier carpeta de su servidor web con la siguiente información:

Deny from all
Allow from 127.0.0.1

Esto evitará que cualquier persona, además de su máquina local, acceda al contenido de esa carpeta o de cualquiera de sus subcarpetas.

Conclusión

El método 1 tiene la ventaja de no tener que preocuparse por borrar accidentalmente los archivos .htaccess o preocuparse por las múltiples configuraciones. El método 2 hace que sea muy sencillo restringir sólo el acceso a ciertos directorios de su servidor web.

También hay que tener en cuenta que el archivo .htaccess debe incluir ese punto al principio del nombre del archivo (es .htaccess no htaccess) y que cuando quieras ver tu servidor web local tienes que hacerlo yendo a http://localhost (no puedes usar [el nombre de tu ordenador].local).

1voto

Negrino Puntos 2363

En lugar de ejecutar el paquete de instalación de Apache, que le da limitada u ocultar las opciones de configuración, le sugiero que en lugar de instalar MAMP (Macintosh, Apache, Mysql y PHP) paquete. Es mejor y más útil como un entorno de desarrollo, ya que está diseñado como un entorno de desarrollo PHP para Mac, y te ahorrará mucho tiempo y problemas de configuración. Es fácil de instalar y (si es necesario) quitar. MAMP del Apache parte también es más seguro que el built-in de Apache, en parte porque fácilmente se puede ejecutar sólo cuando sea necesario, y porque por defecto se ejecuta en el puerto 8888, en lugar de la estándar de servidor Web el puerto 80. Los puertos pueden ser configurados en el MAMP configuración.

A partir de la MAMP FAQ (los números de versión citado en la sección de preguntas frecuentes puede ser un poco fuera de fecha, reemplazado por versiones más recientes):

¿Por qué debo utilizar MAMP? No lo es todo ya instalado en mac OS X?

En el momento, cuando el uso de OS X, sólo Apache 1.3.x con PHP 4.3.2 es pre-instalado. PHP tiene que ser activado por el cambio de la configuración los archivos. El Apache/PHP versiones proporcionadas por Apple no son siempre hasta la fecha, y el Apache-PHP combinación es bastante lento. Además, MySQL tiene que ser instalado manualmente. Con un solo clic, y en apenas un par de minutos MAMP va a instalar Apache 2, la corriente de PHP 4, PHP actual 5 y MySQL. Utilizando el eAccelerator, PHP scripts son ejecutados a diez veces más rápido en comparación con Apple pre-instalado Apache/PHP. Cuando utiliza el MAMP programa, usted puede fácilmente iniciar y detener el servidor. Por lo tanto, el servidor no tiene que estar en ejecución en segundo plano de todas las tiempo, desperdiciando recursos valiosos. A "desinstalar" MAMP, usted sólo tiene para eliminar el MAMP directorio y todo vuelve a la original estado (MAMP no altera nada en el "normal" OS X).

0 votos

Antes usaba MAMP, pero quería instalar MySQL independientemente de MAMP. Parece que una instalación personalizada podría funcionar mejor.

1voto

leomelzer Puntos 1

También puede considerar el uso de https://serverfault.com/questions/211382/proper-way-to-disable-apache-listening-on-localhost

En resumen: cambiar Listen 80 en Listen 127.0.0.1:80 en /private/etc/apache2/httpd.conf

Me pareció que era la forma más fácil.

¡Salud!

0voto

julesj Puntos 231

En primer lugar, tu servidor web no se comparte con todo el mundo en la red mientras tu router no reenvíe tu IP a tu ordenador. Esta es una configuración que no está activada por defecto, así que probablemente no estás compartiendo nada.

Además, puede asegurar su instalación de phpMyAdmin con una contraseña, tal como se hace en muchas instalaciones en línea (ver config.php para las opciones).

Además, si abre su servidor web a Internet, puede limitar el acceso a phpMyAdmin utilizando la configuración .htaccess deny / allow.

0voto

user1503944 Puntos 101

La versión instalada por defecto de httpd en MacOS Catalina tiene ahora una sintaxis un poco diferente para permitir y denegar el acceso a los directorios. En mi /etc/apache2/httpd.conf Tengo las siguientes líneas:

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options FollowSymLinks Multiviews
    MultiviewsMatch Any

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

Según la documentación de httpd tuve que comentar el Require all granted y añadir Require ip 127.0.0.1 en su lugar, para desactivar el acceso desde la red local (o cualquier otra). Y efectivamente funciona. Ahora ya no puedo acceder al servidor web de mi Macbook desde mi smartphone.

https://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require

Pero ten en cuenta que tienes que colocar esa regla dentro de cualquier directorio adicional que puedas añadir a las configuraciones.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X