# Konfigurationsdatei fuer exchange # Perlsyntax! ########################---Konfiguration-Anfang---############################### # Defaultsprache. Entspricht dem Verzeichnis unter $languagefiles, in dem nach den Sprachdateien # gesucht wird. Siehe naechste Variable $languagefiles $languagedefault= "de"; # Verzeichnis, in dem die html-Texte liegen. Diese muessen der Syntax von HTML::Template genuegen. # Am besten nimmt man die hier mitgelieferten Texte und veraendert sie. # Dem Programm kann eine Variable language mitgeliefert werden, die anstelle von $languagedefault # als Unterverzeichnis unter $languagefiles verwendet wird. # Beispiel: http://meine.domain.tld/cgi-bin/exchange.pl?language=en # -> Dateien im Verzeichnis /srv/www/dateitransfer/lang/en # Kein Parameter -> Dateien im Verzeichnis /srv/www/dateitransfer/lang/de # Achtung: Kein abschliessender / erlaubt! $languagefiles = '/srv/www/dateitransfer/lang'; # Anzahl der max. erlaubten Connections pro Zeiteinheit (siehe $bruteforcetime) # 0, wenn keine Beschränkung # Treten mehr als hier angegebene Verbindungen pro Adresse pro Zeiteinheit (siehe $bruteforcetime) auf, # so wird diese Adresse für $bruteforcetime behindert: Das Programm verzoegert die Antwortzeiten massgeblich. # Achtung: Gilt auch für den Admin! # Sperrung loeschen: Datei $bruteforcelocation aus $filelocation entfernen. $bruteforceconnects = "50"; # Zeit in Minuten, in der nicht mehr als ($bruteforceconnects) Verbindungen von einer Adresse aus erfolgen duerfen # Deaktiviert, wenn $bruteforceconnects=0 # Bei jeder neuen Verbindung von einer Adresse wird der Zeitstempel auf die aktuelle Zeit gesetzt. Steht # also diese Zeit auf 1 Minute, so genuegt es alls 59 Sekunden einen Connect zu taetigen. Tritt dieses # dann $bruteforceconnects mal auf, tritt die Verzögerung (nur!) fuer diesen Client auf. $bruteforcetime = "1"; # Zeit in Sekunden, die das Script die Ausgabe bei erkanntem Brute-Force-Versuch verzoegert $bruteforcetime2wait=15; # Virenscannerkommando: Pfad und Name des Programmes, welches nach Upload auf die hochgeladene Datei losgelassen # werden soll. Das Programm muss selbst dafuer sorgen, dass infizierte Dateien in Quarantaene gestellt werden. # Der Dateiname mit Pfad der zu pruefenden Datei wird an der Stelle eingesetzt, an der {} steht. # Dies geschieht am besten ueber ein Shellscript, welches je nach Errorcode des Virenscanners # die Datei loescht. Dieses Programm zeigt eine Virenscan-Fehlermeldung an, sofern die Datei nach dem Scan nicht mehr da ist. # Deaktiveren: Leere Zeichenkette $vscan = ""; # $vscan = "/usr/bin/virusscan {}"; # URL fuer das Favicon $faviconurl = "http://meine.domain.tld/favicon.ico"; # URL fuer das Basis-Stylesheet. Leerlassen= Default aus Programm benutzen. # In der Proz. Starthtml werden allerdings noch ein paar weitere CSS definiert. $cssurl = ""; # Pfad zu Verzeichnis, in das Uploads geschrieben werden. Absolut! Ohne abschliessenden Slash!! # Aus Sicherheitsgruenden darf dieses Verzeichnis nicht unter DocumentRoot des Webservers liegen!!! $filelocation = '/export/exchange'; # Dateiname fuer Hashdatei mit Zuordnung Dateiname uebertragen/Dateiname Platte $hashlocation = "$filelocation/files.hash"; # Dateiname fuer Statistikdatei. $statistlocation = "$filelocation/statist.hash"; # Statistiken zu jeder (!) Datei $filestatlocation = "$filelocation/filestat.hash"; # Falls Bruteforce-Erkennung eingeschaltet ist, liegen hier die Infos dazu # Diese Dateien koennen zur Umgehung der Sperre jederzeit geloescht werden. $bruteforcelocation ="$filelocation/bruteforce.hash"; # Sollen Tans verwendet werden? D.h. duerfen Tans erzeugt und fuer Upload verwendet werden? # Keine Tans: Hier 0 eintragen. # Wenn TANs aktiviert sind, muss $uploadwithpassword = 1 sein! $tanenable = 1; # Absender der Mails, die den Erzeuger einer TAN ueber ihre Verwendung berichten $mailfrom = 'noreply@meine.domain.tld'; # Mailadresse fuer Nachfragen und Info, die in der Mail erwaehnt wird: $mailquestions = 'ich@meine.domain.tld'; # Dem hochladenden Benutzer die Moeglichkeit geben, die URL der hochgeladenen # Datei per E-Mail an eine beliebige Adresse zu melden. # Achtung: Hier u.U. Spamgefahr, die könnte für Massenemails genutzt werden, # wenn jeder Hochladezugriff hat. # Auf 0 setzen, wenn unerwuenscht. $allownotifyemail = 1; # Laenge der erzeugten TANs. Sollte so kurz sein, dass man sich so ein Ding noch merken kann. $tanlength = 5; # Tans und Informationen zu Tans $tanlocation = "$filelocation/tans.hash"; # Datei mit einer einzigen Zeile, die das Passwort zur Tanerzeugung enthaelt # Achtung: Link nicht erlaubt! $tancreatepasswordfile = "$filelocation/tanpassword.txt"; # Maximale Anzahl von TANs, die gleichzeitig erzeugt werden kann $maxtanstocreate = 5; # Lebenszeit von TANs in Tagen $tanlivetime = 60; # Lebenszeit von gebrauchten TANs fuer statistische Zwecke $usedtanlivetime = 100; # Upload kann Passwordgeschuetzt sein. Dann folgende Variable auf 1 setzen, sonst auf 0 $uploadwithpassword = 1; # Soll Radiusauthentifizierung angeboten und verwendet werden? $useradius = 1; # Welchen Namen traegt die Radiusauthentifizierung. Ein Name eines Dienstes, den der Benutzer kennt, # und der mit diesem Radiusserver arbeitet. Dieser Text wird in den Masken angezeigt. $radiusname2show = "Radius Name"; # Radius-Benutzername und _welche_ Domain ergeben gueltige Emailadressen? # Dieser String wird bei der TAN-Erzeugung verwendet, wenn der Benutzer sich # ueber Radius authentifiziert und keine Emailadresse eintippt. Die # erzeugte EMailadresse ist dann radiusbenutzername@$radiusdomain # Bitte kein @ eingeben! $radiusdomain="meine.domain.tld"; # Falls ja: Radiusserver $radiusserver="radius.server:port"; # Falls ja: secret zur Radiusabfrage $radiussecret="radiussecret"; # In diesem Array stehen die IP-Adressen, die fuer den Upload kein Passwort benoetigen sollen. # Wildcards sind nicht erlaubt, stattdessen einfach unvollstaendige Adresse angeben # Achtung: Nur IP-Adressen, keine FQDN (full qualified domain names). # Beliebig viele eintragbar. @iprange = ( "192.168.1.", "192.168.2." ); # Datei mit einer einzigen Zeile, in der das Passwort steht. # Achtung: Link als $passwordfile nicht erlaubt! # Das Passwort steht in der Datei im Klartext, damit es z.B. per cron einmal monatlch erzeugt werden kann. # Das neue Passwort kann dann den Mitarbeitern z.B. per Webseite bekannt gemacht werden, die ausserhaeusigen, die das alte # Passwort kennen, koennen dann aber nicht mehr hochladen. # Besser als die Weitergabe dieses Passwortes ist aber Verwendung von TANs. $passwordfile = "$filelocation/password.txt"; # Name der Passwordvariablen im Formular $passwordinform = "password"; # Name der Datei-Variablen im Formular $nameinform = "putfile"; # URL dieses Scriptes. Bitte vollstaendig angeben. # Diese URL kann auch eine einfach sein (z.B. http://www.xyz.de/exchange), die dann im # Apache-Configfile umgeleitet wird auf das richtige Script. Bsp: # redirect http://www.xyz.de/exchange http://www.xyz.de/cgi-bin/exchange.pl # $uploadurl (s.u.) muss die echte URL des Scriptes enthalten. $ownurl = "http://meine.domain.tld/exchange"; # Echte URL des Scriptes, vollstaendig angeben. $uploadurl = "http://meine.domain.tld/cgi-bin/exchange.pl"; # Defaultlebenszeit von Dateien auf dem Server $lifetime = 3; # Alternativ angebotene Lebenszeiten. $lifetime muss enthalten sein! @lifetimes = (1,2,3,4,5,6,7,$lifetime,28); # Alternativ kann eine Datei nach soviel Zugriffen geloescht werden. Leeres Array hier moeglich. @dieafteraccesses = (1,2,3,4,5,6,7,8,9); # Lebenszeit von Downloads mit begrenzter Zugriffszahl _nach_ dem letzten Zugriff in Minuten (weiterer Download dabei moeglich) $gracetime = 0; # Lebenszeit der Downloaddateien, die noch Rest-Downloads haben. Dies sollte recht lange sein, aber nicht # _sehr_ lange, da die Dateien vielleicht auch irgendwann vergessen sind. $lifetimeforgottendownloads=200; # Lebenszeit der Statistikdaten pro Datei $statlifetime = 100; # Maximale Groesse einer Datei zum Upload in Bytes $maxsize = 830000000; # Maximale Gesamtgroesse des Stores in Bytes. Wenn erreicht, geht kein Upload mehr. $maxstoresize = 8000000000; # Passwort der Adminschnittstelle $adminpassword = "admin_passwort_unbedingt_aendern"; # Sollen Aktivitaeten im Syslog mitgeloggt werden? # Nein: Auf 0 setzen. Ja: Auf 1. Jeden Aufruf loggen: Auf 2. $syslog = 2; # URL zum Download $downloadurl = $ownurl."?g="; ########################---Konfiguration-Ende---###############################