Guten Morgen,
hier nochmal das Ganze ausführlich für server4downs
.
Vorab: Die Verzeichnisangaben können natürlich von System zu System anders aussehen. Ich beziehe mich hier auf eine vServer-Installation bei S4F mit RedHat 9.0
In der Datei
/etc/xinetd.d/proftpd setzt man den Wert
disabled auf
yes. Die Datei sieht dann so aus:
service ftp
{
disable = yes
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
}
Jetzt startet man den xinetd neu, damit dieser mitbekommt, dass sich die Konfiguration geändert hat. Das geht z.B. so:
service xinetd restart
oder so:
/etc/init.d/xinetd restart
Zur Info: Durch Deaktivieren des proftpd im xinetd, wird der FTP-Port frei, auf dem bisher der xinetd gelauscht hat.
Damit proftpd nun alleine laufen kann muss dieser als eigenständiger Dämon eingerichtet werden.
In der Datei
/etc/proftpd.conf setzt man den Wert
ServerType auf
standalone. Dadurch weiss proftpd schonmal, dass er nicht von inetd/xinetd aufgerufen wird, sondern alleine auf dem FTP-Port lauschen muss.
Damit der FTP-Login schneller funktioniert, setzt man
UseReverseDNS und
IdentLookups auf
off. Die Datei sieht dann so aus:
ServerName ??????.vserver.de
ServerType standalone
DefaultServer on
ServerAdmin technik@??????.vserver.de
ServerIdent on "FTP Server ready."
# 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 nobody
Group nobody
TransferLog /var/log/xferlog
# Normally, we want files to be overwriteable.
AllowOverwrite on
#
# Do a chroot for web-users (i.e. public or www group), but
# do not change root if the user is also in the users group...
#
#DefaultRoot ~/public_html public,!users
#
DefaultRoot ~
# Groups that are not allowed to login
<Limit LOGIN>
DenyGroup poponly
</Limit>
UseReverseDNS off
IdentLookups off
### ENDE ####
Jetzt kann man durch den Aufruf von
proftpd den Dämon starten. Beim nächsten Reboot wird man allerdings vergeblich versuchen, sich über FTP einzuloggen, denn der Dämon läuft dann nicht mehr. Dazu müssen wir ein Skript basteln, mit dem man den Dämon beim Booten starten kann.
Als erstes legt man die Datei
/etc/init.d/proftpd an, die dann so aussieht:
#!/bin/sh
#
# chkconfig: 345 92 33
# description: Starts and stops the proftpd
# thx to the samba-team for the script
PROFTP=/usr/sbin/proftpd
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
# Check that smb.conf exists.
[ -f /etc/proftpd.conf ] || exit 0
# See how we were called.
case "$1" in
start)
echo -n "Starting proFTPd: "
daemon $PROFTP
echo
touch /var/lock/subsys/proftpd
;;
stop)
echo -n "Shutting down proFTPd: "
killproc $PROFTP
rm -f /var/lock/subsys/proftpd
echo ""
;;
status)
status $PROFTP
;;
restart)
echo -n "Restarting proFTPd: "
$0 stop
$0 start
echo "done."
;;
*)
echo "Usage: proftpd {start|stop|restart|status}"
exit 1
esac
Ein kleines
chmod 755 /etc/init.d/proftpd macht das Skript ausführbar.
Damit haben wir ersteinmal den Grundstein zum Starten/Stoppen/Neustarten des proftpds geschaffen. Jetzt müssen wir ihn nur noch über symbolische Links in die einzelnen Runlevel, vorzugsweise 3 und 5, eintragen. Z.B. folgendermaßen:
Starten von proftpd im Runlevel 3 (Voller Mulituserbetrieb mit Netzwerk):
cd /etc/rc3.d
ln -s /etc/init.d/proftpd S77proftpd
Stoppen von proftpd beim Wechseln in einen anderen Runlevel:
cd /etc/rc3.d
ln -s /etc/init.d/proftpd K10proftpd
Starten von proftpd im Runlevel 5 (Voller Multiuserbetrieb mit Netzwerk und KDM, GDM oder XDM):
cd /etc/rc5.d
ln -s /etc/init.d/proftpd S77proftpd
Stoppen von proftpd beim Wechseln in einen anderen Runlevel:
cd /etc/rc5.d
ln -s /etc/init.d/proftpd K10proftpd
Beim Booten des Systems sollte proftpd nun auch gleich mitgestartet werden.
Viel Spaß mit einem schnellen FTP-Login.
Gruß
Tim