Installing Proftp on OpenSuse 11

I want to use Proftpd instead of vsftpd which is SUSE’s default FTP server because the control panel software I am going to install on this server (ISPConfig) requires Proftpd on OpenSUSE 11 (on other distributions this is different). Since there are no OpenSUSE packages for Proftpd I have to compile it manually:

yast2 -i libcap libcap-devel

cd /tmp/
wget –passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.2rc1.tar.gz
tar xvfz proftpd-1.3.2rc1.tar.gz
cd proftpd-1.3.2rc1/
./configure –sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.2rc1*

Now create the file /etc/init.d/proftpd:

vi /etc/init.d/proftpd

#! /bin/sh
# Copyright (c) 2000-2001 SuSE GmbH Nuernberg, Germany.
# All rights reserved.
#
# Original author: Marius Tomaschewski <mt@suse.de>
#
# Slightly modified in 2003 for use with SuSE Linux 8.1,
# by http://www.learnlinux.co.uk/
#
# Slightly modified in 2005 for use with SuSE Linux 9.2,
# by Falko Timme
#
# /etc/init.d/proftpd
#
### BEGIN INIT INFO
# Provides:                proftpd
# Required-Start:        $network $remote_fs $syslog $named
# Required-Stop:
# Default-Start:        3 5
# Default-Stop:        0 1 2 6
# Description:                Starts ProFTPD server
### END INIT INFO
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}
# Force execution if not called by a runlevel directory.
test $link = $base && START_PROFTPD=yes  # Modified by learnlinux.co.uk
test “$START_PROFTPD” = yes || exit 0    # Modified by learnlinux.co.uk
# Return values acc. to LSB for all commands but
# status (see below):
#
# 0 – success
# 1 – generic or unspecified error
# 2 – invalid or excess argument(s)
# 3 – unimplemented feature (e.g. “reload”)
# 4 – insufficient privilege
# 5 – program is not installed
# 6 – program is not configured
# 7 – program is not running
proftpd_cfg=”/etc/proftpd.conf”
proftpd_bin=”/usr/local/sbin/proftpd”
proftpd_pid=”/usr/local/var/proftpd.pid”
[ -r $proftpd_cfg ] || exit 6
[ -x $proftpd_bin ] || exit 5
# Source status functions
. /etc/rc.status
# First reset status of this service
rc_reset
case “$1” in
start)
echo -n “Starting ProFTPD Server: ”
test -f /etc/shutmsg && rm -f /etc/shutmsg
/sbin/startproc $proftpd_bin
rc_status -v
;;
stop)
echo -n “Shutting down ProFTPD Server: ”
test -x /usr/local/sbin/ftpshut && /usr/local/sbin/ftpshut now && sleep 1
/sbin/killproc -TERM $proftpd_bin
test -f /etc/shutmsg && rm -f /etc/shutmsg
rc_status -v
;;
restart)
## If first returns OK call the second, if first or
## second command fails, set echo return value.
$0 stop
$0 start
rc_status
;;
try-restart)
## Stop the service and if this succeeds (i.e. the
## service was running before), start it again.
## Note: not (yet) part of LSB (as of 0.7.5)
$0 status >/dev/null &&  $0 restart
rc_status
;;
reload|force-reload)
## Exclusive possibility: Some services must be stopped
## and started to force a new load of the configuration.
echo -n “Reload ProFTPD Server: ”
/sbin/killproc -HUP $proftpd_bin
rc_status -v
;;
status)
# Status has a slightly different for the status command:
# 0 – service running
# 1 – service dead, but /var/run/  pid  file exists
# 2 – service dead, but /var/lock/ lock file exists
# 3 – service not running
echo -n “Checking for ProFTPD Server: ”
checkproc $proftpd_bin
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload,
## give out the argument which is required for a reload.
[ $proftpd_cfg -nt $proftpd_pid ] && echo reload
;;
*)
echo “Usage: $0 {start|stop|status|restart|reload|try-restart|probe}”
exit 1
;;
esac
# Set an exit status.
rc_exit

Then run

chmod 755 /etc/init.d/proftpd
chkconfig –add proftpd

Start Proftpd:

/etc/init.d/proftpd start

If you get the following error…

Starting ProFTPD Server:  – Fatal: UseIPv6: Use of the UseIPv6 directive requires IPv6 support (–enable-ipv6) on line 14 of ‘/etc/proftpd.conf’
startproc:  exit status of parent of /usr/local/sbin/proftpd: 1

… open  /etc/proftpd.conf and comment out or remove the UseIPv6 line:

vi /etc/proftpd.conf

[…]
# Don’t use IPv6 support by default.
#UseIPv6                                off
[…]

For security reasons you can add the following lines to /etc/proftpd.conf:

vi /etc/proftpd.conf

[…]
DefaultRoot ~
IdentLookups off
ServerIdent on “FTP Server ready.”
[…]

Be sure to comment out the following lines in order to allow ftp users to CHMOD:

[…]
# Bar use of SITE CHMOD by default
#<Limit SITE_CHMOD>
#  DenyAll
#</Limit>
[…]

and restart Proftpd:

/etc/init.d/proftpd restart

Share

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.