Ich benötige einen einfachen FTP-Server unter Linux (CentOS 5.5) ohne Sicherheitsmaßnahme, da sich der Server und die Clients in einem Test-LAN befinden, das nicht mit dem Rest des Netzwerks verbunden ist und selbst nicht routbare IPs hinter einer NAT-Firewall verwendet ohne eingehenden Zugriff auf FTP.
Einige Leute empfehlen Vsftpd über PureFTPd oder ProFTPd . Egal was ich versuche, ich kann es nicht zulassen, dass ein anonymer Benutzer (dh als "ftp" oder "anonym" protokolliert und eine beliebige Zeichenfolge als Kennwort eingibt) eine Datei hochlädt:
# yum install vsftpd
# mkdir /var/ftp/pub/upload
# cat vsftpd.conf
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
xferlog_file=YES
#anonymous users are restricted (chrooted) to anon_root
#directory was created by root, hence owned by root.root
anon_root=/var/ftp/pub/incoming
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#chroot_local_user=NO
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
chown_uploads=YES
Wenn ich mich von einem Client aus anmelde, bekomme ich Folgendes:
500 OOPS: Verzeichnis kann nicht geändert werden: / var / ftp / pub / incoming
Ich habe auch "# chmod 777 / var / ftp / incoming /" ausprobiert, erhalte aber den gleichen Fehler.
Weiß jemand, wie man Vsftpd mit minimaler Sicherheit konfiguriert?
Vielen Dank.
Bearbeiten: SELinux ist deaktiviert und hier sind die Dateiberechtigungen:
# cat /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
# sestatus
SELinux status: disabled
# getenforce
Disabled
# grep ftp /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
# ll /var/
drwxr-xr-x 4 root root 4096 Mar 14 10:53 ftp
# ll /var/ftp/
drwxrwxrwx 2 ftp ftp 4096 Mar 14 10:53 incoming
drwxr-xr-x 3 ftp ftp 4096 Mar 14 11:29 pub
Bearbeiten: neueste vsftpd.conf:
listen=YES
local_enable=YES
write_enable=YES
xferlog_file=YES
#anonymous users are restricted (chrooted) to anon_root
anonymous_enable=YES
anon_root=/var/ftp/pub/incoming
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#500 OOPS: bad bool value in config file for: chown_uploads
chown_uploads=YES
chown_username=ftp
Bearbeiten: Wenn der nachfolgende Speicherplatz aus "chown_uploads" entfernt wurde, ist err 500 behoben, aber anonym funktioniert immer noch nicht:
client> ./ftp server
Connected to server.
220 (vsFTPd 2.0.5)
Name (server:root): ftp
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/var/ftp/pub/incoming
Login failed.
ftp> bye
Wenn der Benutzer "ftp" in / etc / passwd aufgeführt ist und das Ausgangsverzeichnis auf "/ var / ftp" und die Zugriffsrechte auf / var / ftp auf "drwxr-xr-x" und / var / ftp / auf "drwxrwxrwx" eingestellt sind ... könnte es vielleicht an PAM liegen? Ich finde keine FTP-Protokolldatei in / var / log, die untersucht werden könnte.
Bearbeiten: Hier ist eine funktionierende Konfiguration, mit der ftp / anonym eine Verbindung herstellen und Dateien nach / var / ftp hochladen kann:
listen=YES
anonymous_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
Antworten:
Sie haben ein Verzeichnis namens pub / upload erstellt :
Aber dann haben Sie Uploads so konfiguriert, dass sie in die Kneipe / den Eingang gehen :
Es ist also eine einfache Pfadinkongruenz, der Rest scheint in Ordnung zu sein.
quelle
Ändern Sie für anonyme Anmeldungen das Home-Verzeichnis der "FTP" -Benutzer in
/etc/passwd
.Und fügen Sie dies Ihrer
/etc/vsftpd.conf
Datei hinzu.Stellen Sie sicher, dass der
ftp
Benutzer Zugriff (chmod 755
) hat, um jedes Verzeichnis bis zum Speicherort einzugeben/var/ftp/pub/
Ich habe stundenlang gegen dieses Problem gekämpft. vsftpd gibt keine klare Hilfe oder Vorschläge für Fehler.
quelle
Sie haben wahrscheinlich
userlist_deny=NO
in Ihrer conf-Datei. Ändern Sie es inYES
und stellen Sie sicher, dass der von Ihnen verwendete Benutzername nicht in/etc/vsftpd/user_list
oder in ist/etc/vsftpd/ftpusers
.quelle
Sie haben wahrscheinlich SE Linux aktiviert. Anstatt das Ganze zu deaktivieren, das Sie verwenden können
/usr/sbin/setsebool -P ftp_home_dir 1
damit ftp richtig funktioniert.
BEARBEITEN Wenn Sie noch einmal darüber nachdenken , ob die obigen Befehle die sind, die Sie wirklich eingegeben haben, dann sind
/var/ftp/pub/incomming
sie nicht vorhanden. Stellen Sie also sicher, dass dies der Fall ist, und versuchen Sie es erneut.quelle
Ist SE Linux aktiviert? Die Leute in diesem Forum konnten das Problem beheben, indem sie SE Linux deaktivierten.
http://rackerhacker.com/2007/06/14/500-oops-error-from-vsftpd/
quelle