vsftpd Version 2.0.7 installieren

shor

Active Member
Hallo!

Der vsftpd hat einen Bug, welcher es verhindert, dass man sich mit Filezilla damit verünftig verbinden kann (Es dreht sich hier um einen Fehler in der Implementierung von SSL, genau krieg ich es auch nicht mehr zusammen. Siehe hier: http://forum.filezilla-project.org/viewtopic.php?f=2&t=7702. ) Um diesen Bug zu beheben, muss ich vsftpd 2.0.7 installieren. Leider ist dieser nicht als Package und nicht als Port (zumindest nicht im stable Port von 4.5) vorhanden, hier gibt es nur 2.0.5.

Was wäre denn der beste Weg den vsftpd zu updaten?

Gruß,
shor
 
Was wäre denn der beste Weg den vsftpd zu updaten?

Der Port sieht doch recht straightforward aus, da sollte sich auch der -current Port unter 4.5 bauen lassen, und dann hast Du gleich vsftpd-2.1.0.

Code:
cd /usr/ports/net/vsftpd && cvs -q up -dPA && make install clean
 
Hallo,

ich hatte das bisher nicht in Betrach gezogen, da es ja immer heißt man soll den current-port nicht mit nem stable-release mischen. Jedenfalls baut er trotzdem... und ich bin bei nem anderen Fehler gelandet...

Woran hast Du das den festgemacht, dass der port recht straightforward aussieht?

vsftpd mit SSL & FileZilla mögen sich wohl irgendwie nicht...
 
Hallo,

ich hatte das bisher nicht in Betrach gezogen, da es ja immer heißt man soll den current-port nicht mit nem stable-release mischen.

Es ist nicht supported, d.h. wenn's schief geht, bist Du auf Dich selbst gestellt. Das heisst aber nicht, dass es bei einfachen Ports nicht trotzdem funktioniert.

Jedenfalls baut er trotzdem... und ich bin bei nem anderen Fehler gelandet...

Was denn fuer ein Fehler?

Woran hast Du das den festgemacht, dass der port recht straightforward aussieht?

Ich habe mir das Makefile und die PLIST des Ports angesehen ;-)

