Web Sharing Apache Localhost - Zugriffsberechtigungen

Ich möchte phpMyAdmin auf dem nativen Apache-Webserver installieren, der mit Mac OS X 10.6 gebündelt ist. Ich habe die Webfreigabe in den Systemeinstellungen aktiviert. Ich befürchte jedoch, dass mein Computer jedem im Internet Zugriff gewährt.

  1. Wo sind die Benutzerzugriffsbeschränkungen für die Webfreigabe / den Apache-Webserver auf dem Mac?

  2. Wie ich den Zugriff für alle Computer außer meinem eigenen einschränke, damit ich Anwendungen auf dem localhost-Webserver (wie phpMyAdmin) ausführen kann.

Antworten (5)

Wie bereits erwähnt, stehen Ihre lokal gehosteten Daten nur Ihnen und den anderen Computern in Ihrem lokalen Netzwerk zur Verfügung, es sei denn, Sie leiten ausdrücklich HTTP-Datenverkehr von Ihrem Router an Ihren Computer weiter.

Um Ihre Frage zur Beschränkung des Zugriffs auf Ihren Webserver auf nur Ihren Computer zu beantworten. Sie können dies auf verschiedene Arten tun.

Denken Sie daran, dass Sie jedes Mal, wenn Sie Apache-Konfigurationen ändern, Apache neu starten müssen, damit diese Änderungen wirksam werden.

Methode 1

Wenn Sie alles auf Ihrem lokalen Webserver auf Ihren lokalen Rechner beschränken möchten, bearbeiten Sie die Datei "/etc/apache2/httpd.conf". Ungefähr in Zeile 195 finden Sie einen Konfigurationsblock, der ähnlich aussieht wie:

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

Kommentieren Sie die unteren beiden Zeilen dieses Blocks aus und fügen Sie neue Regeln hinzu

Deny from all

Und

Allow from 127.0.0.1

Dieser Block sollte jetzt so aussehen:

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

Methode 2

Sie können auch .htaccess-Dateien verwenden, um den Zugriff auf ein Verzeichnis einzuschränken. Damit .htaccess-Dateien funktionieren, müssen Sie sie zuerst aktivieren. Öffnen Sie dieselbe Datei, auf die ich in Methode 1 verwiesen habe (/etc/apache2/httpd.conf) und gehen Sie zu demselben Konfigurationsblock, den ich zuvor erwähnt habe (ungefähr in Zeile 195). Sie müssen ändern (ungefähr bei Zeile 215):

AllowOverride None

Zu

AllowOverride All

Sobald Sie dies getan haben, können Sie eine Datei namens .htaccess in einem beliebigen Ordner auf Ihrem Webserver mit den folgenden Informationen erstellen:

Deny from all
Allow from 127.0.0.1

Dadurch wird verhindert, dass jemand außer Ihrem lokalen Computer auf den Inhalt dieses Ordners oder eines seiner Unterordner zugreift.

Abschluss

Methode 1 hat den Vorteil, dass Sie sich keine Gedanken über das versehentliche Löschen von .htaccess-Dateien oder über mehrere Konfigurationen machen müssen. Methode 2 macht es sehr einfach, den Zugriff nur auf bestimmte Verzeichnisse Ihres Webservers zu beschränken.

Beachten Sie auch, dass die .htaccess-Datei diesen Punkt am Anfang des Dateinamens enthalten muss (es ist .htaccess, nicht htaccess) und dass Sie, wenn Sie Ihren lokalen Webserver anzeigen möchten, dies tun müssen, indem Sie zu http://localhost gehen ( Sie kann [Ihr Computername].local nicht verwenden).

