vsftpd: ECONNREFUSED bei Verbindung von externer IP

vsftpd: ECONNREFUSED bei Verbindung von externer IP

Ich hatte viele Probleme, als ich mit der Einrichtung eines vsftpd-Servers begann, aber dieses Mal kann ich nicht genau herausfinden, was falsch ist.

Ich habe bei der Arbeit einen Ubuntu 14.04-Server, auf dem vsftpd läuft. Der Server befindet sich hinter einer Firewall in einer DMZ und hat eine spezifische interne und globale IP-Adresse zugewiesen bekommen. Die Verbindung vom lokalen Host sowie vom internen Netzwerk funktioniert.

Soweit so gut. Doch wenn ich versuche, über die globale IP-Adresse auf den FTP-Server zuzugreifen, sei es aus dem internen Netzwerk oder von woanders, gibt FileZilla nur Folgendes aus:

Status:         Connecting to <global.ip>:21...
Status:         Connection attempt failed with "ECONNREFUSED - Connection refused by server".
Error:          Could not connect to server

Eine falsche IP-Adresse kann ich als Ursache ausschließen, da die Eingabe einer nicht existierenden IP zu einem Timeout-Fehler führt und ich durch eine Whois-Prüfung der globalen IP den Internet-Serviceprovider unseres Unternehmens erhalte.

Ich habe die passiven Ports im Bereich 50.000 in der vsftpd.conf eingerichtet, außerdem leitet die Firewall Anfragen weiter, die von den Ports 20, 21 und 50.000-50.050 kommen. Dann habe ich der iptables-Konfiguration noch ein paar Regeln hinzugefügt, um den gewünschten Datenverkehr durchzulassen.

Als Referenz ist hier mein iptables-Setup:

~$ sudo iptables -L

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere
tcp dpts:50000:50050
ACCEPT     tcp  --  anywhere             anywhere
tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere
tcp dpt:ftp

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere
tcp spt:ftp-data

Und meine vsftpd.conf:

listen=YES
local_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
ftpd_banner=Welcome
chroot_local_user=YES
ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_ciphers=HIGH

rsa_cert_file=/home/awacs/vsftp.crt
rsa_private_key_file=/home/awacs/vsftp_clear.key

#pasv_address=<global.ip>
pasv_min_port=50000
pasv_max_port=50050
listen_port=21
pasv_enable=YES
#listen_address=<global.ip>

Wie Sie sehen, habe ich die Parameter pasv_addressund listen_addressin der Konfiguration ausprobiert. listen_address führt dazu, dass der Server nur Anfragen von der globalen IP-Adresse entgegennimmt und deshalb überhaupt nicht antwortet. Das Setzen von pasv_address war ebenfalls unbefriedigend, da externe Anfragen immer noch nicht funktionierten und Verbindungen aus dem internen Netzwerk beim Verzeichnis-LIST-Befehl hängen blieben.

Wenn mir jemand sagen kann, was ich falsch gemacht oder übersehen habe, wäre ich mehr als glücklich. Ich betone noch einmal, dass der Server vom internen Netzwerk aus einwandfrei funktioniert, ich aber keine Verbindung über die globale IP herstellen kann. Vielen Dank im Voraus.

verwandte Informationen