Anonymen Upload für Vsftpd zulassen?

7

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
user15318
quelle
mit chown_uploads sollten Sie auch chown_username
petrus
Jetzt bekomme ich "schlechten Bool-Wert in Konfigurationsdatei für: chown_uploads": - /
user15318
Schauen Sie, ob die Conf-Datei eine Art nicht sichtbares Zeichen enthält
Petrus
@ user15318: Die oben veröffentlichte vsftpd.conf funktioniert einwandfrei auf einem CentOS-System, das ich zur Hand habe. Gibt es relevante Nachrichten in / var / log / messages?
user9517
In der Tat gab es am Ende einen zusätzlichen Platz. Danke für den Tipp.
user15318

Antworten:

6

Sie haben ein Verzeichnis namens pub / upload erstellt :

# mkdir /var/ftp/pub/upload

Aber dann haben Sie Uploads so konfiguriert, dass sie in die Kneipe / den Eingang gehen :

anon_root=/var/ftp/pub/incoming

Es ist also eine einfache Pfadinkongruenz, der Rest scheint in Ordnung zu sein.

Alte Schule
quelle
1
  1. Ändern Sie für anonyme Anmeldungen das Home-Verzeichnis der "FTP" -Benutzer in /etc/passwd.

    ftp:x:119:131:ftp daemon,,,:/var/ftp/pub/:/bin/false
    
  2. Und fügen Sie dies Ihrer /etc/vsftpd.confDatei hinzu.

    allow_writeable_chroot=YES
    
  3. Stellen Sie sicher, dass der ftpBenutzer 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.

user206746
quelle
0

Sie haben wahrscheinlich userlist_deny=NOin Ihrer conf-Datei. Ändern Sie es in YESund stellen Sie sicher, dass der von Ihnen verwendete Benutzername nicht in /etc/vsftpd/user_listoder in ist /etc/vsftpd/ftpusers.

Kevin M.
quelle
0

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/incommingsie nicht vorhanden. Stellen Sie also sicher, dass dies der Fall ist, und versuchen Sie es erneut.

Iain
quelle
Vielen Dank für den Tipp, aber SELinux ist deaktiviert: # / usr / sbin / setsebool -P ftp_home_dir 1: "setsebool: SELinux ist deaktiviert."
user15318
-1

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/

Sameer
quelle
Vielen Dank für den Tipp, aber immer noch nicht möglich: SELinux ist deaktiviert und die Verzeichnis- / Dateiberechtigungen scheinen in Ordnung zu sein. Ich habe die Frage bearbeitet.
user15318
Das Deaktivieren von SELinux ist eine schlechte Idee, insbesondere wenn es blind verwendet wird, um ein Problem mit der Konfiguration zu "lösen".
ILMostro_7