Einrichtung FTP-Server (proftpd)

T

talos89

Grünschnabel
Unter der Anleitung des großartigen Tutorials von Tim Bornmann (-->Link) richtete ich heute meinen ersten Debian-Sarge-Server auf einem dezidierten Server ein.
Als Neuling wurde streng auf copy&paste geachtet!
Apache, PHP, MySQL, VirtuelleHosts (+SSL-Verschlüsselung) funktionieren meiner Meinung nach.
Das Problem trat beim erstellen des FTP Servers auf (copy&paste aus diesem Tutorial --> Link)

Mein FTP-Client reagiert letztlich:
Error: Could not connect to server
Error: Server unexpectedly closed network connection
(aktuelles Filezilla)

Hier nun mögliche Hinweise, die mich leider nicht zum gewünschten Ziel führen:

Code:
lvps:~# proftpd -n
lvps.hosteurope.de - Failed binding to 0.0.0.0, port 21: Address already in use
lvps.hosteurope.de - Check the ServerType directive to ensure you are configured correctly.


ps aux | grep ftp
~# ps aux | grep ftp
root 22172 0.0 0.0 4000 1124 ? Ss 19:13 0:00 proftpd: (accepting connections)
root 15816 0.0 0.0 1548 472 pts/1 S+ 20:25 0:00 grep ftp


netstat -tunp
~# netstat -tunp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 [server-ip]:22 [ip#1]:38602 SYN_RECV -
tcp 0 0 [server-ip]:22 [ip#2]:52360 ESTABLISHED22117/0
tcp 1 1 [server-ip]:22 [ip#1]:38436 LAST_ACK -
tcp 0 248 [server-ip]:22 [ip#2]:55839 ESTABLISHED11361/1


Ftp-Neustart:
~# /etc/init.d/proftpd restart
Restarting ProFTPD ftp daemon.proftpd.
..proftpd.
done.

Portscan:
# nmap
Interesting ports on [server-ip]:
Not shown: 1676 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
53/tcp open domain
8443/tcp open https-alt

Nmap finished: 1 IP address (1 host up) scanned in 1810.202 seconds
localhost:/home/talos#


cat proftp.conf (auskommentiert und laut Tutorial editiert)
~# cat /etc/proftpd.conf
#
# /etc/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#

# ServerName "Debian"
# ServerType inetd
# DeferWelcome off

# MultilineRFC2228 on
# DefaultServer on
# ShowSymlinks on

# TimeoutNoTransfer 600
# TimeoutStalled 600
# TimeoutIdle 1200

# DisplayLogin welcome.msg
# DisplayFirstChdir .message
# ListOptions "-l"

# DenyFilter \*.*/

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

# Uncomment this if you would use TLS module:
#TLSEngine on

# Uncomment this if you would use quota module:
#Quotas on

# Uncomment this if you would use ratio module:
#Ratios on

# Port 21 is the standard FTP port.
# Port 21

# 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 30

# Set the user and group that the server normally runs at.
# User nobody
# Group nogroup

# 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

# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
#DelayEngine off

# A basic anonymous configuration, no upload directories.

DefaultRoot ~ ftpuser

<Limit LOGIN>
DenyGroup !ftpuser !ftpprouser
</Limit>

<Global>
RootLogin off
RequireValidShell on
</Global>

UseReverseDNS off
IdentLookups off

# <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
# DisplayFirstChdir .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>


Schande auf mich, wenn wieder das übliche RTFM kommt!
Nächstes Mal wird's halt besser! und danke für die Antworten!

gruß an alle
 
Zuletzt bearbeitet:
Scheinbar war das heut genug, wenn ich den Hinweis ni mehr erfolgreich einbauen kann.

Ich fügte (mit und ohne ":21" in die /etc/proftpd.conf:

Code:
ServerName ftp.[I]domäne.de[/I] (bzw. auch [I]server-ip:21[/I]
DefaultAddress [I]die_server_ip[/I]

und trotzdem wird dem Ftp-Clienten noch der Zugang verwehrt.

:think:
 
Welche Fehlermeldung kommt beim Start? Immer noch die gleiche?
 
Filezilla antwortet:
Could not connect to server

Anderen Fehlermeldungen wie oben.

Ich lasse nun folgendes trotzdem ohne Raute:
ServerName ftp.domäne.de
DefaultAddress server-ip

Ist es richtig, das hier das 0.0.0.0 die eigentliche Addresse für proftp wäre?
c# proftpd -n
- setting default address to server-ip
server-ip - Failed binding to 0.0.0.0, port 21: Address already in use
server-ip - Check the ServerType directive to ensure you are configured correctly.

vielen dank!
 
Ja, 0.0.0.0 musst du durch die IP des Servers ersetzen.

Was meinst du "ohne #"? Natürlich muss JEDE Konfigurationseinstellung OHNE Raute sein...

Bist du sicher dass du weißt was du tust?
 
Soweit kenn ich mich da mit Debian schon aus. Hab's seit Jahren, nur nutze ich überwiegend bevorzugt die guis. Natürlich kenn ich nicht die Handbücher, und auch Server-Aufsetzen is ni mein Tagesgeschäft.

Daher weiß ich natürlich, das die # auskommentiert - war vielleicht etwas unbeholfen formuliert!
(Ich wollte nur den aktuellen Stand meiner .config wiedergeben)
 
Beim starten von ProFTPD im Debug Modus kommt diese Fehlermeldung:

Failed binding to 0.0.0.0, port 21: Address already in use

Was bedeutet das ? Nun, zunaechst einmal lauscht ein anderer Dienst auf dem Port 21, daher kann ProFTPD diesen nicht fuer sich beanspruchen. Dieses kann verschiedene Gruende haben:

1) ProFTPD ist falsch konfiguriert und der Servertype ist z.B. Standalone ,wenn er aus Inetd gestarten wird, oder (haeufiger) der Servertype steht auf Inetd und ProFTPD wird jedoch von der console direkt gestarter. In beiden Faellen ist natuerlich die Einstellung zu korrigieren.

2) Ein anderer Dienst laueft bereits auf Port 21 und hat diesen in Beschlag genommen. Dieses kann man unter Linux wie folgt herausfinden:

webserver:~ # fuser -n tcp 21

21/tcp: 3191

webserver:~ # ps aux | grep 3191

nobody 3191 0.0 0.5 2656 1260 ? S 15:17 0:00 proftpd: (accepting connections)

root 3197 0.0 0.1 1396 476 pts/0 R 15:18 0:00 grep 3191

webserver:~ #

Zunaechst fragen wir mit dem Befehl "fuser" den Dienst ab, der auf Port 21 den TCP Dienst belegt. In diesem Beispiel ist dass das Programm mit der pid

"3191". Im naechsten Schritt fragen wir, wie das Programm mit der Pid "3191" heisst: in diesem Falle also ProFTPD.

Haeufig verweisst diese Vorgehensweise auf inetd oder xinetd. In diesem Falle muss man die inetd.conf bzw. xinetd.conf bearbeiten und den FTP Dienst entfernen. Anschliessend muss dann der Dienst neu gestartet werden (kill -SIGHUP "pid" von dem Prozess), damit die Config neu eingelesen wird. Anschliessend kann man sich wieder mit "fuser" vergewissern, ob Port 21 wirklich frei ist. Ist das der Fall kann man ProFTPD starten.

Quelle: http://www.proftpd.de/FAQ.15.0.html
 

Ähnliche Themen

Nginx als Reverse Proxy für Nextcloud und Emby

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

Email via script via Exchange Server (SASL)

Senior System & Network Admin in Berlin

X startet nichtmehr

Zurück
Oben