Apache2 Webserver Linux - Netzwerk und Serveradminstration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(30 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Ziel des Projektes==
 
==Ziel des Projektes==
 
*Wir wollen einen Apache2 Webserver integrieren
 
*Wir wollen einen Apache2 Webserver integrieren
*Wir wollen ihn gegen unseren LDAP Server authentifieren
+
=Klonen der Maschine=
*Ziel ist es sich mit den Benutzern die in der ldap sudo Gruppe per ssh einzulogen und dann zu administrieren
+
{| class="wikitable" style="background-color: #f2f2f2;"
==Vorab sind Nameserveränderungen notwendig==
+
! Parameter !! Wert !! Erläuterung
;in der /var/cache/bind/it2XX.int
+
|-
 
+
| '''Netzwerk (NIC)''' || DMZ || Interface-Zuweisung in VirtualBox
;in der /var/cache/bind/2XX.88.10.in-addr.arpa
+
|-
 
+
| '''IP''' || 10.88.2XX.11 || Statische IP
 +
|-
 +
| '''CIDR''' || 24 || Classless Inter-Domain Routing Präfixlänge
 +
|-
 +
| '''GW''' || 10.88.2XX.1 || GATEWAY
 +
|-
 +
| '''NS''' || 10.88.2XX.21 || Resolver
 +
|-
 +
| '''FQDN''' || www.it2XX.int || Fully Qualified Domain Name
 +
|-
 +
| '''SHORT''' || www || Short Name
 +
|-
 +
| '''DOM''' || it2XX.int|| Domain Name
 +
|}
 +
;Anpassen des Templates
 +
*[[Anpassen des Debian Templates]]
 +
;Alternative
 +
*debian-setup.sh oder rocky-setup.sh
 +
=Zertifikat holen=
 +
;holen
 +
*wget https://web.samogo.de/certs/it2XX.int.tgz -O int.tgz
 +
;entpacken
 +
*tar -xvzf int.tgz
 +
;plazieren
 +
*sudo mv fullchain.pem /etc/ssl/own.crt
 +
*sudo mv privkey.pem /etc/ssl/own.key
 
=Installation=
 
=Installation=
 
Apache2 wird zusammen mit PHP und dem Apache-PHP-Modul installiert.
 
Apache2 wird zusammen mit PHP und dem Apache-PHP-Modul installiert.
 +
*sudo apt update
 
*sudo apt install -y apache2 php libapache2-mod-php
 
*sudo apt install -y apache2 php libapache2-mod-php
 
 
=PHP aktivieren=
 
=PHP aktivieren=
Das PHP-Modul wird aktiviert und Apache neu geladen.
+
Das PHP- und das SSL-Modul werden aktiviert. Damit die Änderung greift, muss Apache anschließend neu gestartet werden.
*a2enmod php8.2
+
*sudo a2enmod php8.4 ssl
*systemctl reload apache2
+
*sudo systemctl restart apache2
 
 
 
=Webroot=
 
=Webroot=
 
Das Webroot-Verzeichnis ist der Standardort für Webseiten unter Apache.
 
Das Webroot-Verzeichnis ist der Standardort für Webseiten unter Apache.
 
*ls /var/www/html
 
*ls /var/www/html
 
 
=Dynamische Testseite erstellen=
 
=Dynamische Testseite erstellen=
 
Die Datei <code>index.php</code> ersetzt die Apache-Standardseite und gibt Systeminformationen aus.
 
Die Datei <code>index.php</code> ersetzt die Apache-Standardseite und gibt Systeminformationen aus.
*sudo nano /var/www/html/index.php
+
*sudo vi /var/www/html/index.php
 
 
 
Inhalt der Datei:
 
Inhalt der Datei:
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
Zeile 31: Zeile 53:
 
$ip      = $_SERVER['SERVER_ADDR'];
 
$ip      = $_SERVER['SERVER_ADDR'];
 
$domain  = php_uname('n');
 
$domain  = php_uname('n');
 
 
// Gateway und Nameserver aus /etc/resolv.conf und ip route auslesen
 
// Gateway und Nameserver aus /etc/resolv.conf und ip route auslesen
 
$nameserver = shell_exec("awk '/^nameserver/{print $2; exit}' /etc/resolv.conf");
 
$nameserver = shell_exec("awk '/^nameserver/{print $2; exit}' /etc/resolv.conf");
Zeile 51: Zeile 72:
 
</html>
 
</html>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
+
=Standardseite löschen=
=Standardseite deaktivieren=
+
Die Apache-Standardseite wird gelöscht damit die neue PHP-Seite aufgerufen wird.
Die Apache-Standardseite wird deaktiviert damit die neue PHP-Seite aufgerufen wird.
 
 
*sudo rm /var/www/html/index.html
 
*sudo rm /var/www/html/index.html
 
+
=Konfiguration der Seiten=
 +
;Verfügbare Konfigurationen
 +
*DIR: /etc/apache2/sites-available/
 +
;Aktivierten Konfigurationen
 +
*DIR: /etc/apache2/sites-enabled
 +
=Neue Konfigurationen anlegen=
 +
*sudo vi /etc/apache2/sites-available/it.conf
 +
<pre>
 +
<VirtualHost *:80>
 +
DocumentRoot /var/www/html
 +
ErrorLog ${APACHE_LOG_DIR}/error.log
 +
CustomLog ${APACHE_LOG_DIR}/access.log combined
 +
</VirtualHost>
 +
<VirtualHost *:443>
 +
DocumentRoot /var/www/html
 +
ErrorLog ${APACHE_LOG_DIR}/error.log
 +
CustomLog ${APACHE_LOG_DIR}/access.log combined
 +
SSLEngine on
 +
SSLCertificateFile      /etc/ssl/own.crt
 +
SSLCertificateKeyFile  /etc/ssl/own.key
 +
</VirtualHost>
 +
</pre>
 +
=Aktivieren und deaktivieren=
 +
;deaktivieren der Default Seite
 +
*sudo a2dissite 000-default.conf
 +
;aktivieren unserer Seite
 +
*sudo a2ensite it.conf
 +
;Konfiguration testen und aktivieren
 +
*sudo apache2ctl configtest
 +
*sudo systemctl reload apache2
 
=Testen=
 
=Testen=
Im Browser die IP-Adresse des Servers aufrufen.
+
Im Browser die FQDN des Servers aufrufen.
*http://IP-Adresse
+
;unverschlüsselt
 +
*http://www.it2XX.int
 +
;verschlüsselt
 +
*https://www.it2XX.int
 +
=Handling und Kontrolle=
 +
*ss -lntp | egrep "80|443"
 +
*systemctl start apache2
 +
*systemctl stop apache2
 +
*systemctl restart apache2
 +
*systemctl reload apache2
 +
*systemctl enable apache2
 +
*systemctl disable apache2
 +
*systemctl status apache2
 +
*journalctl -fu apache2
 +
*journalctl -xu apache2
 +
*tail -f /var/log/apache2/access.log

Aktuelle Version vom 19. Juli 2026, 08:17 Uhr

Ziel des Projektes

  • Wir wollen einen Apache2 Webserver integrieren

Klonen der Maschine

Parameter Wert Erläuterung
Netzwerk (NIC) DMZ Interface-Zuweisung in VirtualBox
IP 10.88.2XX.11 Statische IP
CIDR 24 Classless Inter-Domain Routing Präfixlänge
GW 10.88.2XX.1 GATEWAY
NS 10.88.2XX.21 Resolver
FQDN www.it2XX.int Fully Qualified Domain Name
SHORT www Short Name
DOM it2XX.int Domain Name
Anpassen des Templates
Alternative
  • debian-setup.sh oder rocky-setup.sh

Zertifikat holen

holen
entpacken
  • tar -xvzf int.tgz
plazieren
  • sudo mv fullchain.pem /etc/ssl/own.crt
  • sudo mv privkey.pem /etc/ssl/own.key

Installation

Apache2 wird zusammen mit PHP und dem Apache-PHP-Modul installiert.

  • sudo apt update
  • sudo apt install -y apache2 php libapache2-mod-php

PHP aktivieren

Das PHP- und das SSL-Modul werden aktiviert. Damit die Änderung greift, muss Apache anschließend neu gestartet werden.

  • sudo a2enmod php8.4 ssl
  • sudo systemctl restart apache2

Webroot

Das Webroot-Verzeichnis ist der Standardort für Webseiten unter Apache.

  • ls /var/www/html

Dynamische Testseite erstellen

Die Datei index.php ersetzt die Apache-Standardseite und gibt Systeminformationen aus.

  • sudo vi /var/www/html/index.php

Inhalt der Datei:

<?php
$hostname = gethostname();
$ip       = $_SERVER['SERVER_ADDR'];
$domain   = php_uname('n');
// Gateway und Nameserver aus /etc/resolv.conf und ip route auslesen
$nameserver = shell_exec("awk '/^nameserver/{print $2; exit}' /etc/resolv.conf");
$gateway    = shell_exec("ip route | awk '/^default/{print $3; exit}'");
?>
<!DOCTYPE html>
<html>
<head><title>Systeminfo</title></head>
<body>
<h1>Systeminfo</h1>
<table>
  <tr><td>Hostname</td><td><?= htmlspecialchars($hostname) ?></td></tr>
  <tr><td>IP-Adresse</td><td><?= htmlspecialchars($ip) ?></td></tr>
  <tr><td>Domain</td><td><?= htmlspecialchars($domain) ?></td></tr>
  <tr><td>Nameserver</td><td><?= htmlspecialchars(trim($nameserver)) ?></td></tr>
  <tr><td>Gateway</td><td><?= htmlspecialchars(trim($gateway)) ?></td></tr>
</table>
</body>
</html>

Standardseite löschen

Die Apache-Standardseite wird gelöscht damit die neue PHP-Seite aufgerufen wird.

  • sudo rm /var/www/html/index.html

Konfiguration der Seiten

Verfügbare Konfigurationen
  • DIR: /etc/apache2/sites-available/
Aktivierten Konfigurationen
  • DIR: /etc/apache2/sites-enabled

Neue Konfigurationen anlegen

  • sudo vi /etc/apache2/sites-available/it.conf
<VirtualHost *:80>
	DocumentRoot /var/www/html
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:443>
	DocumentRoot /var/www/html
	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	SSLEngine on
	SSLCertificateFile      /etc/ssl/own.crt
	SSLCertificateKeyFile   /etc/ssl/own.key
</VirtualHost>

Aktivieren und deaktivieren

deaktivieren der Default Seite
  • sudo a2dissite 000-default.conf
aktivieren unserer Seite
  • sudo a2ensite it.conf
Konfiguration testen und aktivieren
  • sudo apache2ctl configtest
  • sudo systemctl reload apache2

Testen

Im Browser die FQDN des Servers aufrufen.

unverschlüsselt
verschlüsselt

Handling und Kontrolle

  • ss -lntp | egrep "80|443"
  • systemctl start apache2
  • systemctl stop apache2
  • systemctl restart apache2
  • systemctl reload apache2
  • systemctl enable apache2
  • systemctl disable apache2
  • systemctl status apache2
  • journalctl -fu apache2
  • journalctl -xu apache2
  • tail -f /var/log/apache2/access.log