Auf diversen Servern mit Ubuntu (14.04 aber auch andere Versionen) beendet sich der Proftp-Server proftpd (daemon, im Modus “standalone”) in scheinbar unregelmäßigen Abständen. Anfangs dachte ich noch an eine falsche Konfiguration oder einen Hackerangriff. Aber bei Durchsicht der Logfiles fiel schon recht bald der Eintrag
$ tail /var/log/proftpd/proftpd.log.1
...
... ProFTPD killed (signal 15)
... ProFTPD 1.3.5rc3 standalone mode SHUTDOWN
auf. Gestartet wurde der proftpd dann aber nicht wieder.
Als Workaround schrieb ich ein kleines Watchdog-Script, das als CRON-Job regelmäßig die Prozessliste durchsieht, und proftpd startet, falls der Suchstring “proftpd” nicht gefunden werden kann! Aber das konnte natürlich keine Dauerlösung sein.
Ein Vergleich mit den Logrotate-Zeiten ermöglicht es, das Problem einzugrenzen. Was ich für einen Zeitraum von “alle paar Stunden” hielt, deckte sich gut mit den Zeiten des Logrotate. Scheinbar kann Logrotate die Logs nicht archivieren, wenn der proftpd noch darauf zugreift. Daher beendet es proftpd, aber anschließend legt der FTP-Server einen Fehlstart hin. Scheinbar liegt’s daran, dass proftpd noch nicht ganz runtergefahren ist, wenn der Befehl zum Neustart erfolgt, bzw, das System das komplette Herunterfahren noch nicht “realisiert hat”.
Eine dauerhafte Lösung ist ganz einfach:
Man versucht’s bei jeden Start von proftpd einfach nochmal. Dazu bearbeitet man mit seinen bevorzugten Editor das Startscript
/etc/init.d/proftpd
und sucht genau die Zeile mit dem Inhalt:
start-stop-daemon --stop --signal $SIGNAL --quiet --pidfile "$PIDFILE"
Dort fügt man dann ein –retry 1 ein.
start-stop-daemon --stop --signal $SIGNAL --retry 1 --quiet --pidfile "$PIDFILE"
Fertig!
Hilfreiche Quelle.
P.S.: Ein kleiner Tipp am Rande: Aus sicherheitsrelevanten Erwägungen sollte man den FTP-Port (ebenso wie den SSH-Port) von 21 (bzw 22) auf irgendeinen anderen Port umlegen. Das hilft, um eine Menge Scriptkiddies und Bots davon abzuhalten, das System zu kapern und zum Teil eines Botnets zu machen. Sichere Passworte, die regelmäßig gewechselt werden, sind ebenso wichtig!