VSFTPD vs ProFTPD

nhi

Lt. Commander
Registriert
Dez. 2010
Beiträge
1.146
Hallo,

Ich nachdem mir vor ca. einer Woche hier super zu meinem Problem mit dem SMB-Server geholfen wurde, habe ich jetzt eine Frage zu FTP.

Und zwar würde ich auf meinem Ubuntu-Server gerne einen FTP-Server installieren. Jetzt stellt sich de Frage: VSFTPD oder ProFTPD? Ich habe beide mal kurz auf einer VM angeschaut, meiner Meinung nach sind die in der Konfiguration recht ähnlich. Mir persönlich gefällt VSFTPD besser. Aber welche Vorteile bieteten die beiden Programme?

Die Zweite Frage: Ich habe beide FTP-Server zum laufen gebracht, zumindest laut Linux. Der Zugriff aus dem Internet klappt aber irgendwie nicht so richtig.

Ich habe Port 20 und 21 freigegeben und die IP-Weiterleitung für die VM aktiviert. Für den Zugriff habe ich es mit der IP-Adresse versucht, mit http://ipadresse, mit ipadresse:21 sowie mit http://ipadresse:21. Jedoch bringe ich keine Verbindung zustande. Was könnte falsch sein?

Gruss

Shilzarion
 
versuch mal "ftp://" statt "http://" ;)
 
ProFTPD hat viel mehr Konfigurationsmöglichkeiten und man muss diese auch ntuzen sonst stehen die Scheunentore offen, VSFTPD kommt schon ohne große Konfiguration aus und ist dann sehr robust und sicher.

Wenn du dich mit der Konfiguration nicht so auskennst oder dich nicht tief reinfuchsen willst, empfehle ich VSFTPD. Solange du keine speziellen Konfigurationen benötigst, reicht dieser und ist schnell.
 
FTP ist ein altes und schlechtes Protokoll welches mit NAT und damit praktisch allen Consumerroutern nicht gut klarkommt.
Nutze bitte sftp für private Dateitransfers und http für öffentliche/anonyme. Einfacher und sicherer.
http://mywiki.wooledge.org/FtpMustDie

Dein ssh daemon macht sftp "by default" in fast allen Linux Distros.
 
Dritte Option: Pure-FTP. Relativ kompakte Konfiguration und, in Verbindung mti einer Datenbank, problemlos in der Lage, virtuelle User zu verwalten.

Übrigens: Spätestens durch die Option, wirklich entspannt virtuelle User anlegen zu können, ist FTP/FTPS deutlich nützlicher als SFTP. Da muss man sich nicht erst mit 1001 PAM-Plugin herumkloppen. Und NAT... komisch, bisher hat das immer geklappt bei mir. Port Redirection macht jeder nicht-triviale (aka von der Telekom stammende) Router problemlos mit.
 
Normale Port Redirection reicht aber nicht weil FTP die Ports dynamisch nutzt. Sobald beide Gegenstellen hinter NAT sind was heutzutage die Regel ist, reicht sie nicht mehr aus. Linux hat ein extra Netfilter module deswegen, meist funktioniert es aber eben nicht immer. Siehe mein obiger Link.
 
Ich habs jetzt mal mit VSFTPD versucht, ne Verbindung krieg ich aber einfach nicht hin... Ich habe mitlerweile auch die Ports 20000-21000 für passives FTP geöffnet (sind das die Richtigen? Beim Thecus-NAS ists so)
 
Von wo aus versuchst du es? Aus dem eigenen LAN heraus? Evtl. kann dein Router einfach kein Loopback, dann krepierts so oder so.
 
Ja ich versuche es vim Lappi aus aber natürlich mit der Internet also nicht der lokalen IP.
 
Ich meinte eigentlich: Stehen Server und Client in deinem heimischen LAN und du versuchst vom Client aus über deine öffentliche IP (und Port Redirection) auf den Server zuzugreifen? Genau da tritt das Loopback-Problem auf. Hier wäre die einfachste Lösung: Richte n User+PW ein und frag n Kumpel, ob er mal schnell testen kann. Hab ich früher auch nicht anders gemacht, wenn ich zuhause für irgendwas mal eben einen FTP anwerfen musste.

Wenn der Server hingegen in irgend einem RZ steht und du nur die Hardware anmietest... wie gesagt, probier mal Pure-FTPd, vor allem die Versionen mit externer Authentifizierung (pure-ftpd-mysql, pure-ftpd-postgresql, pure-ftpd-ldap).
 
