Sicherheit

From Limbas Wiki

Revision as of 15:32, 24 July 2017 by Jonas (talk | contribs) (Diese Seite wurde zum Übersetzen freigegeben)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

<-- zurück zur Hauptseite


Authentifizierung

Limbas benötigt immer eine gültige Authentifizierung. Anonyme oder Gastzugänge ohne Authentifizierung werden nicht unterstützt. Die Authentifizierung erfolgt mittels der BASIC-Auth des Apache-Servers. Um diese zu verschlüsseln ist es immer ratsam, ausschließlich SSL Verbindungen zu nutzen.

LDAP

Alternativ kann auch eine externe LDAP Authentifizierung genutzt werden. User werden dabei automatisch in Limbas angelegt und den entsprechenden Gruppen zugewiesen. Dabei werden nur die Gruppen berücksichtigt, die in Limbas mit gleichem Namen wie in LDAP existieren. Ändert sich die Gruppenzugehörigkeit in LDAP, wird dies bei der nächsten Anmeldung in LIMBAS aktualisiert. Gelöschte LDAP User werden nicht automatisch in LIMBAS gelöscht. Es ist aber auch keine Anmeldung mehr möglich. Eine Ausnahme ist der User 'admin'. Dieser wird immer über das LIMBAS System und nicht über LDAP authentifiziert.

LDAP Parameter können in den umgvars angepasst werden

  • header_auth client browser authentication (basic/digest)
  • server_auth server authentication method (intern/LDAP)
  • LDAP_domain a valid LDAP or domain server
  • LDAP_baseDn the base dn for your domain
  • LDAP_accountSuffix the full account suffix for your domain

anmelden

Nach einer erfolgreichen Authentifizierung wird eine PHP-Session erzeugt, die solange gültig ist, wie der Browser geöffnet ist oder die Servereinstellungen es zulassen. Eine explizite Abmeldung ist nicht notwendig.

.htaccess

Für minimale Sicherheit ist es notwendig, die mitgelieferte ".htaccess.demo" im Verzeichnis ./dependent/ zu aktivieren (umbenennen in ".htaccess") oder den Inhalt in die httpd.conf zu übertragen. Prinzipiell gilt, dass alle Dateien, außer den definierten, nicht ausgeführt werden dürfen.

UPLOAD

Alle Dateien im Verzeichnis ./UPLOAD/ sind mit einem md5 Namen umbenannt.

Das Verzeichnis ist für Lesezugriffe mit einer ".htaccess" Datei geschützt. Für einen Download einer Datei wird ein temporärer Symbolischer Link in das jeweilige Userverzeichnis erstellt.

order deny,allow
deny  from all

USER

Alle User-Verzeichnisse werden bei der Erstellung eines Users mit einer generierten ".htaccess / .htpasswd" Datei geschützt. Diese Datei wird jedes Mal neu generiert wenn das Passwort geändert wird. Die automatische Neugenerierung der ".htaccess" Dateien aller User-Verzeichnisse über das Limbas admin-Tool (tools->system) kann nur geschehen, wenn die Option "clear_pass" in den Umgebungsvariablen eingestellt ist. Diese Option ist allerdings nur für fortgeschrittene Administratoren zu empfehlen.

Verzeichnis-Rechte

Der gesamte Sourcecode sollte nur lese-berechtigt werden. Schreibrechte für den Apache-User müssen folgende Verzeichnisse rekursiv besitzen:

  • BACKUP
  • TEMP
  • UPLOAD
  • USER

admin

Zusätzlich kann das Verzeichnis ./admin/ nur für lokale Benutzer aktiviert werden. Dazu kann eine ".htaccess" Datei im admin Verzeichnis angelegt werden, die nur bestimmten IP Adressen den Zugriff erlaubt.

order deny,allow
deny  from all
allow from 192.168

php.ini

PHP sollte generell folgende Konfiguration besitzen:

  • register_globals = off
  • magic_quotes_gpc = off

uploadgröße

Die maximal erlaubte Uploadgröße kann über folgende Parameter angepasst werden

  • file_uploads = On
  • upload_max_filesize = 10M
  • post_max_size = 16M

Memory

Der maximal benötigte Speicher von PHP sollte für Limbas nicht zu klein gewählt werden. Der PDF Generator und größere Tabellenausgaben benötigen ausreichend Speicher.

  • memory_limit = 128M

Postlimit

Eine neue PHP-Errungenschaft ist die notwendige Angabe von maximal post-baren Formularelementen, welche in Limbas bei vielen Tabellen mit vielen Feldern ebenfalls schnell die Defaultgröße überschreiten kann.

  • max_input_vars = 10000

ODBC

Lange Texte werden in odbc mit einer vorgegeben Größe gelesen. Ist diese Größe zu klein werden Textblöcke möglicherweise abgeschnitten. Ist sie zu groß leidet die Performance. Man sollte je nach Nutzung den Wert auf seine eigenen Bedürfnisse anpassen und sich langsam an den benötigten Wert herantasten.

  • odbc.defaultlrl = 104857