#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
# 

#-----------------------------------------------------------------------#
# Moduleinstellungen							#
#-----------------------------------------------------------------------#
	# Includes DSO modules
	Include /etc/proftpd/modules.conf

#-----------------------------------------------------------------------#
# Servername und -identifikation                                        #
#-----------------------------------------------------------------------#
	ServerName			"BabyDebi"
	# Name des Servers welcher beim Login angezeigt wird
	
	ServerType standalone
	# gibt an ob es eine eigenstaendiger Server ist oder von inet.d 
	#  verwaltet wird
	
	# Die "DefaultServer" Anweisung gibt an, welche Server
	#  Konfiguration verwendet wird, wenn eine ankommende Verbindung
	#  fuer eine IP Adresse bestimmt ist, die weder die Prime IP
	#  Adresse vom Rechner ist, noch in einem <virtualhost> Block
	#  angegeben ist. Normalerweise wird solchen unbekannten
	#  Verbindungen eine "no server available to service your request"
	#  Nachricht geschickt und die Verbindung unterbrochen. Wenn
	#  "DefaultServer" gesetzt ist (sei es in der normalen Server
	#  konfiguration oder in einem virtuellen Server), so werden alle
	#  unbekannten Verbindung von diesem Standard Server bearbeitet.
	#  Es kann nur ein Server als Default gesetzt werden <virtualhost>
	#  </virtualhost></virtualhost>
	DefaultServer                   off

	#Die "DeferWelcome" Direktive verzoegert fuer einen Master oder
	#  Virtuellen Server die ermittlung vom Server Namen und Adressen,
	#  bis der Client sich erfolgreich angemeldet hat. Ist diese
	#  Direktive aktiv, wird die anfaengliche Willkommensnachricht
	#  keine Informationen er Server etc. preisgeben. 
	DeferWelcome                    off

	#Port, auf dem der Server laufen soll (Port 21 standard)
	Port                            21

	# In some cases you have to specify passive ports range to by-pass
	# firewall limitations. Ephemeral ports can be used for that, but
	# feel free to use a more narrow range.
	# PassivePorts                  49152 65534

	# If your host was NATted, this option is useful in order to
	# allow passive tranfers to work. You have to use your public
	# address and opening the passive ports used on your firewall as well.
	# MasqueradeAddress             1.2.3.4

	# This is useful for masquerading address with dynamic IPs:
	# refresh any configured MasqueradeAddress directives every 8 hours
	<IfModule mod_dynmasq.c>
		# DynMasqRefresh 28800
	</IfModule>

#-----------------------------------------------------------------------#
# Netzwerk Parameter							#
#-----------------------------------------------------------------------#
	# Set off to disable IPv6 support which is annoying on IPv4 only
	#   boxes.
	UseIPv6				off
	
	# If set on you can experience a longer connection delay in many
	#  cases. Normally, when a client initially connects to proftpd,
	#  the ident protocol (RFC1413) is used to attempt to identify
	#  the remote username. This can be controlled via the
	#  IdentLookups directive.
	IdentLookups			off

	# Normalerweise, sendet PROFTPD mehrzeilige Antworten im per 
	#  RFC 959 festgelegten Format. Beispiel: 200-erste Zeile weitere
	#  Zeilen 200-letzte Zeile In der RFC 2228 wird festgelegt, da
	#  "6xx" Antworten wie folgt gesendet werden: Beispiel: 600-erste
	#  Zeile 600-weitere Zeilen 600-letzte Zeile Die RFC 2228 legt
 	#  normalerweise nur fest, danur Antworten beginnend mit "6" so
	#  abgewickelt werden. Ist diese Anweisung aktiv, werden alle
	#  Antworten in diesem Format gesendet, was kompatibler mit
	#  einigen Browsern und FTP Clients ist. Diese Anweisung
	#  entspricht NICHT den wu-ftpd's mehrzeiligen Antworten, die
	#  keiner RFC entsprechen. Diese Methode von PROFTPD scheint mit
	#  allen Clients zu funktionieren, da sie jedoch nicht 100% RFC
	#  konform ist, ist die per Standard nicht aktiviert. 
	MultilineRFC2228 on
	
	ShowSymlinks			on

#-----------------------------------------------------------------------#
# FTP-Server mit TLS Handschake                                         #
#-----------------------------------------------------------------------#
	Include /etc/proftpd/tls.conf

#-----------------------------------------------------------------------#
# Delays einstellen							#
#-----------------------------------------------------------------------#
	# Delay engine reduces impact of the so-called Timing Attack
	# described in
	# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
	# It is on by default. 
	<IfModule mod_delay.c>
		DelayEngine on
	</IfModule>
	
#-----------------------------------------------------------------------#
# Anfragenfilter							#
#-----------------------------------------------------------------------#
	DenyFilter			\*.*/
	# Filtern von bestimmten Anfragen
	# regul�ren Ausdruck an, der nicht als Kommando gesendet werden darf

#-----------------------------------------------------------------------#
# Server Daemon - Nutzer						#
#-----------------------------------------------------------------------#
	# Set the user and group that the server normally runs at.
	User				proftpd
	Group				nogroup

