Phpldapadmin nginx

Aus Xinux Wiki
Version vom 26. August 2025, 05:42 Uhr von Maximilian.pottgiesser (Diskussion | Beiträge) (→‎PHP-FPM konfigurieren)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

phpLDAPadmin mit nginx unter Debian 13

Voraussetzungen installieren

Zuerst müssen alle notwendigen Pakete installiert werden:

# Nginx, PHP und notwendige Pakete installieren
sudo apt install nginx php-fpm php-ldap php-xml php-mbstring phpldapadmin -y

PHP-FPM konfigurieren

PHP-FPM muss gestartet und aktiviert werden:

# PHP-FPM Status prüfen
sudo systemctl status php8.4-fpm

# Bei Bedarf starten und aktivieren
sudo systemctl enable php8.4-fpm
sudo systemctl start php8.4-fpm

Nginx Virtual Host konfigurieren

Konfigurationsdatei erstellen

Erstellen Sie eine neue Nginx-Konfigurationsdatei:

sudo nano /etc/nginx/sites-available/phpldapadmin

Virtual Host Konfiguration

Fügen Sie folgende Konfiguration in die Datei ein:

server {
    listen 80;
    server_name your-domain.com;  # Ersetzen Sie durch Ihre Domain
    root /usr/share/phpldapadmin/htdocs;
    index index.php index.html index.htm;

    # Sicherheitsheader
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # Verhindern des Zugriffs auf sensible Dateien
    location ~ /\. {
        deny all;
    }

    location ~* \.(htaccess|htpasswd|ini|log|sh|sql|conf)$ {
        deny all;
    }
}

Site aktivieren und nginx konfigurieren

# Site aktivieren
sudo ln -s /etc/nginx/sites-available/phpldapadmin /etc/nginx/sites-enabled/

# Standard-Site deaktivieren (optional)
sudo rm /etc/nginx/sites-enabled/default

# Nginx-Konfiguration testen
sudo nginx -t

# Nginx neu laden
sudo systemctl reload nginx

phpLDAPadmin konfigurieren

Konfigurationsdatei bearbeiten

# Konfigurationsdatei bearbeiten
sudo nano /etc/phpldapadmin/config.php

Wichtige Konfigurationseinstellungen

<?php
// LDAP-Server konfigurieren
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','Mein LDAP Server');
$servers->setValue('server','host','127.0.0.1');  // LDAP-Server IP
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=example,dc=com')); // Basis-DN anpassen

// Authentifizierung
$servers->setValue('login','auth_type','cookie');
$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com'); // Admin-DN

// Sicherheitseinstellungen
$config->custom->appearance['hide_template_warning'] = true;
?>

Berechtigungen setzen

# Verzeichnisberechtigungen anpassen
sudo chown -R www-data:www-data /usr/share/phpldapadmin/
sudo chmod -R 755 /usr/share/phpldapadmin/

Services starten und testen

# Alle Services neu starten
sudo systemctl restart nginx php8.4-fpm

# Status überprüfen
sudo systemctl status nginx php8.4-fpm

Zugriff testen

Öffnen Sie Ihren Browser und navigieren Sie zu:

Zusätzliche Sicherheitsmaßnahmen

auf bestimmte Netzwerke beschränken

server {
    listen 80;
    server_name your-domain.com;
    
    # Nur diese IPs/Netzwerke erlauben
    allow 192.168.1.0/24;     # Lokales Netzwerk
    allow 10.0.0.0/8;         # Privates Netzwerk
    allow 172.16.0.0/12;      # Privates Netzwerk
    allow 203.0.113.5;        # Spezifische IP
    deny all;                 # Alle anderen blockieren
    
    # Rest der Konfiguration...
}

Log-Dateien überprüfen

sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/php8.4-fpm.log