4 votes

Partage Web Apache Localhost - Autorisations d'accès

Je souhaite installer phpMyAdmin sur le serveur web natif Apache qui est fourni avec Mac OS X 10.6. J'ai activé le partage Web dans les préférences système. Pourtant, je crains que mon ordinateur n'autorise l'accès à tout le monde sur le web.

  1. Où sont les restrictions d'accès des utilisateurs pour le serveur Web Sharing / Apache dans Mac ?

  2. Comment restreindre l'accès à tous les ordinateurs sauf le mien pour que je puisse exécuter des applications sur le serveur web de l'hôte local (comme phpMyAdmin).

5voto

Lester Cheung Points 152

Comme cela a déjà été souligné, à moins que vous ne transfériez spécifiquement le trafic http de votre routeur vers votre machine, votre contenu hébergé localement ne sera accessible qu'à vous et aux autres ordinateurs de votre réseau local.

Pour répondre à votre question sur la restriction de l'accès à votre serveur web à votre seule machine. Vous pouvez le faire de plusieurs manières.

N'oubliez pas qu'à chaque fois que vous modifiez la configuration d'Apache, vous devez redémarrer Apache pour que les modifications soient prises en compte.

Méthode 1

Si vous voulez limiter tout ce qui se trouve sur votre serveur web local à votre seule machine locale, éditez le fichier "/etc/apache2/httpd.conf". À la ligne 195 environ, vous trouverez un bloc de configuration qui ressemble à ceci :

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

Vous allez devoir commenter les deux dernières lignes de ce bloc et ajouter de nouvelles règles

Deny from all

et

Allow from 127.0.0.1

ce bloc devrait maintenant ressembler à :

<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éthode 2

Vous pouvez également utiliser les fichiers .htaccess pour limiter l'accès à un répertoire. Pour que les fichiers .htaccess fonctionnent, vous devez d'abord les activer. Ouvrez le fichier que j'ai référencé dans la méthode 1 (/etc/apache2/httpd.conf) et allez au même bloc de configuration que j'ai mentionné plus haut (à la ligne 195 environ). Vous devrez modifier (à la ligne 215 environ) :

AllowOverride None

à

AllowOverride All

Une fois que vous avez fait cela, vous pouvez créer un fichier appelé .htaccess dans n'importe quel dossier de votre serveur web avec les informations suivantes :

Deny from all
Allow from 127.0.0.1

Cela empêchera toute personne autre que votre machine locale d'accéder au contenu de ce dossier ou de l'un de ses sous-dossiers.

Conclusion

La méthode 1 présente l'avantage de ne pas avoir à s'inquiéter de la suppression accidentelle de fichiers .htaccess ou de configurations multiples. La méthode 2 permet de restreindre très simplement l'accès à certains répertoires de votre serveur web.

Notez également que le fichier .htaccess doit inclure ce point au début du nom du fichier (c'est .htaccess et non htaccess) et que lorsque vous voulez voir votre serveur web local, vous devez le faire en allant à l'adresse suivante http://localhost (vous ne pouvez pas utiliser [nom de votre ordinateur].local).

1voto

Tjelle Points 537

Vous pouvez également envisager d'utiliser https://serverfault.com/questions/211382/proper-way-to-disable-apache-listening-on-localhost

En bref : le changement Listen 80 en Listen 127.0.0.1:80 en /private/etc/apache2/httpd.conf

J'ai trouvé que c'était le moyen le plus facile.

Santé !

0voto

sitnaltax Points 7539

Tout d'abord, votre serveur web n'est pas partagé avec tout le monde sur le web tant que votre routeur ne transmet pas votre IP à votre ordinateur. Il s'agit d'un paramètre qui n'est pas activé par défaut, de sorte que vous ne partagez probablement rien.

Vous pouvez également sécuriser votre installation de phpMyAdmin avec un mot de passe, comme c'est le cas pour de nombreuses installations en ligne (voir config.php pour les options).

En outre, si vous ouvrez votre serveur web à l'internet, vous pouvez limiter l'accès à phpMyAdmin en utilisant les paramètres .htaccess deny / allow.

0voto

FullStack Alex Points 101

La version installée par défaut de httpd sur MacOS Catalina a maintenant une syntaxe légèrement différente pour autoriser et refuser l'accès aux répertoires. Dans mon /etc/apache2/httpd.conf J'ai les lignes suivantes :

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>

D'après la documentation de httpd, j'ai dû ajouter un commentaire à l'élément Require all granted et d'ajouter Require ip 127.0.0.1 pour désactiver l'accès à partir du réseau local (ou de tout autre réseau). Et cela fonctionne en effet. Je ne peux plus accéder au serveur web de mon Macbook depuis mon smartphone.

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

Mais gardez à l'esprit que vous devez placer cette règle à l'intérieur de tout répertoire supplémentaire que vous pourriez ajouter aux configurations.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X