Ok dann werd ich jemand fragen, Server und Client sind beide im gleichen LAN.

Noch eine Frage: Kann es sein dass ein DynDNS-Account zwingend ist, und es nicht reicht einfach die IP des Routers einzugeben und eine IP-Weiterleitung zu aktivieren?
 
Nö, DynDNS-Dienste sind vollkommen optional, außer du betreibst einen Webserver mit VHosts. Apache mit VHosts reagiert nur auf Domainnamen. Bei FTP ist mir so etwas nie untergekommen.
 
Ok ich hab es nun mit meinem Handy-Hotspot versucht, funktioniert nicht. Lokal mit der lokalen IP funktionierts nur übers Internet halt nicht.
 
also ich hab auf meinem Raspberry Pi Proftpd und einen Siemens SE551 Router. Port 20 und 21 sind als TCP freigegeben.

Ich hab folgendes Unternommen

etc/proftpd/proftpd.conf mit nano als root geöffnet
Default Required Shell auf off gestellt und die Raute davor entfernt
Group hab ich glaub ich auch geändert, bin mir aber nicht sicher. in der config kannst du ja umstellen in welcher Gruppe die User sein müssen damit sie sich einloggen können
bei Default Root Raute davor entfernt

die /etc/shells mit nano editiert bzw. folgenden Eintrag geaddet

/bin/false

Danach musst du im ftp Verzeichnis einen ordner anlegen und einen user mit der /bin/false shell und dem Home Verzeichnis adden das du erstellt hast.

Meine proftpd.conf

Code:
#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
# 

# Includes DSO modules
Include /etc/proftpd/modules.conf

# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6				on
# If set on you can experience a longer connection delay in many cases.
IdentLookups			off

ServerName			"Debian"
ServerType			standalone
DeferWelcome			off

MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on

TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200

DisplayLogin                    welcome.msg
DisplayChdir               	.message true
ListOptions                	"-la"

DenyFilter			\*.*/

# Use this to jail all users in their homes 
DefaultRoot			~

# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell		off

# Port 21 is the standard FTP port.
Port				21

# In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts                  49152 65534

# If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress		1.2.3.4

# This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
<IfModule mod_dynmasq.c>
# DynMasqRefresh 28800
</IfModule>

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances			10

# Set the user and group that the server normally runs at.
User				proftpd
Group				ftp

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask				022  022
# Normally, we want files to be overwriteable.
AllowOverwrite			on

# Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd		off

# This is required to use both PAM-based authentication and local passwords
# AuthOrder			mod_auth_pam.c* mod_auth_unix.c

# Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile			off

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

# Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on

# In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime.  If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or <Anonymous>), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>


# Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default. 
<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf

#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf

#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.conf

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
#   User				ftp
#   Group				nogroup
#   # We want clients to be able to login with "anonymous" as well as "ftp"
#   UserAlias			anonymous ftp
#   # Cosmetic changes, all files belongs to ftp user
#   DirFakeUser	on ftp
#   DirFakeGroup on ftp
# 
RequireValidShell		off
# 
#   # Limit the maximum number of anonymous logins
#   MaxClients			10
# 
#   # We want 'welcome.msg' displayed at login, and '.message' displayed
#   # in each newly chdired directory.
#   DisplayLogin			welcome.msg
#   DisplayChdir		.message
# 
#   # Limit WRITE everywhere in the anonymous chroot
#   <Directory *>
#     <Limit WRITE>
#       DenyAll
#     </Limit>
#   </Directory>
# 
#   # Uncomment this if you're brave.
#   # <Directory incoming>
#   #   # Umask 022 is a good standard umask to prevent new files and dirs
#   #   # (second parm) from being group and world writable.
#   #   Umask				022  022
#   #            <Limit READ WRITE>
#   #            DenyAll
#   #            </Limit>
#   #            <Limit STOR>
#   #            AllowAll
#   #            </Limit>
#   # </Directory>
# 
# </Anonymous>

# Include other custom configuration files
Include /etc/proftpd/conf.d/

meine /etc/shells

Code:
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/false

dann noch mit
Code:
service proftpd restart
das ganze neu starten

Die Routine wenn du einen neuen Benutzer anlegst.

adduser neueruser -shell /bin/false -home /dein/verzeichnis
adduser neueruser ftpgruppe
chown -R neueruser:neueruser /dein/verzeichnis
chmod -R 770 /dein/verzeichnis

Beispiel bei meinem Raspberry Pi mit deinem Forumnamen

