The ProFTPD package contains a secure and highly configurable FTP daemon. This is useful for serving large file archives over a network.
Download (FTP): ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.8p.tar.bz2
Download size: 729 KB
Estimated Disk space required: 6.3 MB
Estimated build time: 0.26 SBU
For security reasons, running ProFTPD as an unprivileged user and group is encouraged.
groupadd proftpd && useradd -c proftd -d /home/ftp -g proftpd -s /bin/false proftpd |
Install ProFTPD by running the following commands:
install_user=proftpd install_group=proftpd \ ./configure --prefix=/usr --sysconfdir=/etc \ --localstatedir=/var && make && make install |
install_user=proftpd install_groud=proftpd : Specify the user and group identity for ProFTPD.
--prefix=/usr : This installs ProFTPD in /usr instead of /usr/local.
--sysconfigdir=/etc : This prevents the configuration files from going to /usr/etc.
--localstatedir=/var : This uses /var instead of /usr/var for lock and log files.
/etc/proftpd.conf
This is a simple, download-only sample configuration. See the ProFTPD documentation in /usr/share/doc/proftpd and consult the website at http://www.proftpd.net/ for example configurations.
cat > /etc/proftpd.conf << "EOF" # This is a basic ProFTPD configuration file # It establishes a single server and a single anonymous login. ServerName "ProFTPD Default Installation" ServerType standalone DefaultServer on # Port 21 is the standard FTP port. Port 21 # Umask 022 is a good standard umask to prevent new dirs and files # from being group and world writable. Umask 022 # To prevent DoS attacks, set the maximum number of child processes # to 30. If you need to allow more than 30 concurrent connections # at once, simply increase this value. Note that this ONLY works # in standalone mode, in inetd mode you should use an inetd server # that allows you to limit maximum number of processes per service # (such as xinetd) MaxInstances 30 # Set the user and group that the server normally runs at. User proftpd Group proftpd # Normally, we want files to be overwritable. <Directory /*> AllowOverwrite on </Directory> # A basic anonymous configuration, no upload directories. <Anonymous ~proftpd> User proftpd Group proftpd # We want clients to be able to login with "anonymous" as well as "proftpd" UserAlias anonymous proftpd # Limit the maximum number of anonymous logins MaxClients 10 # We want 'welcome.msg' displayed at login, and '.message' displayed # in each newly chdired directory. DisplayLogin welcome.msg DisplayFirstChdir .message # Limit WRITE everywhere in the anonymous chroot <Limit WRITE> DenyAll </Limit> </Anonymous> EOF |
cat > /etc/rc.d/init.d/proftpd << "EOF" #!/bin/sh # Begin $rc_base/init.d/proftpd # Based on sysklogd script from LFS-3.1 and earlier. # Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org source /etc/sysconfig/rc source $rc_functions case "$1" in start) echo "Starting FTP Server..." loadproc /usr/sbin/proftpd ;; stop) echo "Stopping FTP Server..." killproc /usr/sbin/proftpd ;; reload) echo "Reloading FTP Server..." reloadproc /usr/sbin/proftpd ;; restart) $0 stop sleep 1 $0 start ;; status) statusproc /usr/sbin/proftpd ;; *) echo "Usage: $0 {start|stop|reload|restart|status}" exit 1 ;; esac # End $rc_base/init.d/proftpd EOF chmod 755 /etc/rc.d/init.d/proftpd |
Create the symbolic links to this file in the relevant rc.d directories with the following commands:
cd /etc/rc.d/init.d && ln -sf ../init.d/proftpd ../rc0.d/K50proftpd && ln -sf ../init.d/proftpd ../rc1.d/K50proftpd && ln -sf ../init.d/proftpd ../rc2.d/K50proftpd && ln -sf ../init.d/proftpd ../rc3.d/S50proftpd && ln -sf ../init.d/proftpd ../rc4.d/S50proftpd && ln -sf ../init.d/proftpd ../rc5.d/S50proftpd && ln -sf ../init.d/proftpd ../rc6.d/K50proftpd |