#-----------------------------------------------------------------------#
# Zugangskontrolle							#
#-----------------------------------------------------------------------#
	# Login verbieten
	<Limit LOGIN>
		DenyUser root
		DenyGroup !leser !schreiber
	</Limit>

	# Host basierte Zugangskontrolle durch /etc/hosts.allow
	#<IfModule mod_wrap.c>
	#</IfModule>

#-----------------------------------------------------------------------#
# Benutzer - Authentifizierung						#
#-----------------------------------------------------------------------#
	#AuthUserFile 			/etc/proftpd/ftpd.passwd
	#AuthPAM 			off


	# Users require a valid shell listed in /etc/shells to login.
	# Use this directive to release that constrain.
	RequireValidShell		off
	
	# Uncomment this if you are using NIS or LDAP via NSS to retrieve
	# passwords:
	# PersistentPasswd		off

	# This is required to use both PAM-based authentication and local
	# passwords
	# AuthOrder			mod_auth_pam.c* mod_auth_unix.c

#-----------------------------------------------------------------------#
# Alternative Benutzer Authentifizierungsframeworks			#
#-----------------------------------------------------------------------#
	#Include /etc/proftpd/ldap.conf
	#Include /etc/proftpd/sql.conf

#-----------------------------------------------------------------------#
# Admin - Controls							#
#-----------------------------------------------------------------------#	
	<IfModule mod_ctrls_admin.c>
		AdminControlsEngine off
	</IfModule>
	
	# Be warned: use of this directive impacts CPU average load!
	# Uncomment this if you like to see progress and transfer rate with ftpwho
	# in downloads. That is not needed for uploads rates.
	#
	# UseSendFile			off

#-----------------------------------------------------------------------#
# Controls								#
#-----------------------------------------------------------------------#
	<IfModule mod_ctrls.c>
		ControlsEngine        off
		ControlsMaxClients    2
		ControlsLog           /var/log/proftpd/controls.log
		ControlsInterval      5
		ControlsSocket        /var/run/proftpd/proftpd.sock
	</IfModule>

#-----------------------------------------------------------------------#
# Parameter fuer Unterbrechungen und Zugang				#
#-----------------------------------------------------------------------#
	# max. Zeit ohne eine Datenverbindung 
	TimeoutNoTransfer 60
	
	# max Zeit wo eine Daten Verbindung bestehen kann, ohne das Daten
	#  tranferriert werden
	TimeoutStalled 60
	
	# max Zeit wo eine Verbindung bestehen kann, ohne das Daten fliessen
	TimeoutIdle 60

	# MaxInstances: Beschrkt die Gesamtzahl der Verbindungen.
	MaxInstances 5

	# MaxClients: Beschrkt die Anzahl der Verbindungen pro
	#  Server/virtuellen Host.
	MaxClients 			5

	# MaxClientsPerHost: Beschrkt die Anzahl der Clients die
	#  sich von einem Host anmelden koenen.
	MaxClientsPerHost		2

	# MaxClientsPerUser: Beschrkt die Anzahl der Verbindungen
	#  die gleichzeitig unter dem gleichen Usernamen aufgebaut
	#  werden koennen.
	MaxClientsPerUser 1

	# MaxHostsPerUser: Beschrkt die Anzahl der Rechner, von
	#  denen sich jemand mit dem gleichen Usernamen einloggen
	#  kann.
	MaxHostsPerUser 1

	# Umask 022 is a good standard umask to prevent new files and dirs
	# (second parm) from being group and world writable.
	Umask				022  022

	# Normally, we want files to be overwriteable.
	AllowOverwrite			on

#-----------------------------------------------------------------------#
# Verzeichnisse f�r Benutzer						#
#-----------------------------------------------------------------------#
	# Use this to jail all users in their homes 
	DefaultRoot			/media/ftp frank

#-----------------------------------------------------------------------#
# LOG - Files								#
#-----------------------------------------------------------------------#
	TransferLog /var/log/proftpd/xferlog
	SystemLog   /var/log/proftpd/proftpd.log

#-----------------------------------------------------------------------#
# Ratio - Modul								#
#-----------------------------------------------------------------------#
	<IfModule mod_ratio.c>
		Ratios off
	</IfModule>

#-----------------------------------------------------------------------#
# globale Einstellungen							#
#-----------------------------------------------------------------------#
#	<Global>
#		DefaultRoot /media/ftp/
#		DefaultChdir /media/ftp/
#		AllowStoreRestart on
#		DefaultTransferMode binary
#		AllowOverwrite on
#		<Directory />
#			<Limit ALL>
#				DenyAll
#			</Limit> 
#			#AllowAll 
#			#AllowOverwrite on
#			#AllowRetrieveRestart on
#			#AllowStoreRestart on
#			#GroupOwner schreiber
#		</Directory>
#	</Global>

#<Anonymous /media/ftp/>
#	User			markus
#	Group			schreiber
#	AnonRequirePassword	on
#	AllowForeignAddress	on
#	MaxClients		4
#	AllowOverwrite		yes
#</Anonymous>
