LAB Linux in heterogenen Netzen Apache2 Ldap: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | =Ziel= | + | = Ziel = |
| − | *Wir wollen einen Apache2 Webserver aufsetzen | + | * Wir wollen einen Apache2 Webserver aufsetzen |
| − | *Diesen wollen wir mit | + | * Diesen wollen wir mit LDAP gegen die Domain authentifizieren |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | =Installation verschiedener Pakete= | + | = Aus dem Debian Template einen Klon erstellen = |
| − | *sudo apt-get install apache2 mariadb-server php php-intl php-mbstring php-xml php-apcu php-curl php-mysql unzip php-ldap | + | * Name: webserver |
| − | =Zum Testen= | + | * Netz: dmz |
| − | ;Install Test | + | * 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 | apt install ldap-utils | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | ==Verlinken der Module | + | ; 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$ | |
| − | + | ||
| − | *[[Test Web Seite]] | + | == 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 = | ||
| + | * [[Test Web Seite]] | ||
| − | = | + | = LDAP anbinden = |
| − | + | == Verlinken der Module == | |
| − | *a2enmod authnz_ldap | + | * a2enmod authnz_ldap |
| − | + | == Wir bearbeiten die Datei == | |
/etc/apache2/sites-enabled/000-default.conf | /etc/apache2/sites-enabled/000-default.conf | ||
| − | + | ||
| + | === Alle dürfen === | ||
<pre> | <pre> | ||
<VirtualHost *:80> | <VirtualHost *:80> | ||
| Zeile 64: | Zeile 72: | ||
</Directory> | </Directory> | ||
</VirtualHost> | </VirtualHost> | ||
| − | |||
</pre> | </pre> | ||
| − | + | === Nur gewisse Gruppen dürfen === | |
<pre> | <pre> | ||
| − | |||
<VirtualHost *:80> | <VirtualHost *:80> | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
| Zeile 84: | Zeile 90: | ||
AuthLDAPBindPassword "12345-Xinux" | AuthLDAPBindPassword "12345-Xinux" | ||
Require ldap-group cn=nuxtuxer,cn=users,dc=lab34,dc=linuggs,dc=de | Require ldap-group cn=nuxtuxer,cn=users,dc=lab34,dc=linuggs,dc=de | ||
| − | |||
</Directory> | </Directory> | ||
| + | </VirtualHost> | ||
</pre> | </pre> | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | = 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>''' | '''<VirtualHost _default_:443>''' | ||
'''ServerName webserver.lab34.linuggs.de''' | '''ServerName webserver.lab34.linuggs.de''' | ||
| Zeile 112: | Zeile 120: | ||
AuthLDAPBindPassword "12345-Xinux" | AuthLDAPBindPassword "12345-Xinux" | ||
Require valid-user | Require valid-user | ||
| − | + | </Directory> | |
| − | |||
</VirtualHost> | </VirtualHost> | ||
'''</IfModule>''' | '''</IfModule>''' | ||
| − | =Reload= | + | = Reload = |
| − | *sudo systemctl restart apache2 | + | * sudo systemctl restart apache2 |
| − | =Checks= | + | |
| − | ;Status? | + | = Checks = |
| − | *sudo systemctl status | + | ; Status? |
| − | ;Port? | + | * sudo systemctl status apache2 |
| − | *sudo ss -lntp | grep apache2 | + | |
| − | ;Cipher and Protocol | + | ; Port? |
| − | *nmap -sV --script ssl-enum-ciphers -p 443 webserver.lab34.linuggs.de | + | * sudo ss -lntp | grep apache2 |
| − | ;Zertifikat | + | |
| − | *nmap -sV --script ssl-enum-ciphers -p 443 webserver.lab34.linuggs.de | + | ; Cipher and Protocol |
| − | = | + | * nmap -sV --script ssl-enum-ciphers -p 443 webserver.lab34.linuggs.de |
| − | *Zertifizierungsstelle auf dem DC installieren | + | |
| − | *Zertifikat wird selbst erstellt | + | ; Zertifikat |
| − | *Binden an den | + | * nmap -sV --script ssl-enum-ciphers -p 443 webserver.lab34.linuggs.de |
| − | *Stammzertifikat zum Linux Webserver hinzufügen | + | |
| − | *Änderungen an der Apache Konfiguration vornehmen | + | = LDAP absichern = |
| − | *Testen | + | * Zertifizierungsstelle auf dem DC installieren |
| − | =Zertifizierungsstelle= | + | * Zertifikat wird selbst erstellt |
| − | *[[Microsoft | + | * Binden an den LDAPS-Dienst |
| − | = | + | * Stammzertifikat zum Linux-Webserver hinzufügen |
| + | * Änderungen an der Apache-Konfiguration vornehmen | ||
| + | * Testen | ||
| + | |||
| + | = Zertifizierungsstelle = | ||
| + | * [[Microsoft 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 | ||
| − | =Weitere Sicherheit= | + | ; Neustarten |
| − | ==HTTP abschalten== | + | * systemctl restart apache2 |
| − | ''' | + | |
| + | = Weitere Sicherheit = | ||
| + | == HTTP abschalten == | ||
| + | '''In der Datei /etc/apache2/ports.conf''' | ||
#Listen 80 | #Listen 80 | ||
'''auskommentieren''' | '''auskommentieren''' | ||
| − | |||
| − | |||
| − | ==Header Optionen== | + | ; Neustarten |
| − | ;Modul headers laden | + | * systemctl restart apache2 |
| − | *sudo a2enmod headers | + | |
| − | ;Sicherheitsoptionen zusätzlich zu TLS | + | == 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 | # HSTS aktivieren (1 Jahr) - Erzwingt die Nutzung von HTTPS für 1 Jahr | ||
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" | Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" | ||
| Zeile 160: | Zeile 196: | ||
Header always set X-Content-Type-Options nosniff | Header always set X-Content-Type-Options nosniff | ||
| − | =Restart= | + | = Restart = |
| − | *systemctl restart apache2 | + | * systemctl restart apache2 |
| + | |||
| + | = Tests = | ||
| + | * curl -sI https://webserver.lab34.linuggs.de | egrep "Strict|X-Frame|X-Content" | ||
| − | = | + | = AppArmor = |
| − | + | ; Under Construction | |
| − | + | * [[Apache2 mit AppArmor from the Scratch]] | |
| − | ;Under Construction | + | [[Kategorie:LDAP]] |
| − | *[[Apache2 mit | ||
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