mkdir /media/ext/ftp/shilzarion
adduser shilzarion -shell /bin/false -home /media/ext/ftp/shilzarion
Passwortabfrage 2x mit dem Passwort deiner Wahl (Eingabe+Bestätigung wegen Tippfehler)
Die anderen Abfragen wie Zimmernummer, Telefonnummer usw überspringst du mit paar mal Enter dann J bei der Frage ob die Informationen korrekt sind
adduser shilzarion ftp
chown -R shilzarion:shilzarion /media/ext/ftp/shilzarion
chmod -R 770 /media/ext/ftp/shilzarion

Voila erledigt, du kannst dich mit jedem x beliebigen Clienten (Filezilla, Windows GUI, cmd, AndFTP für Android usw.)

Edit: User löschen geht mit userdel shilzarion
User sperren mit usermod -L shilzarion
User entsperren mit usermod -U shilzarion
 
Danke euch allen. Es hat nun geklappt! Es lag daran das mein Test-FTP Server auf einer VM war, das hat irgendwie nicht funktioniert. Auf einem physikalischen Rechner funktionierts. Irgendwie klappt die IP-Weiterleitung auf eine VM nicht.

Vielen Dank

Gruss

Shilzarion
 
Zuletzt bearbeitet:
Shilzarion schrieb:
Irgendwie klappt die IP-Weiterleitung auf eine VM nicht.
Die IP deiner VM sitzt auch in einem virtuellen SubNetz, das der Router (von dem aus deine Verbindung ja kommt) erst mal nicht sieht.
Du musst im Routing deines Rechners das Subnetz der VM eintragen und auch dem Router die Route hierzu bekannt geben.
 
Nciht zwingend. Man kann z.B. VirtualBox auch so einstellen, dass die VM regulär im Subnet auftaucht und ne IP per DHCP bekommt.
 
Daaron schrieb:
Nciht zwingend. Man kann z.B. VirtualBox auch so einstellen, dass die VM regulär im Subnet auftaucht und ne IP per DHCP bekommt.

sry wenn ich da reinrede aber ist das überhaupt funktionstüchtig dann? Weil DHCP = immer eine andere IP Adresse. In jedem Router den ich bis jetzt gesehen habe kann man Ports freigeben aber nur für eine bestimmte IP Adresse. Mein Raspberry z.b hat 192.168.2.102 und für diese IP Adresse ist z.b Port 20-21 freigegeben. Hätte mein Raspberry am nächsten Tag *.103 anstatt *.102 wäre Port 20-21 schon wieder blockiert da das ganze ja nur mit *.102 funktioniert.

Mehr Sinn machen würde wenn es geht eine Virtuelle MAC Adresse. Diese gibst du in deinem Router ein und weißt damit eine fixe IP Adresse zu. Das ganze dann auch noch in der /etc/network/interfaces festlegen

iface br0 inet static
address 192.168.2.102
netmask 255.255.255.0
gateway 192.168.2.1

Bei dir gehört statt br0 höchstwahrscheinlich eth0 (Kabelgebunden), wlan0 (WLAN) oder usb0 (Internet über USB wie z.b ein Handy mit USB Tethering)

Das ganze ist nur ein Gedankenspiel von mir. Obs überhaupt funktionstüchtig bzw. realisierbar ist weiß ich nicht^^
 
Hi,

Weil DHCP = immer eine andere IP Adresse.

Die Annahme ist schlicht nicht korrekt, in der Regel merkt sich ein DHCP die Geräte, die schon einmal angemeldet waren und vergibt dort wieder die selbe Adresse, wenn es sich neu anmeldet, solange noch freie IPs aus der DHCP Range vergeben werden können.

VG,
Mad
 
Madman1209 schrieb:
Hi,



Die Annahme ist schlicht nicht korrekt, in der Regel merkt sich ein DHCP die Geräte, die schon einmal angemeldet waren und vergibt dort wieder die selbe Adresse, wenn es sich neu anmeldet, solange noch freie IPs aus der DHCP Range vergeben werden können.

VG,
Mad

Ahh ok, gibts da nicht eine Einstellung die regelt wie lange das gespeichert wird?

Bei mir sieht das ganze so aus.

Ok glaub genau das Gegenteil ist der Fall. Kein DHCP = IP Adressen werden nicht gemerkt. Bin verwirrt jetzt xD
 

Anhänge

  • Unbenannt.JPG
    Unbenannt.JPG
    161,2 KB · Aufrufe: 379
  • 2.JPG
    2.JPG
    348,5 KB · Aufrufe: 389
Zuletzt bearbeitet:
Zurück
Oben