open:it:apache
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| open:it:apache [2026/04/26 16:10] – [Installation] k@i | open: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 < | sudo usermod -aG web < | ||
| + | |||
| Rechte vergeben | Rechte vergeben | ||
| Zeile 39: | Zeile 40: | ||
| sudo find / | sudo find / | ||
| - | Testen, ob nur root Rechte auf alle Ebenen hat (Muss sein) | + | Testen, ob nur root Rechte auf alle Ebenen hat (sollte |
| namei -l / | namei -l / | ||
| Zeile 51: | Zeile 52: | ||
| ===== FTP-Zugang ===== | ===== FTP-Zugang ===== | ||
| - | sudo apt install vsftpd | ||
| - | sudo nano /etc/vsftpd.conf | + | Der FTP-Zugang sollte nur als SFTP zugelassen werden und wird konfiguriert über [[ssh|SSH-Verbindungen]]. |
| - | local_enable=YES | + | ==== Eingeschränkter Zugang ==== |
| - | anonymus_enable=NO | + | Soll ein Kunde/ |
| - | write_enable=YES | + | |
| - | sudo systemctl reload vsftpd | + | Anwender Y => <ANY> |
| - | FTP-User anlegen - Namen festlegen. Der Zugriff für den <FTPUSER> wird auf den u.a. Bereich eingeschränkt, das gilt auch für den SSH-Zugriff über die Shell. Der o.a. < | + | User anlegen, siehe auch [[user|Linux-Benutzerverwaltung]] |
| + | sudo useradd -M -s / | ||
| + | -s = Shell entfernen, kein Zugriff über SSH. | ||
| - | sudo adduser < | + | Passwort vergeben |
| - | FTP-User in die Apache-Gruppe aufnehmen | + | sudo passwd |
| - | sudo usermod -aG www-data | + | |
| - | Zugang für FTP-User einschränken auf den Bereich | + | Web-Gruppe zuordnen |
| - | sudo nano /etc/ssh/sshd_config | + | sudo usermod -aG web < |
| + | |||
| + | Anstelle des Passwort-Zugriffs kann dies auch mit einem [[ssh# | ||
| + | Wird der User wie hier beschrieben angelegt, wird sein Home-Verzeichnis nicht automatisch mit angelegt. Das muss dann manuell erfolgen. Erforderlich, | ||
| + | Rechte für das Verzeichnis setzen: | ||
| + | sudo chown -R < | ||
| - | | + | |
| - | X11Forwarding no | + | |
| - | AllowTcpForwarding no | + | |
| - | PermitTTY no | + | |
| - | ForceCommand internal-sftp | + | |
| - | ChrootDirectory | + | |
| - | PasswordAuthentication yes | + | |
| - | sudo systemctl reload | + | sudo chmod 600 / |
| - | Für den FTP-Zugriff von < | + | Hier wird der User eingesperrt: |
| - | Der Owner vom Verzeichnis /var/www, bzw. Pfad aus Parameter **ChrootDirectory**, | + | Chroot-Verzeichnis |
| - | Diese Vorgaben gelten nur für das Hauptverzeichnis, | + | sudo mkdir -p /sftp-chroot/< |
| - | Ggf. Einstellungen anpassen:: | + | |
| - | Setze Besitzer. | + | |
| - | | + | |
| - | Entferne Schreibrechte (w) für Gruppe (g) | + | |
| - | | + | |
| - | Entferne Schreibrechte für Sonstige (o) | + | |
| - | | + | |
| - | Anschließend hat der FTP-User Lese-Zugriff auf das Verzeichnis | + | sudo chmod 755 /sftp-chroot/< |
| - | Schreibrechte müssen dann in weiteren Unterverzeichnissen (var/www/html, / | + | |
| + | Einbinden | ||
| + | sudo mount --bind /var/www/ | ||
| + | |||
| + | Dauerhaft machen | ||
| + | sudo nano /etc/fstab | ||
| + | |||
| + | | ||
| + | |||
| + | |||
| + | SSH für jeden User mit eingeschränkten Rechten extra konfigurieren | ||
| + | sudo nano /etc/ | ||
| + | |||
| + | <WRAP important> | ||
| + | ACHTUNG: | ||
| + | Niemals folgendes | ||
| + | Das Ziel wäre: Einen Landungspunkt definieren, was klappt, aber | ||
| + | das sperrt | ||
| + | Und damit keine sudo-Aktivitäten mehr. | ||
| + | Match User < | ||
| + | ForceCommand internal-sftp -d / | ||
| + | </ | ||
| + | |||
| + | Einrichtung mit Password | ||
| + | Match User < | ||
| + | PasswordAuthentication yes | ||
| + | PubkeyAuthentication no | ||
| + | ChrootDirectory / | ||
| + | ForceCommand internal-sftp -d /web | ||
| + | AllowTcpForwarding no | ||
| + | X11Forwarding no | ||
| + | |||
| + | Einrichtung mit Key-Zugriff | ||
| + | Match User < | ||
| + | PasswordAuthentication no | ||
| + | PubkeyAuthentication yes | ||
| + | ChrootDirectory / | ||
| + | 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 | + | Verzeichnis für die HTML-Daten anlegen |
| sudo mkdir / | sudo mkdir / | ||
| - | sudo chmod -R 775 / | ||
| - | |||
| 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/ | + | 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 / |
| - | sudo mkdir /var/www/data/ | + | sudo mkdir /var/data/ |
| - | Auch hier kann man wie bereits im Verzeichniss | + | Für dieses Verzeichnis sollten die gleichen Zugriffsrechte konfiguriert sein, wie für das Verzeichnis |
| - | sudo setfacl -dm g: | + | |
| - | + | ||
| - | Alternativ: | + | |
| - | sudo chown -R www-data: | + | |
| - | und | + | |
| - | sudo chmod -R 775 / | + | |
| Apache-Konfiguration virtueller Host der Domain | Apache-Konfiguration virtueller Host der Domain | ||
| Zeile 132: | Zeile 164: | ||
| </ | </ | ||
| </ | </ | ||
| - | |||
| - | Beim Erstellen der Let' | ||
| 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, | Defaultseite deaktivieren. Dadurch wird erste Domain (nach Alphabet) zur Defaultseite, | ||
| 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. | ||
| < | < | ||
| Zeile 146: | 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 240: | 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:// | ||
| - | Verzeichnis für die Daten anlegen | ||
| - | sudo mkdir / | ||
| - | |||
| - | Die Programm-Dateien können dann mit einem FTP-Programm übertragen werden. | ||
| - | |||
| - | Apache-Konfiguration virtueller Host der Domain | ||
| - | sudo nano / | ||
| - | |||
| - | < | ||
| - | ServerName wiki.BLUEGNU.DE | ||
| - | ServerAdmin email@BLUEGNU.DE | ||
| - | DocumentRoot / | ||
| - | ErrorLog ${APACHE_LOG_DIR}/ | ||
| - | CustomLog ${APACHE_LOG_DIR}/ | ||
| - | < | ||
| - | Options Indexes FollowSymLinks MultiViews | ||
| - | AllowOverride All | ||
| - | Order allow,deny | ||
| - | allow from all | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | 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.1777212643.txt.gz · Zuletzt geändert: von k@i