Und da ist nichts drin, was irgendwie Probleme erwarten liesse. Insbesondere hat vsftp keine Abhaengigkeiten zu anderen Ports, sondern nur zu Libraries im Basissystem, es werden keine besonderen Funktionen aus bsd.port.mk verwendet, und das Ding hat auch einen "ordentlichen" PKGNAME (Ports und die pkg-Tools sind in der juengeren Vergangenheit etwas pingeliger geworden, wenn's um Packagenamen geht).
 
Ich hab mir das auch mal angeschaut, bin neugierig :D ...

Insbesondere hat vsftp keine Abhaengigkeiten zu anderen Ports, sondern nur zu Libraries im Basissystem

Ich denke mal das schließt Du daraus:
Code:
WANTLIB=                c crypto util ssl wrap

es werden keine besonderen Funktionen aus bsd.port.mk verwendet

Also so, wie ich das sehe wird das wohl inkludiert. Woran sieht man dass keine Funktionen daraus verwendet werden? Was sind besondere Funktionen aus bsd.port.mk?
es werden keine besonderen Funktionen aus bsd.port.mk verwendet
Code:
.include <bsd.port.mk>

Aus der PLIST hab ich entnommen, dass der Port nur ein Binary und sonst nur Docs kopiert, es werden also keine zusätzlichen Libraries o.ä. installiert, richtig?



Nun zum Fehler:
Ich betreibe vsftpd mit SSL-Verschlüsselung des Kommando- und Datenkanals. Wenn ich mit FileZille versucht mich zu verbinden (FTPES) dann spuckt das Log folgendes aus:

Code:
Status:	Auflösen der IP-Adresse für my.funky.ftp
Trace:	ControlSocket.cpp(1056): CRealControlSocket::ContinueConnect(0xa1738f8) m_pEngine=0x9fba7a8   caller=0xa330100
Status:	Verbinde mit 11.22.33.44:62345...
Status:	Verbindung hergestellt, warte auf Willkommensnachricht...
Trace:	CFtpControlSocket::OnReceive()
Antwort:	220 Welcome to My Funky FTP. Enjoy your stay!
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	AUTH TLS
Trace:	CFtpControlSocket::OnReceive()
Antwort:	234 Proceed with negotiation.
Status:	Initialisiere TLS...
Trace:	CTlsSocket::Handshake()
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	USER me
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	CTlsSocket::OnRead()
Trace:	CTlsSocket::Handshake()
Trace:	Handshake successful
Trace:	Cipher: 3DES-CBC, MAC: SHA1
Status:	Überprüfe Zertifikat...
Status:	TLS/SSL-Verbindung hergestellt.
Trace:	CFtpControlSocket::OnReceive()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	331 Please specify the password.
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	PASS **********
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	230 Login successful.
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	SYST
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	215 UNIX Type: L8
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	FEAT
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	211-Features:
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 AUTH SSL
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 AUTH TLS
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 EPRT
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 EPSV
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 MDTM
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 PASV
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 PBSZ
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 PROT
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 REST STREAM
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 SIZE
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 TVFS
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	 UTF8
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	211 End
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	OPTS UTF8 ON
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	200 Always in UTF8 mode.
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	PBSZ 0
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	200 PBSZ set to 0.
Trace:	CFtpControlSocket::SendNextCommand()
Befehl:	PROT P
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	200 PROT now Private.
Status:	Verbunden
Trace:	CFtpControlSocket::ResetOperation(0)
Trace:	CControlSocket::ResetOperation(0)
Status:	Empfange Verzeichnisinhalt...
Trace:	CFtpControlSocket::SendNextCommand()
Trace:	CFtpControlSocket::ChangeDirSend()
Befehl:	PWD
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	257 "/"
Trace:	CFtpControlSocket::ResetOperation(0)
Trace:	CControlSocket::ResetOperation(0)
Trace:	CFtpControlSocket::ParseSubcommandResult(0)
Trace:	CFtpControlSocket::ListSubcommandResult()
Trace:	  state = 1
Trace:	CFtpControlSocket::SendNextCommand()
Trace:	CFtpControlSocket::TransferSend()
Trace:	  state = 1
Befehl:	TYPE I
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	200 Switching to Binary mode.
Trace:	CFtpControlSocket::TransferParseResponse()
Trace:	  code = 2
Trace:	  state = 1
Trace:	CFtpControlSocket::SendNextCommand()
Trace:	CFtpControlSocket::TransferSend()
Trace:	  state = 2
Befehl:	PASV
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Trace:	CTlsSocket::OnRead()
Trace:	CFtpControlSocket::OnReceive()
Antwort:	227 Entering Passive Mode (11,22,33,44,255,223).
Trace:	CFtpControlSocket::TransferParseResponse()
Trace:	  code = 2
Trace:	  state = 2
Trace:	CFtpControlSocket::SendNextCommand()
Trace:	CFtpControlSocket::TransferSend()
Trace:	  state = 4
Befehl:	LIST
Trace:	CFtpControlSocket::OnReceive()
Fehler:	Zeitüberschreitung der Verbindung
Trace:	CFtpControlSocket::ResetOperation(2114)
Trace:	CControlSocket::ResetOperation(2114)
Trace:	CFtpControlSocket::ResetOperation(2114)
Trace:	CControlSocket::ResetOperation(2114)
Fehler:	Verzeichnisinhalt konnte nicht empfangen werden

Ich versuch gerade herauszufinden woran das liegt...

Gruß,
shor
 
Na toll :) So wie es aussieht ignoriert FileZilla den Portbereich, welchen ich in der vsftpd.conf für PASV angegeben habe.

Und dazu kommt, dass ich folgende Änderungen vor dem Bauen des Ports vornehmen müsste:

When compiling vsftpd there is a parameter "tunable_require_ssl_reuse" in tunables.c file, this should be turned to '0' if u do not want to enable this option. In vsftpd.conf there is a parameter as well "require_ssl_reuse" which is by default set to YES, this should also be set to NO to disable this.

Quelle: http://www.linuxquestions.org/questions/linux-server-73/vsftpd-ssl-problem-522-ssl-connection-failed-698874/

Wie bekomme ich das denn in den Port gebacken?
 
Was für eine Odyssee... diesmal lags an FileZilla. Der kam nicht mit SSL Session Reuse klar. Zumindest nicht in der Version, die mir zur Verfügung steht.

Dies lässt sich (Vorsicht: Sicherheitsrisiko!) durch folgenden Eintrag in der vsftpd.conf beheben:
Code:
require_ssl_reuse=NO

Klappe zu, Affe tot! :D
 
Zurück
Oben