* Added plugin support

* Improved Filer (LocalFiler)
* Supports Explicit SSL/TLS with OpenSSL/Crypto
* Fixed most of the bugs that drove me nuts.
* Properly handled socket closes
* Improved socket cleanup
* Buffered file downloads
* Lots 'o errors!

I did it again! I made a single commit with everything!
This commit is contained in:
2024-12-13 10:51:10 -06:00
parent 841c1e1ead
commit 5ff35c26ab
32 changed files with 2553 additions and 655 deletions

View File

@@ -1,18 +1,99 @@
[main]
server_name=My FTP Server
motd_file=motd
auth_engine=noauth
[logging]
file=digftp.log
level=0
## DigFTP Configuration File
## =========================
## This is the primary configuration file. Here is where you'll find all the
## necessary options to configure your FTP server.
## == String Formatting
## These may be used in certain options to be runtime replaced.
## %u Username
## %p Password
## %v Version
## %h Hostname
## == Booleans
## true | false
## ----- | -----
## 1 | 0
## on | off
## yes | no
## Anything unrecognized will be treated as 'false'.
## CORE OPTIONS
## These affect the very core of the server.
[core]
## The name of the server it sends to the client.
## Syntax: server_name=<string>
server_name=digFTP %v
## MotD command to post the output to clients after log in.
## WARNING: This method can be insecure. Use with caution.
## Syntax: motd_command=<command>
#motd_command=cowsay -r Welcome %u.
## MotD file to post to clients after log in. Overrides `motd_command`.
## Syntax: motd_file=<path>
#motd_file=motd
## MotD text to post to clients after log in. Overrides `motd_command` and
## `motd_file`.
## Syntax: motd_text=<string>
#motd_text=
## Path to digFTP plugins
## Syntax: plugin_path=<path>
plugin_path=/usr/lib/digftp/plugins
## Authentication Engine to use for logging in.
## Syntax: auth_engine=<name>
auth_engine=local
## Filer engine to use for the clients file system.
## Syntax: file_engine=<name>
## Possible values are: local
filer_engine=local
[net]
listen_address=127.0.0.1
control_port=21
max_clients=255
[noauth]
user_root=/home/%u/
chroot=1
## Network address and port to listen on.
## Syntax: listen=<ip>:<port>
listen=127.0.0.1:21
## Whether to support SSL. Server must be compiled with WITH_SSL=ON.
## Syntax: ssl=<bool>
ssl=on
[features]
utf8=off
[ssl]
certificate=cert.pem
private_key=key.pem
ciphers=ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH
ssl_v2=no
ssl_v3=no
tls_v1=no
tls_v1_1=no
tls_v1_2=yes
tls_v1_3=yes
compression=yes
prefer_server_ciphers=yes
[logging]
## Log messages to file. Logging has multiple options pertaining to each
## loglevel. All values are paths.
## Syntax: [console|critical|error|warning|info|debug|all]=<path>
info=digftp.info.log
error=digftp.error.log
debug=digftp.debug.log
[passdb]
file=conf/passdb
user_root=/home/%u/
case_sensitive=1
## The file for the passdb engine.
## Syntax: passdb=<path>
file=passdb
## Root of logged in user. Can use string formatting.
## Syntax: home_path=<path>
home_path=/home/%u/

View File

@@ -1 +0,0 @@
anonymous:anonymous@