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

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.


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.


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.


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.


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/


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.