Anstatt die gebündelte Apache-Installation auszuführen, die Ihnen eingeschränkte oder obskure Konfigurationsoptionen bietet, schlage ich vor, dass Sie stattdessen das kostenlose MAMP- Paket (Macintosh, Apache, Mysql und PHP) installieren. Es ist besser und nützlicher als Entwicklungsumgebung, da es als PHP-Entwicklungsumgebung für Mac konzipiert ist und Ihnen viel Zeit und Konfigurationsprobleme erspart. Es ist einfach zu installieren und (falls erforderlich) zu entfernen. Der Apache-Teil von MAMP ist auch sicherer als der integrierte Apache, zum Teil, weil Sie ihn einfach nur bei Bedarf ausführen können und weil er standardmäßig auf Port 8888 und nicht auf dem Standard-Port 80 des Webservers läuft. Die Ports können konfiguriert werden in den MAMP-Einstellungen.

Aus der MAMP-FAQ (in den FAQ angegebene Versionsnummern können etwas veraltet sein und durch neuere Versionen ersetzt werden):

Warum sollte ich MAMP verwenden? Ist nicht alles bereits in OS X installiert?

Derzeit ist bei Verwendung von OS X nur Apache 1.3.x mit PHP 4.3.2 vorinstalliert. PHP muss durch Änderung der Konfigurationsdateien aktiviert werden. Die von Apple bereitgestellten Apache/PHP-Versionen sind nicht immer aktuell und die Apache-PHP-Kombination ist ziemlich langsam. Außerdem muss MySQL manuell installiert werden. Mit einem Klick und in wenigen Minuten installiert MAMP Apache 2, aktuelles PHP 4, aktuelles PHP 5 und MySQL. Mit dem mitgelieferten eAccelerator werden PHP-Skripte im Vergleich zu Apples vorinstalliertem Apache/PHP bis zu zehnmal schneller ausgeführt. Wenn Sie das MAMP-Programm verwenden, können Sie den Server einfach starten und stoppen. So muss der Server nicht ständig im Hintergrund laufen und verschwendet wertvolle Ressourcen. Um MAMP zu "deinstallieren",

Ich habe zuvor MAMP verwendet, wollte aber MySQL unabhängig von MAMP installieren. Sieht so aus, als ob eine benutzerdefinierte Installation am besten funktionieren könnte.

Sie können auch die Verwendung von https://serverfault.com/questions/211382/proper-way-to-disable-apache-listening-on-localhost in Betracht ziehen

Kurz gesagt: Wechseln Sie Listen 80in Listen 127.0.0.1:80in/private/etc/apache2/httpd.conf

Das fand ich am einfachsten.

Beifall!

Zunächst einmal wird Ihr Webserver nicht mit allen im Web geteilt, solange Ihr Router Ihre IP nicht an Ihren Computer weiterleitet. Dies ist eine Einstellung, die standardmäßig nicht aktiviert ist, sodass Sie wahrscheinlich nichts teilen.

Außerdem können Sie Ihre phpMyAdmin-Installation mit einem Passwort sichern, genau wie es bei vielen Online-Installationen der Fall ist (siehe config.php für Optionen).

Wenn Sie Ihren Webserver für das Internet öffnen, können Sie außerdem den Zugriff auf phpMyAdmin einschränken, indem Sie die .htaccess-Deny / Allow-Einstellungen verwenden.

Die standardmäßig installierte Version von httpd auf MacOS Catalina hat jetzt eine etwas andere Syntax, um den Zugriff auf Verzeichnisse zu erlauben und zu verweigern. In meinem /etc/apache2/httpd.confhabe ich folgende Zeilen:

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>

Laut den httpd-Dokumenten musste ich das auskommentieren Require all grantedund stattdessen hinzufügen Require ip 127.0.0.1, um den Zugriff aus dem lokalen (oder einem anderen) Netzwerk zu deaktivieren. Und es funktioniert tatsächlich. Ich kann jetzt nicht mehr von meinem Smartphone aus auf den Webserver auf meinem Macbook zugreifen.

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

Denken Sie jedoch daran, dass Sie diese Regel in jedem zusätzlichen Verzeichnis platzieren müssen, das Sie möglicherweise zu den Konfigurationen hinzufügen.