LAB Linux in heterogenen Netzen Apache2 Ldap: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 155: | Zeile 155: | ||
; Zertifikat einbauen unter Linux | ; Zertifikat einbauen unter Linux | ||
| − | * cp lab34-ca.cer /usr/local/share/ca-certificates/lab34-ca.crt | + | * sudo cp lab34-ca.cer /usr/local/share/ca-certificates/lab34-ca.crt |
* sudo update-ca-certificates | * sudo update-ca-certificates | ||
| Zeile 205: | Zeile 205: | ||
; Under Construction | ; Under Construction | ||
* [[Apache2 mit AppArmor from the Scratch]] | * [[Apache2 mit AppArmor from the Scratch]] | ||
| − | + | [[Kategorie:LDAP]] | |
Aktuelle Version vom 11. Oktober 2024, 07:18 Uhr
Ziel
- Wir wollen einen Apache2 Webserver aufsetzen
- Diesen wollen wir mit LDAP gegen die Domain authentifizieren
Aus dem Debian Template einen Klon erstellen
- Name: webserver
- Netz: dmz
- HOSTS: webserver.lab34.linuggs.de
- IPv4: 172.26.55.2/24
- GWv4: 172.26.55.1
- NSv4: 172.26.54.2
- DOM: lab34.linuggs.de
- HOSTS: webserver.lab34.linuggs.de
- IPv6: 2a02:24d8:71:3037::2/64
- GWv6: 2a02:24d8:71:3037::1
- NSv6: 2a02:24d8:71:3036::2
- DOM: lab34.linuggs.de
Auf dem Domaincontroller
- A-Record eintragen
- AAAA-Record eintragen
- PTR-Record automatisch erstellen lassen
Installation verschiedener Pakete
- sudo apt-get install apache2 mariadb-server php php-intl php-mbstring php-xml php-apcu php-curl php-mysql unzip php-ldap
Zum Testen
- Install Test
apt install ldap-utils
- Connection Test
- ldapsearch -x -H ldap://172.26.54.2 -D "cn=administrator,cn=users,dc=lab34,dc=linuggs,dc=de" -b "dc=lab34,dc=linuggs,dc=de" -w 123Start$
Auf dem DC
- Gruppe nuxtuxer anlegen
- User kit anlegen und in die Gruppe hinzufügen
- User webservice anlegen
- Diesen nutzen wir zum LDAP binden
Wieder zurück
- ldapsearch -x -H ldap://172.26.54.2 -D "cn=webservice,cn=users,dc=lab34,dc=linuggs,dc=de" -b "dc=lab34,dc=linuggs,dc=de" -w 12345-Xinux
Verlinken der Module
- a2enmod authnz_ldap
Test Web Seite
LDAP anbinden
Verlinken der Module
- a2enmod authnz_ldap
Wir bearbeiten die Datei
/etc/apache2/sites-enabled/000-default.conf
Alle dürfen
<VirtualHost *:80>
ServerAdmin technik@lab34.linuggs.de
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# LDAP anbinden
<Directory /var/www/html>
AuthType Basic
AuthBasicProvider ldap
AuthName "LDAP-AUTHENTIFIKATION"
AuthLDAPURL ldap://win2022.lab34.linuggs.de/dc=lab34,dc=linuggs,dc=de?sAMAccountName?sub
AuthLDAPBindDN "cn=webservice,cn=users,dc=lab34,dc=linuggs,dc=de"
AuthLDAPBindPassword "12345-Xinux"
Require valid-user
</Directory>
</VirtualHost>
Nur gewisse Gruppen dürfen
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# LDAP anbinden
<Directory /var/www/html>
AuthType Basic
AuthBasicProvider ldap
AuthName "LDAP-AUTHENTIFIKATION"
AuthLDAPURL ldap://win2022.lab34.linuggs.de/dc=lab34,dc=linuggs,dc=de?sAMAccountName?sub
AuthLDAPBindDN "cn=webservice,cn=users,dc=lab34,dc=linuggs,dc=de"
AuthLDAPBindPassword "12345-Xinux"
Require ldap-group cn=nuxtuxer,cn=users,dc=lab34,dc=linuggs,dc=de
</Directory>
</VirtualHost>
Auf HTTPS umstellen
- sudo cp fullchain.pem privkey.pem /etc/apache2/
- sudo a2enmod ssl
Wir bearbeiten die Datei
- sudo vi /etc/apache2/sites-enabled/000-default.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerName webserver.lab34.linuggs.de
ServerAdmin technik@lab34.linuggs.de
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/fullchain.pem
SSLCertificateKeyFile /etc/apache2/privkey.pem
# LDAP anbinden
<Directory /var/www/html>
AuthType Basic
AuthBasicProvider ldap
AuthName "LDAP-AUTHENTIFIKATION"
AuthLDAPURL ldap://win2022.lab34.linuggs.de/dc=lab34,dc=linuggs,dc=de?sAMAccountName?sub
AuthLDAPBindDN "cn=webservice,cn=users,dc=lab34,dc=linuggs,dc=de"
AuthLDAPBindPassword "12345-Xinux"
Require valid-user
</Directory>
</VirtualHost>
</IfModule>
Reload
- sudo systemctl restart apache2
Checks
- Status?
- sudo systemctl status apache2
- Port?
- sudo ss -lntp | grep apache2
- Cipher and Protocol
- nmap -sV --script ssl-enum-ciphers -p 443 webserver.lab34.linuggs.de
- Zertifikat
- nmap -sV --script ssl-enum-ciphers -p 443 webserver.lab34.linuggs.de
LDAP absichern
- Zertifizierungsstelle auf dem DC installieren
- Zertifikat wird selbst erstellt
- Binden an den LDAPS-Dienst
- Stammzertifikat zum Linux-Webserver hinzufügen
- Änderungen an der Apache-Konfiguration vornehmen
- Testen
Zertifizierungsstelle
Stammzertifikat einbauen
LDAP-Verbindung nicht verschlüsselt
- Zertifikat einbauen unter Linux
- sudo cp lab34-ca.cer /usr/local/share/ca-certificates/lab34-ca.crt
- sudo update-ca-certificates
- Test, ob das Zertifikat zieht
- openssl s_client -port 636 -CAfile lab34-ca.cer -host win2022.lab34.linuggs.de
- Test, ob das Zertifikat mit eingebautem Root-CA zieht
- openssl s_client -port 636 -host win2022.lab34.linuggs.de
- Ändern der Konfiguration
ldap://win2022.lab34.linuggs.de/dc=lab34,dc=linuggs,dc=de?sAMAccountName?sub
zu
ldaps://win2022.lab34.linuggs.de/dc=lab34,dc=linuggs,dc=de?sAMAccountName?sub
ändern
- Neustarten
- systemctl restart apache2
Weitere Sicherheit
HTTP abschalten
In der Datei /etc/apache2/ports.conf
#Listen 80
auskommentieren
- Neustarten
- systemctl restart apache2
Header-Optionen
- Modul headers laden
- sudo a2enmod headers
- Sicherheitsoptionen zusätzlich zu TLS
# HSTS aktivieren (1 Jahr) - Erzwingt die Nutzung von HTTPS für 1 Jahr Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# Schutz vor Clickjacking - Verhindert, dass die Webseite in einem iFrame eingebettet wird Header always set X-Frame-Options DENY
# Schutz vor MIME-Sniffing - Erzwingt, dass der Browser den Content-Type strikt beachtet Header always set X-Content-Type-Options nosniff
Restart
- systemctl restart apache2
Tests
- curl -sI https://webserver.lab34.linuggs.de | egrep "Strict|X-Frame|X-Content"
AppArmor
- Under Construction