Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung |
tachtler:apache_http_server_archlinux [2022/04/11 20:02] – klaus | tachtler:apache_http_server_archlinux [2022/06/13 15:23] (aktuell) – [/etc/httpd/conf/httpd.conf - Teil 1] klaus |
---|
* <code apache>ServerAdmin webmaster@tachtler.net</code> | * <code apache>ServerAdmin webmaster@tachtler.net</code> |
| |
E-Mail-Adresse des [[http://httpd.apache.org|Apache HTTP Server]]-Administrators für automatisch generierte Fehlermeldungensseiten. Wenn der [[http://httpd.apache.org|Apache HTTP Server]] bei der Beantwortung von Client-Anfragen auf Probleme stößt, wird eine angepasste Fehlermeldungsseite erzeugt, welche unter Umständen auch die zusätzliche Ausgabe eines Links mit der E-Mail-Adresse des [[http://httpd.apache.org|Apache HTTP Server]]-Administrators enthalten kann. \\ Siehe auch nachfolgenden externen Link: [[https://httpd.apache.org/docs/2.4/de/mod/core.html#serversignature|ServerSignature]] | E-Mail-Adresse des [[http://httpd.apache.org|Apache HTTP Server]]-Administrators für automatisch generierte Fehlermeldungensseiten. Wenn der [[http://httpd.apache.org|Apache HTTP Server]] bei der Beantwortung von Client-Anfragen auf Probleme stösst, wird eine angepasste Fehlermeldungsseite erzeugt, welche unter Umständen auch die zusätzliche Ausgabe eines Links mit der E-Mail-Adresse des [[http://httpd.apache.org|Apache HTTP Server]]-Administrators enthalten kann. \\ Siehe auch nachfolgenden externen Link: [[https://httpd.apache.org/docs/2.4/de/mod/core.html#serversignature|ServerSignature]] |
| |
* <code apache>ServerName apache.tachtler.net:80</code> | * <code apache>ServerName apache.tachtler.net:80</code> |
| |
Hostname und TCP-Port des [[http://httpd.apache.org|Apache HTTP Servers]]. Der hier angegeben Name dient **ausschließlich und __nur__ der Selbstindentifikation des [[http://httpd.apache.org|Apache HTTP Servers]].** Ob dieser auch für selbst referenzierende URLs benutzt werden soll, regelt nachfolgende Direktive: \\ Siehe nachfolgenden externen Link: [[https://httpd.apache.org/docs/2.4/de/mod/core.html#usecanonicalname|UseCanonicalName]] | Hostname und TCP-Port des [[http://httpd.apache.org|Apache HTTP Servers]]. Der hier angegeben Name dient **ausschliesslich und __nur__ der Selbstindentifikation des [[http://httpd.apache.org|Apache HTTP Servers]].** Ob dieser auch für selbst referenzierende URLs benutzt werden soll, regelt nachfolgende Direktive: \\ Siehe nachfolgenden externen Link: [[https://httpd.apache.org/docs/2.4/de/mod/core.html#usecanonicalname|UseCanonicalName]] |
| |
* <code apache>Options -Indexes +FollowSymLinks</code> | * <code apache>Options -Indexes +FollowSymLinks</code> |
:!: **HINWEIS** - **Der Zugriff auf diese URL-Erweiterung sollte durch eine Zugriffsbeschränkung eingeschränkt werden** | :!: **HINWEIS** - **Der Zugriff auf diese URL-Erweiterung sollte durch eine Zugriffsbeschränkung eingeschränkt werden** |
| |
Siehe auch nachfolgenden internen Link: [[tachtler:apache_http_server_archlinux|Apache HTTP Server ArchLinux]] ☚ FIXME | Siehe auch nachfolgende internen Links: |
| * [[tachtler:apache_http_server_archlinux#basic_authentifizierunghtpasswd|Apache HTTP Server ArchLinux - Basic Authentifizierung - Basic Authentifizierung: htpasswd]] |
| * [[tachtler:apache_http_server_archlinux#digest_authentifizierunghtdigest|Apache HTTP Server ArchLinux - Digest Authentifizierung - Digest Authentifizierung: htdigest]] |
| |
* <code apache>ExtendedStatus On</code> | * <code apache>ExtendedStatus On</code> |
:!: **HINWEIS** - **Der Zugriff auf diese URL-Erweiterung sollte durch eine Zugriffsbeschränkung eingeschränkt werden** | :!: **HINWEIS** - **Der Zugriff auf diese URL-Erweiterung sollte durch eine Zugriffsbeschränkung eingeschränkt werden** |
| |
Siehe auch nachfolgenden internen Link: [[tachtler:apache_http_server_archlinux|Apache HTTP Server ArchLinux]] ☚ FIXME | Siehe auch nachfolgende internen Links: |
| * [[tachtler:apache_http_server_archlinux#basic_authentifizierunghtpasswd|Apache HTTP Server ArchLinux - Basic Authentifizierung - Basic Authentifizierung: htpasswd]] |
| * [[tachtler:apache_http_server_archlinux#digest_authentifizierunghtdigest|Apache HTTP Server ArchLinux - Digest Authentifizierung - Digest Authentifizierung: htdigest]] |
| |
==== info-Konfiguration: Neustart ==== | ==== info-Konfiguration: Neustart ==== |
===== languages-Konfiguration ===== | ===== languages-Konfiguration ===== |
| |
==== languages-Konfiguration: /etc/httpd/conf/extra/httpd-info.conf ==== | ==== languages-Konfiguration: /etc/httpd/conf/extra/httpd-language.conf ==== |
| |
^ Verzeichnis/Name ^ Beschreibung ^ | ^ Verzeichnis/Name ^ Beschreibung ^ |
(**__Nur relevanter Ausschnitt__**): | (**__Nur relevanter Ausschnitt__**): |
<code apache> | <code apache> |
... | |
... | |
... | |
# | # |
# DocumentRoot: The directory out of which you will serve your | # DocumentRoot: The directory out of which you will serve your |
Require all granted | Require all granted |
</Directory> | </Directory> |
... | |
... | |
... | |
</code> | </code> |
| |
===== Basic Authentifizierung ===== | ===== Basic Authentifizierung ===== |
| |
Die einfachtste Art der Authetifizierung mittels ''basic'' Authentifizierung in Kombination mit einfachen Text-Dateien. | Die einfachste Art der Authentifizierung mittels ''basic'' Authentifizierung in Kombination mit einfachen Text-Dateien. |
| |
==== Basic Authentifizierung: htpasswd ==== | ==== Basic Authentifizierung: htpasswd ==== |
(**__Nur relevanter Ausschnitt__**): | (**__Nur relevanter Ausschnitt__**): |
<code apache> | <code apache> |
... | |
... | |
... | |
# | # |
# DocumentRoot: The directory out of which you will serve your | # DocumentRoot: The directory out of which you will serve your |
Require valid-user | Require valid-user |
</Directory> | </Directory> |
... | |
... | |
... | |
</code> | </code> |
| |
{{:tachtler:httpd:archlinux_apache_with_index.html.png|ArchLinux - Apache HTTP Server - Mozilla Firefox - index.html}} | {{:tachtler:httpd:archlinux_apache_with_index.html.png|ArchLinux - Apache HTTP Server - Mozilla Firefox - index.html}} |
| |
| ===== Digest Authentifizierung ===== |
| |
| Die einfachste und etwas sicherere Art der Authentifizierung mittels ''digest'' Authentifizierung in Kombination mit einfachen Text-Dateien. |
| |
| ==== Digest Authentifizierung: htdigest ==== |
| |
| Eine erheblich sicherere Methode, gegenüber der [[tachtler:apache_http_server_archlinux#basic_authentifizierunghtpasswd|Apache HTTP Server ArchLinux - Basic Authentifizierung - Basic Authentifizierung: htpasswd]] , stellt die [[tachtler:apache_http_server_archlinux#digest_authentifizierunghtdigest|Apache HTTP Server ArchLinux - Digest Authentifizierung - Digest Authentifizierung: htdigest]] dar. |
| |
| Bei der [[tachtler:apache_http_server_archlinux#digest_authentifizierunghtdigest|Apache HTTP Server ArchLinux - Digest Authentifizierung - Digest Authentifizierung: htdigest]] werden **__keine__ Klartextpasswörter** übertragen, sondern ein **MD5-Hash**, der aus den Anmeldedaten erzeugt wird. |
| |
| Mit nachfolgendem Befehl kann eine **__neue__** Passwortdatei innerhalb eines Verzeichnisses, hier z.B. |
| * ''/etc/httpd/conf'' |
| wie folgt erzeugt werden: |
| <code> |
| # htdigest -c /etc/httpd/conf/.htdigest "Password protected area!" klaus |
| Adding password for klaus in realm Password protected area!. |
| New password: |
| Re-type new password: |
| </code> |
| |
| **__Erklärungen__**: |
| |
| Die verwendeten Parameter haben nachfolgende Bedeutung: |
| |
| ^ Parameter ^ Erklärung ^ |
| | ''-c'' | Erstellt eine **__neue__ Passwortdatei** mit dem angegebenen Dateinamen | |
| | ''/etc/httpd/conf/.htdigest'' | Pfad und Dateiname für die **Passwortdatei** - hier ''.htdigest'' | |
| | ''“Password protected area!”'' | Der **Realm**-Name, zu dem der Benutzername gehört | |
| | ''klaus'' | **Benutzername**, welcher der Passwortdatei hinzugefügt werden soll | |
| |
| :!: **HINWEIS** - **Der Befehl __ohne__ die Option ''-c'' fügt einen weiteren Benutzer hinzu!** |
| |
| Mit nachfolgendem Befehl kann eine **__bestehende__** Passwortdatei innerhalb eines Verzeichnisses, hier z.B. |
| * ''/etc/httpd/conf/.htdigest'' |
| wie folgt um einen **weiteren Benutzernamen __erweitert__** werden: |
| <code> |
| # htdigest /etc/httpd/conf/.htdigest "Password protected area!" petra |
| Adding user petra in realm Password protected area! |
| New password: |
| Re-type new password: |
| </code> |
| |
| :!: **HINWEIS** - **Benutzer können durch einfaches entfernen der __jeweiligen Zeile aus der Passwortdatei__ __entfernt__ werden!** |
| |
| Nachfolgende Befehle setzen noch die richtigen **Besitz**- und **Datei**rechte für die soeben neu erstellt **Passwortdatei** - ''/etc/httpd/conf/.htdigest'': |
| |
| __**Besitz**rechte__: |
| <code> |
| # chown root.http /etc/httpd/conf/.htdigest |
| </code> |
| |
| __**Datei**rechte__: |
| <code> |
| # chmod 640 /etc/httpd/conf/.htdigest |
| </code> |
| |
| Mit nachfolgendem Befehl kann überprüft werden, ob die Erstellung und das Setzen der **Besitz**- und **Datei**rechte wie gewünscht durchgeführt wurde |
| <code> |
| # ls -la /etc/httpd/conf/.htdigest |
| -rw-r----- 1 root http 128 Apr 11 20:20 /etc/httpd/conf/.htdigest |
| </code> |
| |
| Nachfolgender Befehl zeigt den Inhalt der **Passwortdatei** - ''/etc/httpd/conf/.htdigest'': |
| <code> |
| # cat /etc/httpd/conf/.htdigest |
| klaus:Password protected area!:31e5e4076b3e3519318b7611f8fb0eb5 |
| petra:Password protected area!:b2313b18ddfd181c49f321002356a68a |
| </code> |
| |
| ==== /etc/httpd/conf/httpd.conf - Teil 1 ==== |
| |
| Anschliessend sind nachfolgende minimale Änderungen, hier an der Konfigurationsdatei |
| * ''/etc/httpd/conf/httpd.conf'' |
| durchzuführen: |
| |
| (**__Nur relevanter Ausschnitt__**): |
| <code apache> |
| # Tachtler |
| # default: #LoadModule auth_digest_module modules/mod_auth_digest.so |
| LoadModule auth_digest_module modules/mod_auth_digest.so |
| </code> |
| |
| **__Erklärungen__**: |
| |
| * <code apache># Tachtler |
| # default: #LoadModule auth_digest_module modules/mod_auth_digest.so |
| LoadModule auth_digest_module modules/mod_auth_digest.so</code> |
| |
| Um die [[tachtler:apache_http_server_archlinux#digest_authentifizierung|Apache HTTP Server ArchLinux - Digest Authentifizierung]] nutzen zu können, muss das [[http://httpd.apache.org|Apache HTTP Server]]**-Modul** - ''mod_auth_digest'' geladen werden. |
| |
| ==== /etc/httpd/conf/httpd.conf - Teil 2 ==== |
| |
| Anschliessend sind nachfolgende minimale Änderungen, hier an der Konfigurationsdatei |
| * ''/etc/httpd/conf/httpd.conf'' |
| im Bereich **''DocumentRoot''** durchzuführen: |
| |
| (**__Nur relevanter Ausschnitt__**): |
| <code apache> |
| # |
| # DocumentRoot: The directory out of which you will serve your |
| # documents. By default, all requests are taken from this directory, but |
| # symbolic links and aliases may be used to point to other locations. |
| # |
| DocumentRoot "/srv/http" |
| <Directory "/srv/http"> |
| # |
| # 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. |
| # |
| # Tachtler |
| # default: Options Indexes FollowSymLinks |
| 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: |
| # AllowOverride FileInfo AuthConfig Limit |
| # |
| AllowOverride None |
| |
| # |
| # Controls who can get stuff from this server. |
| # |
| # Tachtler |
| # default: Require all granted |
| AuthType Digest |
| AuthName "Password protected area!" |
| AuthDigestDomain "/" "http://apache.tachtler.net/" |
| AuthDigestProvider file |
| AuthUserFile conf/.htdigest |
| Require valid-user |
| </Directory> |
| </code> |
| |
| **__Erklärungen__**: |
| |
| * <code apache> # Tachtler |
| # default: Require all granted |
| AuthType Digest |
| AuthName "Password protected area!" |
| AuthDigestDomain "/" "http://apache.tachtler.net/" |
| AuthDigestProvider file |
| AuthUserFile conf/.htdigest |
| Require valid-user</code> |
| |
| Anstelle der **Standard Zugriffsrechte - ''Require all granted''** ist es erforderlich die vorhergehend gezeigt Konfiguration, welche minimal aus den Komponenten: |
| * **''AuthType''** - Art der Authentifizierung |
| * **''AuthName''** - **__Muss__ der definierte Realm sein !*** |
| * **''AuthDigestDomain''** - URIs, die sich im gleichen Schutzraum für die Digest-Authentifizierung befinden |
| * **''AuthDigestProvider''** - Legt den/die Authentifizierungsanbieter für diesen Schutzraum fest |
| * **''AuthUserFile''** - Relativer Pfad zur Direktive ''**ServerRoot**'' ''″/etc/httpd″'' |
| * **''Require valid-user''** - Zugriffsformulierung, hier "gültige Benutzer" |
| |
| ==== Digest Authentifizierung: htdigest - Neustart ==== |
| |
| Bevor **__weitere__** **Konfigurationsschritte** erfolgen, sollte ein **Neustart** erfolgen, was mit nachfolgendem Befehl durchgeführt werden kann: |
| <code> |
| # systemctl restart httpd.service |
| </code> |
| |
| :!: **HINWEIS** - **Es erfolgen __keine__ weiteren Ausgaben, wenn der Start erfolgreich war !** |
| |
| ==== Digest Authentifizierung: htdigest - Test ==== |
| |
| Wenn ein erneuter Neustart des [[http://httpd.apache.org|Apache HTTP Server]] erfolgreich durchgeführt wurde, kann die Abfrage mittels eines //Browsers// erfolgen, wie im nachfolgenden Bild dargestellt: |
| |
| {{:tachtler:httpd:archlinux_apache_with_basic_auth_htpasswd_dialog.png|ArchLinux - Apache HTTP Server - Mozilla Firefox - Basic Authentifizierung: htdigest - Dialog}} |
| |
| {{:tachtler:httpd:archlinux_apache_with_index.html.png|ArchLinux - Apache HTTP Server - Mozilla Firefox - index.html}} |
| |
| |
| ===== Nützliche Befehle ===== |
| |
| Nachfolgende Befehle können bei der Administration eines [[https://httpd.apache.org|Apache HTTP Servers]] nützlich sein. |
| |
| :!: **HINWEIS** - **Die nachfolgende Auflistung erhebt __keinen__ Anspruch auf Vollständigkeit !** |
| |
| ==== /usr/bin/apachectl ==== |
| |
| Der nachfolgende Befehl |
| * ''/usr/bin/apachectl'' |
| stellt das **Apache Server Control Interface** dar. |
| |
FIXME :!: **Hier geht es weiter... / To be continued...** | Nachfolgende eine Auflistung der gebräuchlichsten Befehle unter Zuhilfenahme von ''apachectl'': |
| |
| ^ Befehl ^ Beschreibung ^ |
| | <code>apachectl configtest</code> | Syntaktische Überprüfung der kompletten Konfiguration | |
| | <code>apachectl -t</code> | **Wie** ''configtest'' | |
| | <code>apachectl -v</code> | Ausgabe der Version | |
| | <code>apachectl -V</code> | Ausgabe der Version und zusätzlicher Parameter | |
| | <code>apachectl -l</code> | Ausgabe der einkompilierten Module | |
| | <code>apachectl -L</code> | Ausgabe aller möglichen Konfigurationsdirektiven | |
| | <code>apachectl -t -D DUMP_VHOSTS</code> | Auflistung aller konfigurierten virtuellen Hosts | |
| | <code>apachectl -t -D DUMP_RUN_CFG</code> | Ausgabe der Laufzeit-Einstellungen | |
| | <code>apachectl -S</code> | **Wie** ''-t -D DUMP_VHOSTS'' und ''-t -D DUMP_RUN_CFG'' | |
| | <code>apachectl -t -D DUMP_MODULES</code> | Auflistung aller geladenen Module | |
| | <code>apachectl -M</code> | **Wie** ''-t -D DUMP_MODULES'' | |
| |