Jul 20, 2023

Modular FTP server configurable online using SITE commands

wzdftpd is an FTP server designed to be modular and entirely configurable online using SITE commands.

wzdftpd offers the following features

  • Simple configuration file, supporting inclusions
  • Online administration, using SITE commands
  • Backends to store users/groups in different structures
  • Modules internal, using shared libraries, or external scripts/applications
  • Users are virtual you do not need to create users in system
  • SSL/TLS support
  • Server is designed to run as a non-privileged user to enforce security
  • Server can detect ip changes dynamic ips and set ip and passive ip accordingly
  • Cross devices operations copy/move though can be slow
  • Logging support compatible with the wu-ftpd standard
  • Designed for high performances coded with C, multithreaded

WZDFTPD - A Comprehensive Guide to FreeBSD’s Simple, Powerful FTP Server

WZDFTPD is a flexible and robust FTP server port available for FreeBSD. With its extensive array of features, WZDFTPD offers easy setup, secure file transfers, and efficient usage of server resources.

In this article, we will explore the features that make WZDFTPD an excellent choice for an FTP server on a FreeBSD system, explain how to install and configure WZDFTPD, and demonstrate some typical usage scenarios. Subsequently, if you’re looking for secure and efficient file transfers, read on.

Preamble on WZDFTPD

WZDFTPD, or wzd - FTP Daemon, is an FTP server implementation that stands out due to its simplicity of use, expandability, and security features. With support for both IPv4 and IPv6, WZDFTPD gives vast platform support.

The FTP port is designed around a modular structure, allowing users to customize it according to their needs. WZDFTPD supports plugins, granting additional functionalities like SSL/TLS encryption for secure data transfers or bandwidth throttling to save on resources.

Install WZDFTPD on FreeBSD

Before installing WZDFTPD, ensure your FreeBSD ports tree is updated. You can update it with portsnap fetch and portsnap extract commands. Once the ports tree is updated, navigate to the WZDFTPD port directory

cd /usr/ports/ftp/wzdftpd/

Then, install the WZDFTPD port

make install clean

The process will fetch the source code, compile it, and finally install the software onto your system.

Basic Configuration

Once the WZDFTPD port has been installed, it is essential to configure it appropriately.

The main configuration file is located at /usr/local/etc/wzdftpd/wzd.conf.

Open the file with a text editor

nano /usr/local/etc/wzdftpd/wzd.conf

The configuration file is well commented, giving an explanation for each setting.

Modify the configurations as per your requirements. Areas that require configuration include global settings like max users and minimum UID, group settings, and user settings.

After completing the configuration, restart WZDFTPD

service wzdftpd restart

User and Group Management

WZDFTPD supports virtual users and groups, independent from system accounts. You can add, modify, or delete users and groups using the wzdconfig command.

To add a user

wzdconfig -a Name Password uid gid /Users/Name

The user will now be able to log in using the provided Name and Password.

Similarly, to add a group

wzdconfig -A groupname gid

Security Measures

For secure file transfers, it is a wise idea to use the SSL/TLS plugin for WZDFTPD libwzd_tls. It uses OpenSSL libraries for encryption.

Another crucial security measure is limiting user access to only necessary folders and files. This can be achieved with read, write, and execute permissions set on the Users group of the configuration file.

For further analysis of network security and intrusion attempts, consider installing [nmap]https//freebsdsoftware.org/security/nmap.html from the FreeBSD ports collection.


WZDFTPD is an excellent choice for an FTP server on FreeBSD systems due to its simplicity, robustness, and flexible configuration options. The installation and configuration steps as detailed above should help users to get started with using WZDFTPD for secure and efficient file transfers. Whether you’re interested in running a small-scale personal server or managing large-scale organizational file transfers, WZDFTPD proves its worth as a reliable and efficient tool for the job.

Checkout these related ports:
  • Yafc - Yet another FTP client, similar to ftp(1)
  • Wput - Upload files or directories to FTP server with resume support
  • Wmget - Dock app for Window Maker providing wget functionality
  • Wget - Retrieve files from the Net via HTTP(S) and FTP
  • Weex - Non-interactive FTP client
  • Waiho - Simple FTP client for GNUstep
  • Vsftpd - FTP daemon that aims to be "very secure"
  • Vsftpd-ext - FTP daemon that aims to be "very secure". Extended build
  • Uftp - Multicast capable FTP client and server
  • Twoftpd - Simple, secure, efficient FTP server
  • Tnftpd - Enhanced FTP server from NetBSD
  • Tnftp - Enhanced FTP client from NetBSD
  • Tftp-hpa - Advanced TFTP server
  • Termscp - TUI file transfer and explorer with support for SCP/SFTP/FTP/S3
  • Spegla - Mirror program for FTP sites (written in C)