Benutzer-Werkzeuge

Webseiten-Werkzeuge


open:it:apache

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
open:it:apache [2026/04/26 16:59] – [FTP-Zugang] k@iopen:it:apache [2026/04/27 20:15] (aktuell) – [Eingeschränkter Zugang] k@i
Zeile 31: Zeile 31:
 Betroffene User in die Gruppe aufnehmen Betroffene User in die Gruppe aufnehmen
   sudo usermod -aG web <USER>   sudo usermod -aG web <USER>
 +
  
 Rechte vergeben Rechte vergeben
Zeile 39: Zeile 40:
   sudo find /var/www/sites -type f -exec chmod 664 {} \;   sudo find /var/www/sites -type f -exec chmod 664 {} \;
  
-Testen, ob nur root Rechte auf alle Ebenen hat (Muss sein)+Testen, ob nur root Rechte auf alle Ebenen hat (sollte sein)
   namei -l /var/www/sites/   namei -l /var/www/sites/
  
Zeile 53: Zeile 54:
  
 Der FTP-Zugang sollte nur als SFTP zugelassen werden und wird konfiguriert über [[ssh|SSH-Verbindungen]]. Der FTP-Zugang sollte nur als SFTP zugelassen werden und wird konfiguriert über [[ssh|SSH-Verbindungen]].
 +
 +==== Eingeschränkter Zugang ====
 +Soll ein Kunde/Anwender eingeschränkte Rechte für eine oder mehrere Webseiten erhalten, kann dies wie folgt eingerichtet werden. \\
 +
 +Anwender Y => <ANY>
 +
 +User anlegen, siehe auch [[user|Linux-Benutzerverwaltung]]
 +  sudo useradd -M -s /usr/sbin/nologin <ANY>
 +-s = Shell entfernen, kein Zugriff über SSH.
 +
 +Passwort vergeben
 +  sudo passwd <ANY>
 +
 +Web-Gruppe zuordnen
 +  sudo usermod -aG web <ANY>
 +  
 +Anstelle des Passwort-Zugriffs kann dies auch mit einem [[ssh#SSH-Schlüssel|SSH-Schlüssel]] erfolgen. Dazu den öffentlichen Schlüssel in der Datei /home/<ANY>/.ssh/authorized_keys registrieren bzw. hinterlegen.
 +Wird der User wie hier beschrieben angelegt, wird sein Home-Verzeichnis nicht automatisch mit angelegt. Das muss dann manuell erfolgen. Erforderlich, auch wenn der User später keinen Zugriff darauf haben wird. \\
 +Rechte für das Verzeichnis setzen:
 +  sudo chown -R <ANY>:<ANY> /home/<ANY>/.ssh
 +
 +  sudo chmod 700 /home/<ANY>/.ssh
 +
 +  sudo chmod 600 /home/<ANY>/.ssh/authorized_keys
 +
 +Hier wird der User eingesperrt: \\
 +Chroot-Verzeichnis anlegen
 +  sudo mkdir -p /sftp-chroot/<ANY>/webseite_1
 +
 +  sudo chown root:root /sftp-chroot
 +
 +  sudo chmod 755 /sftp-chroot
 +
 +  sudo chown root:root /sftp-chroot/<ANY>
 +
 +  sudo chmod 755 /sftp-chroot/<ANY>
 +
 +Einbinden
 +  sudo mount --bind /var/www/sites/<WEBSEITENDATEIEN> /sftp-chroot/<ANY>/webseite1
 +
 +Dauerhaft machen
 +  sudo nano /etc/fstab
 +
 +  /var/www/sites/<WEBSEITENDATEIEN> /sftp-chroot/<ANY>/webseite1 none bind 0 0
 +
 +
 +SSH für jeden User mit eingeschränkten Rechten extra konfigurieren
 +  sudo nano /etc/ssh/sshd_config
 +
 +<WRAP important>
 +ACHTUNG:
 +Niemals folgendes für den **__Hauptuser/Admin__** konfigurieren. 
 +Das Ziel wäre: Einen Landungspunkt definieren, was klappt, aber
 +das sperrt den SSH-Zugang und nur noch SFTP ist möglich!! 
 +Und damit keine sudo-Aktivitäten mehr.
 +  Match User <ANY>
 +    ForceCommand internal-sftp -d /var/www/sites
 +</WRAP>
 +
 +Einrichtung mit Password
 +  Match User <ANY>
 +    PasswordAuthentication yes
 +    PubkeyAuthentication no
 +    ChrootDirectory /sftp-chroot/<ANY>
 +    ForceCommand internal-sftp -d /web
 +    AllowTcpForwarding no
 +    X11Forwarding no
 +
 +Einrichtung mit Key-Zugriff
 +  Match User <ANY>
 +    PasswordAuthentication no
 +    PubkeyAuthentication yes
 +    ChrootDirectory /sftp-chroot/<ANY>
 +    ForceCommand internal-sftp -d /web
 +    AllowTcpForwarding no
 +    X11Forwarding no
 +
 +Syntax des Ports überprüfen
 +  sudo sshd -t
 +
 +Restart
 +  sudo systemctl restart ssh
 ===== Webseiten & virtueller Host ===== ===== Webseiten & virtueller Host =====
-Verzeichnis für die HTML-Daten über die Shell anlegen+Verzeichnis für die HTML-Daten anlegen
   sudo mkdir /var/www/sites/BLUEGNU.DE   sudo mkdir /var/www/sites/BLUEGNU.DE
  
-  sudo chmod -R 775 /var/www/sites/BLUEGNU.DE 
-  
 Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden. Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden.
  
-Je nach Anwendungsfall ist es sinnvoll sensible Daten außerhalb des direkten Webseitenzugriffs und in andere Verzeichnisse zu platzieren. Der Apache-Webbrowser (User www-data) muss Zugriff darauf haben -> Z.B. im Verzeichnis /var/www/data/.... Das muss über die Konfiguration der jeweilige Webseite definiert werden. Z.B. bei Nextcloud über die ...config/config.php+Je nach Anwendungsfall ist es sinnvoll sensible Daten außerhalb des direkten Webseitenzugriffs und in andere Verzeichnisse zu platzieren. Der Apache-Webbrowser (User www-data) muss Zugriff darauf haben -> Z.B. im Verzeichnis /var/data/.... Das muss über die Konfiguration der jeweilige Webseite definiert werden. Z.B. bei Nextcloud über die ...config/config.php
  
-  sudo mkdir /var/www/data/+  sudo mkdir /var/data/
  
-Auch hier kann man wie bereits im Verzeichniss /var/www/sites/ den Bereich für die Gruppe __www-data__ per Default mit Rechten versehen. +Für dieses Verzeichnis sollten die gleichen Zugriffsrechte konfiguriert sein, wie für das Verzeichnis /var/www/sites 
-  sudo setfacl -dm g:www-data:rwx /var/www/data/ +
-   +
-Alternativ: +
-  sudo chown -R www-data:www-data /var/www/data/ +
-und +
-  sudo chmod -R 775 /var/www/data/+
  
 Apache-Konfiguration virtueller Host der Domain Apache-Konfiguration virtueller Host der Domain
Zeile 89: Zeile 164:
     </Directory>     </Directory>
   </VirtualHost>   </VirtualHost>
- 
-Beim Erstellen der Let's-Encrypt-Zertifikate gab es Probleme mit dem ServerAlias "www....". Daher wurde hier auf die Einstellung des ServerAlias verzichtet. Es ist möglich, die www.<DOMAIN> als eigenständige Subdomain zu verarbeiten (s.u.) und dafür eine eigenes Zertifikat zu erstellen.  Für Documentroot wird das selbe Verzeichnis angegeben. 
  
 Virtuellen Host im Apache-Web-Server registrieren Virtuellen Host im Apache-Web-Server registrieren
   sudo a2ensite BLUEGNU.DE.conf   sudo a2ensite BLUEGNU.DE.conf
 +
 Defaultseite deaktivieren. Dadurch wird erste Domain (nach Alphabet) zur Defaultseite, sollte z.B. nur die Server-IP-Adresse über einen Webbrowser aufgerufen werden, oder die per DNS hierhin umgeleitete Domain nicht zu finden sein. Defaultseite deaktivieren. Dadurch wird erste Domain (nach Alphabet) zur Defaultseite, sollte z.B. nur die Server-IP-Adresse über einen Webbrowser aufgerufen werden, oder die per DNS hierhin umgeleitete Domain nicht zu finden sein.
   sudo a2dissite 000-default.conf   sudo a2dissite 000-default.conf
 +
 Alternativ kann eine permanente Umleitung in diese Datei geschrieben werden, um eine bestimmte Domain aufzurufen.  Alternativ kann eine permanente Umleitung in diese Datei geschrieben werden, um eine bestimmte Domain aufzurufen. 
   <VirtualHost *:80>   <VirtualHost *:80>
Zeile 103: Zeile 178:
 Hostname und Fully-Qualified Host Name (FQHN) festlegen Hostname und Fully-Qualified Host Name (FQHN) festlegen
   sudo hostnamectl set-hostname server.BLUEGNU.DE   sudo hostnamectl set-hostname server.BLUEGNU.DE
 +
 Einstellungen für den Apacheserver testen Einstellungen für den Apacheserver testen
   sudo apache2ctl configtest   sudo apache2ctl configtest
Zeile 197: Zeile 273:
 Zertifikat löschen Zertifikat löschen
   sudo certbot delete   sudo certbot delete
- 
-===== Weitere Domains ===== 
-Hier als Beispiel die Subdomain für das wiki > https://wiki.BLUEGNU.DE \\ 
-Verzeichnis für die Daten anlegen 
-  sudo mkdir /var/www/sites/wiki.BLUEGNU.DE 
- 
-Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden. 
- 
-Apache-Konfiguration virtueller Host der Domain 
-  sudo nano /etc/apache2/sites-available/wiki.BLUEGNU.DE.conf 
- 
-  <VirtualHost *:80> 
-    ServerName wiki.BLUEGNU.DE 
-    ServerAdmin email@BLUEGNU.DE 
-    DocumentRoot /var/www/sites/wiki.BLUEGNU.DE 
-    ErrorLog ${APACHE_LOG_DIR}/error.log 
-    CustomLog ${APACHE_LOG_DIR}/access.log combined 
-    <Directory /var/www/sites/wiki.BLUEGNU.DE> 
-      Options Indexes FollowSymLinks MultiViews 
-      AllowOverride All 
-      Order allow,deny 
-      allow from all 
-    </Directory> 
-  </VirtualHost> 
- 
-Virtuellen Host im Apache-Web-Server registrieren 
-  sudo a2ensite wiki.BLUEGNU.DE.conf 
-Einstellungen für den Apacheserver testen 
-  sudo apache2ctl configtest 
-Wenn Test ok, dann alles aktivieren 
-  sudo systemctl reload apache2 
-SSL-Zertifikat registrieren 
-  sudo certbot --apache 
  
open/it/apache.1777215548.txt.gz · Zuletzt geändert: von k@i