uFTP - FTP Server

uftp server, open source ftp server, linux ftp server, linux ftp server for embedded, easy to configure ftp server, ftp server for initramfs

User Tools

Site Tools


uftp-server-installation

uFTP - FTP server installation

Option 1 install from sources (recommended)

Some software are required for this procedure: git, gcc and make, check your Linux distribution documentation for more information about how to get the required software.

Eg: Under Ubuntu/Debian you can install all required software with this command:

# sudo apt-get install git gcc make

Clone the repository:

# git clone https://github.com/kingk85/uFTP.git

Compile uFTP server

# cd uFTP

Note: To enable the large file support, the Makefile file must be edited, find in the file the text that starts with DEFINITIONS= and modify the file as the example below.

DEFINITIONS=
#TO ENABLE THE LARGE FILE SUPPORT UNCOMMENT THE NEXT LINE
#DEFINITIONS=-D_LARGEFILE64_SOURCE

Remove the comment at the line: #DEFINITIONS=-D_LARGEFILE64_SOURCE

The final result would be:

DEFINITIONS=
#TO ENABLE THE LARGE FILE SUPPORT UNCOMMENT THE NEXT LINE
DEFINITIONS=-D_LARGEFILE64_SOURCE

Note: To enable TLS/SSL find the following lines in the Makefile file.

ENABLE_OPENSSL_SUPPORT=
#TO ENABLE OPENSSL SUPPORT UNCOMMENT NEXT 2 LINES
#ENABLE_OPENSSL_SUPPORT=-D OPENSSL_ENABLED
#LIBS=-lpthread -lssl -lcrypto

Remove the comments at the lines:

#ENABLE_OPENSSL_SUPPORT=-D OPENSSL_ENABLED
#LIBS=-lpthread -lssl -lcrypto

The final result would be:

ENABLE_OPENSSL_SUPPORT=
#TO ENABLE OPENSSL SUPPORT UNCOMMENT NEXT 2 LINES
ENABLE_OPENSSL_SUPPORT=-D OPENSSL_ENABLED
LIBS=-lpthread -lssl -lcrypto

Note: To enable the PAM Authentication module for the standard /etc/passwd, /etc/shadow authentication find the following lines in the makefile.

ENABLE_PAM_SUPPORT=
PAM_AUTH_LIB=
#TO ENABLE PAM AUTH UNCOMMENT NEXT TWO LINES
#ENABLE_PAM_SUPPORT= -D PAM_SUPPORT_ENABLED
#PAM_AUTH_LIB= -lpam

Remove the comments at the lines:

#ENABLE_OPENSSL_SUPPORT=-D OPENSSL_ENABLED
#LIBS=-lpthread -lssl -lcrypto

The final result would be:

ENABLE_PAM_SUPPORT=
PAM_AUTH_LIB=
#TO ENABLE PAM AUTH UNCOMMENT NEXT TWO LINES
ENABLE_PAM_SUPPORT= -D PAM_SUPPORT_ENABLED
PAM_AUTH_LIB= -lpam

To disable IPV6 support, for legacy device modify the makefile by disabling the IPV6_ENABLED define From

ENABLE_IPV6_SUPPORT=
#TO ENABLE IPV6 support uncomment next line
ENABLE_IPV6_SUPPORT=-D IPV6_ENABLED

to this

ENABLE_IPV6_SUPPORT=
#TO ENABLE IPV6 support uncomment next line
#ENABLE_IPV6_SUPPORT=-D IPV6_ENABLED

openSSL libraries are required if uFTP is compiled with TLS support, under Ubuntu use the following command:

sudo apt-get install libssl-dev

Generate a new certificate (only if TLS/SSH is enabled):

mkdir /etc/uFTP

cd /etc/uFTP

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

openssl rsa -in key.pem -out newkey.pem

mv newkey.pem key.pem

chown root:root /etc/uFTP/key.pem

chmod -rwx /etc/uFTP/key.pem

Continue with the build.

# make

Copy the files to the linux path, root permission are required under ubuntu use the sudo command.

# cp build/uFTP /sbin/uFTP
# cp uftpd.cfg /etc/uftpd.cfg

Set permissions and root restriction of the configuration file.

chown root:root /sbin/uFTP
chown root:root /etc/uftpd.cfg
chmod -rwx /etc/uftpd.cfg

Run uFTP, note: root permissions are required to execute the uFTP server.

# uFTP

Option 2 install from binary

Download the latest binary file for your OS:

# sudo cd /sbin
# for x64
# sudo wget https://www.uftpserver.com/downloads/binaries/latest/x64/uFTP
# for arm
# sudo wget https://www.uftpserver.com/downloads/binaries/latest/armhf/uFTP

Download the latest configuration sample:

# sudo cd /etc
# sudo wget https://www.uftpserver.com/downloads/configuration_sample/uftpd.cfg

Set permissions and root restriction of the configuration file.

chown root:root /sbin/uFTP
chown root:root /etc/uftpd.cfg
chmod -rwx /etc/uftpd.cfg

Run uFTP, note: root permissions are required to execute the uFTP server.

# uFTP

All binary downloads and examples can be found at: https://www.uftpserver.com/downloads/

uftp-server-installation.txt · Last modified: 2024/05/08 09:01 by kingk