# 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---###############################

