Web Sharing Apache Localhost - Permisos de acceso

Quiero instalar phpMyAdmin en el servidor web Apache nativo que se incluye con Mac OS X 10.6. Encendí Web Sharing en Preferencias del sistema. Sin embargo, me temo que mi computadora está otorgando acceso a todos en la web.

  1. ¿Dónde están las restricciones de acceso de usuario para el servidor web Web Sharing/Apache dentro de Mac?

  2. Cómo restringir el acceso a todas las computadoras excepto a la mía para poder ejecutar aplicaciones en el servidor web localhost (como phpMyAdmin).

Respuestas (5)

Como ya se ha señalado, a menos que esté reenviando específicamente el tráfico http desde su enrutador a su máquina, sus cosas alojadas localmente solo estarán disponibles para usted y las otras computadoras en su red local.

Para responder a su pregunta sobre cómo restringir el acceso a su servidor web solo a su máquina. Puedes hacer esto de un par de maneras.

Recuerde, cada vez que cambie las configuraciones de apache, debe reiniciar apache para que los cambios surtan efecto.

Método 1

Si desea limitar todo en su servidor web local solo a su máquina local, edite el archivo "/etc/apache2/httpd.conf". Aproximadamente en la línea 195, encontrará un bloque de configuración similar a:

<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>

Vas a querer comentar las dos líneas inferiores de ese bloque y agregar nuevas reglas

Deny from all

y

Allow from 127.0.0.1

ese bloque ahora debería verse así:

<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 usar archivos .htaccess para limitar quién tiene acceso a un directorio. Para que los archivos .htaccess funcionen, primero debe 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 (aproximadamente en la línea 195). Deberá cambiar (en aproximadamente la línea 215):

AllowOverride None

a

AllowOverride All

Una vez que haya hecho eso, 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

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

Conclusión

El método 1 tiene la ventaja de no tener que preocuparse por eliminar accidentalmente archivos .htaccess o preocuparse por múltiples configuraciones. El método 2 hace que sea muy simple restringir el acceso solo a ciertos directorios de su servidor web.

También tenga en cuenta que el archivo .htaccess debe incluir ese punto al comienzo del nombre del archivo (es .htaccess, no htaccess) y que cuando desee ver su servidor web local, debe hacerlo yendo a http://localhost ( usted no puede usar [el nombre de su computadora].local).

En lugar de ejecutar la instalación de Apache incluida, que le brinda opciones de configuración limitadas u oscuras, le sugiero que instale el paquete gratuito MAMP (Macintosh, Apache, Mysql y PHP). Es mejor y más útil como 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. La parte de Apache de MAMP también es más segura que el Apache incorporado, en parte porque puede ejecutarlo fácilmente solo cuando sea necesario y porque, de forma predeterminada, se ejecuta en el puerto 8888, en lugar del puerto 80 del servidor web estándar. Los puertos se pueden configurar en la configuración de MAMP.

De las preguntas frecuentes de MAMP (los números de versión citados en las preguntas frecuentes pueden estar un poco desactualizados, reemplazados por versiones más nuevas):

¿Por qué debería usar MAMP? ¿No está todo ya instalado en OS X?

Por el momento, al usar OS X, solo está preinstalado Apache 1.3.x con PHP 4.3.2. PHP tiene que ser activado cambiando los archivos de configuración. Las versiones Apache/PHP proporcionadas por Apple no siempre están actualizadas y la combinación Apache-PHP es bastante lenta. Además, MySQL debe instalarse manualmente. Con un clic, y en solo unos minutos, MAMP instalará Apache 2, PHP 4 actual, PHP 5 actual y MySQL. Con el eAccelerator incluido, los scripts PHP se ejecutan hasta diez veces más rápido en comparación con Apache/PHP preinstalado de Apple. Cuando utiliza el programa MAMP, puede iniciar y detener fácilmente el servidor. Por lo tanto, el servidor no tiene que estar funcionando en segundo plano todo el tiempo, desperdiciando valiosos recursos. Para "desinstalar" MAMP,

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

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

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

Descubrí que esa es la forma más fácil.

¡Salud!

En primer lugar, su servidor web no se comparte con todos en la web siempre que su enrutador no reenvíe su IP a su computadora. Esta es una configuración que no está habilitada de forma predeterminada, por lo que probablemente no esté compartiendo nada.

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

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

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

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>

De acuerdo con los documentos httpd, tuve que comentar Require all grantedy agregar Require ip 127.0.0.1en su lugar, para deshabilitar el acceso desde la red local (o cualquier otra). Y funciona de hecho. Ya no puedo acceder al servidor web en mi Macbook desde mi teléfono inteligente.

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

Pero tenga en cuenta que debe colocar esa regla dentro de cualquier directorio adicional que pueda agregar a las configuraciones.