FreeBSD und der 530 Anonymous only Fehler

3 Jan 2015 - Lesezeit: 3 Minuten

Wie der ein oder andere sich vielleicht erinnert betreibe ich nun Seit einiger Zeit einen FreeBSD Server bei mir zu Hause. Neben der neugewonnenen Motivation hinsichtlich des aufeinandertreffen mit gewissen Themengebieten bietet mir der Betrieb einer bisher nieder gewesener Zufriedenheit.

In der letzten Zeit jedoch hatte ich die ein oder andere Unannehmlichkeit mit dem sonst hervorragend funktionierenden ProFTPD. Da ist ohnehin Zeit für einen kleinen Wechsel wurde - immerhin möchte man möglichst viel von dem Neuland kennen lernen und sich auch in unwegsamen Gelände zurecht finden können - Schloss sich kurzerhand zu dem von mir bisher Hoch geschätzten VsFTPD zu wechseln.

Alle diejenigen die diesen hervorragenden Dienst kennen, Wissen dass er mit wenigen Anpassungen an der Konfigurationsdatei fertig eingestellt ist. Nichtsdestotrotz führe ich nachfolgend die von mir durchgeführten Änderungen an der /usr/local/etc&vsftpd.conf auf:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=NO
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=120
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=NO
chroot_list_file=/usr/local/etc/vsftpd_chroot_list
ls_recurse_enable=YES
secure_chroot_dir=/usr/local/share/vsftpd/empty

listen=YES
background=YES

Wie sich erkennen lässt bewegen sich die durch geführten Anpassungen in einem überschaubaren Rahmen. Zunächst möchte ich nicht, dass man sich anonym an den Server anmelden kann. Weiter möchte ich das lokale Benutzer sich hingegen einloggen und zudem auch Schreibrechte bekommen können. Alle Benutzer, die sich am System anmelden, werden in einem Chroot eingesperrt. Um einen eventuell vorhandenen Bug entgegen zu wirken, erlaube ich extra und separat einen beschreibbaren Chroot. Damit der Dienst auch ein Dienst ist und beim Start in den Hintergrund geht, sind die letzten beiden Zeilen der Konfigurationsdatei auskommentiert.

Dann noch schnell die Datei /etc/rc.conf bearbeiten und die Zeile

vsftpd_enable="YES"

hinzufügen, damit ich mir sicher sein kann, das der Server auch beim Start den Dienst lädt.

Wer jetzt den Dienst startet erwartet, dass er sich mit einem vorhandenen lokalen Benutzer anmelden kann. Bei mir führte Ein Anmeldeversuche jedoch zu einem Fehler mit der Meldung: 530 Anonymous Server Only. Eine anonyme Anmeldung war erfolgreich.

Es war einiges suchen möchte ich um auf die entsprechende in geht zu kommen. Schaut man sich das Start-Skript unter /usr/local/etc/rc.d/vsftpd an, so findet man irgendwo mittendrin folgende Zeilen:

...

# vsftpd_enable="YES"
# vsftpd_flags="/some/path/conf.file" # Not required

...

den Eintrag # Not required sollte man in diesem Fall jedoch nicht zu ernst nehmen, denn er führte in meinem Fall (FreeBSD 10.1) zu den beschriebenen Effekt.

Als ich die Datei /etc/rc.conf um den Eintrag

vsftpd_flags="/usr/local/etc/vsftpd.conf"

erweitert habe, schien alles wie gewünscht zu funktionieren.