LAB Linux in heterogenen Netzen Apache2 Ldap: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 138: | Zeile 138: | ||
*[[Microsoft Zertifizierungstelle]] | *[[Microsoft Zertifizierungstelle]] | ||
=Weitere Sicherheit= | =Weitere Sicherheit= | ||
| + | ==HTTP abschalten== | ||
| + | '''Inter der Datei /etc/apache2/ports.conf''' | ||
| + | #Listen 80 | ||
| + | '''auskommentieren''' | ||
| + | ;Neustarten | ||
| + | *systemctl restart apache2 | ||
| + | |||
| + | ==Header Optionen== | ||
;Modul headers laden | ;Modul headers laden | ||
*sudo a2enmod headers | *sudo a2enmod headers | ||
| Zeile 149: | Zeile 157: | ||
# Schutz vor MIME-Sniffing - Erzwingt, dass der Browser den Content-Type strikt beachtet | # Schutz vor MIME-Sniffing - Erzwingt, dass der Browser den Content-Type strikt beachtet | ||
Header always set X-Content-Type-Options nosniff | Header always set X-Content-Type-Options nosniff | ||
| + | |||
=Restart= | =Restart= | ||
*systemctl restart apache2 | *systemctl restart apache2 | ||
Version vom 10. Oktober 2024, 18:30 Uhr
Ziel
- Wir wollen einen Apache2 Webserver aufsetzen
- Diesen wollen wir mit Ldap gegen die Domain authentfizieren
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 Gruppe 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>
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
Weitere Sicherheit
HTTP abschalten
Inter 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