Firewall blockiert FTP Verbindung obwohl zugelassen

3df

Registered User
Hallo zusammen,

ich habe auf meinem Server Debian 8 mit Plesk 12.5 installiert.

Als FTP Server ist ProFTPD installiert. Gestern schrieb mir jemand an, der sich auf den Server bzw. seinem Server-Account per FTP einloggen wollte. Er schrieb mir, dass er immer eine Zeitüberschreitung bekommt, ich habe es selber getestet, und auch ich bekomme die Zeitüberschreitung. Im Log konnte ich darüber nichts finden, jetzt habe ich aber bemerkt, dass die "Plesk"-Firewall wohl Probleme macht, wenn ich diese aktiviere, dann klappt die FTP-Verbindung. Sehr komisch, weil bei der Regel "FTP-Server" steht alles auf "Eingehend von alle zulassen".

Habt ihr eine Idee warum es mit der Firewall nicht funktioniert? Den FTP-Port habe ich nicht geändert.

Danke euch
 
Diese Pleskfirewall hat früher öfters ein seltsames Verhalten gezeigt. Ich hatte dann iptables selbst konfiguriert.

Und manche Clients wie Filezilla machen Probleme.
Und je nachdem ob Passive oder Active Mode, müssen die Regeln stimmen: Stichwort Portrange.

Wie sind denn bei iptables die Regeln?
 
Ich hatte das auch mal, obwohl die Firewall von Plesk nicht benutzt wurde. Die war von anfang an deaktiviert, bzw nicht installiert.
Bei mir kam der gleiche Fehler. Als einzige Lösung funktionerte das neustarten des ProFTP Dienstes.
Mittendrin war dann dieses Phänomen nicht mehr vorhanden, anscheinend wurde das durch ein Update dann behoben.
Als System setzte ich Ubuntu 14.04 mit Plesk 12.5.30 ein.
Teste mal einfach einen neustart vom FTP.
 
Hallo, sollte ich unter "Service-Verwaltung" nicht normal auch den ProFTPD-Dienst sehen, stoppen, starten und neu starten können?

Code:
#!/bin/bash
#ATTENTION!
#
#DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY,
#SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED.

set -e

echo 0 > /proc/sys/net/ipv4/ip_forward
([ -f /var/lock/subsys/ipchains ] && /etc/init.d/ipchains stop) >/dev/null 2>&1 || true
(rmmod ipchains) >/dev/null 2>&1 || true

apply_rule()
{
	iptables_bin="$1"
	shift

	iptables_version=`/sbin/iptables --version | awk -F '.' '{print $2$3}'`

	# Use the native --wait option since v1.4.20
	if [ $iptables_version -gt 420 ]; then
		$iptables_bin -w $@ 2>/dev/null
		return $?
	fi

	# Emulate --wait for elderly versions
	for i in `seq 10`; do
		$iptables_bin $@ 2>&1 | grep -q xtable || return 0
		sleep 1
	done

	return 1
}

/sbin/iptables-save  -t filter | grep -- "-A INPUT" |  grep -v "fail2ban-\|f2b-" | sed -e "s#^-A#apply_rule /sbin/iptables -D#g" | xargs -0 echo -e "`declare -f apply_rule`\n" | /bin/bash

apply_rule /sbin/iptables -F FORWARD
apply_rule /sbin/iptables -F OUTPUT
apply_rule /sbin/iptables -Z FORWARD
apply_rule /sbin/iptables -Z OUTPUT

apply_rule /sbin/iptables -P INPUT DROP
apply_rule /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp ! --syn  -m state --state NEW -j REJECT --reject-with tcp-reset
apply_rule /sbin/iptables -A INPUT -m state --state INVALID -j DROP
apply_rule /sbin/iptables -P OUTPUT DROP
apply_rule /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
apply_rule /sbin/iptables -A OUTPUT -p tcp ! --syn  -m state --state NEW -j REJECT --reject-with tcp-reset
apply_rule /sbin/iptables -A OUTPUT -m state --state INVALID -j DROP
apply_rule /sbin/iptables -P FORWARD DROP
apply_rule /sbin/iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
apply_rule /sbin/iptables -A FORWARD -p tcp ! --syn  -m state --state NEW -j REJECT --reject-with tcp-reset
apply_rule /sbin/iptables -A FORWARD -m state --state INVALID -j DROP

apply_rule /sbin/iptables -A INPUT -i lo  -j ACCEPT
apply_rule /sbin/iptables -A OUTPUT -o lo -j ACCEPT
apply_rule /sbin/iptables -A FORWARD -i lo -o lo -j ACCEPT

apply_rule /sbin/iptables -t mangle -F
apply_rule /sbin/iptables -t mangle -Z
apply_rule /sbin/iptables -t mangle -P PREROUTING ACCEPT
apply_rule /sbin/iptables -t mangle -P OUTPUT ACCEPT
apply_rule /sbin/iptables -t mangle -P INPUT ACCEPT
apply_rule /sbin/iptables -t mangle -P FORWARD ACCEPT
apply_rule /sbin/iptables -t mangle -P POSTROUTING ACCEPT


apply_rule /sbin/iptables -t nat -F
apply_rule /sbin/iptables -t nat -Z
apply_rule /sbin/iptables -t nat -P PREROUTING ACCEPT
apply_rule /sbin/iptables -t nat -P OUTPUT ACCEPT
apply_rule /sbin/iptables -t nat -P POSTROUTING ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 12443 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 11443 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 11444 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 8447 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 8443 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 8880 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 443 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 22 -j DROP

apply_rule /sbin/iptables -A INPUT -p tcp --dport 587 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 465 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 995 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 993 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 106 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 5432 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p tcp --dport 9008 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 9080 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p udp --dport 137 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p udp --dport 138 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 139 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 445 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p udp --dport 1194 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p udp --dport 53 -j ACCEPT
apply_rule /sbin/iptables -A INPUT -p tcp --dport 53 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -p icmp --icmp-type 8/0 -j ACCEPT

apply_rule /sbin/iptables -A INPUT -j DROP

apply_rule /sbin/iptables -A OUTPUT -j ACCEPT

apply_rule /sbin/iptables -A FORWARD -j DROP

echo 1 > /proc/sys/net/ipv4/ip_forward
#
# End of script
#
 
Es funktioniert nicht, ich kann hier keinen Code mehr schreiben, dann kommt immer die Meldung das ich geblockt bin?

Ich wollte schreiben welche Befehle ich eingegeben habe, und welche Meldung kommt, aber das Forum lässt mich nicht, warum?

Edit:

Ok, ich muss den Dienst so neu starten "/etc/init.d/xinetd restart". Aber das klappt leider auch nicht, wenn die Firewall aktiv ist, kann ich mich nicht Verbinden.
 
Last edited by a moderator:
/etc/init.d/xinetd stop
[ ok ] Stopping internet superserver: xinetd.

/etc/init.d/xinetd start
[ ok ] Starting internet superserver: xinetd.
 
Ja, habe ich dann auch bemerkt. Siehe einen über dir.

Durch den Neustart kann ich mich aber leider immer noch nicht verbinden, wenn die Firewall aktiv ist.
 
Wenn FTP über SSL benutzt wird, sollte man lieber Port 21 und FTPES nutzen.
Ich habe jedenfalls mit iptables und conntrack nicht hinbekommen, dass FTPS über 989/990 läuft.
 
Ich kann machen was ich will, sobald die Firewall eingeschaltet ist, kann ich mich nicht per FTP Verbinden. Auch im Passivem Modus nicht.
 
Gerne:

Code:
#
# To have more informations about Proftpd configuration
# look at : http://www.proftpd.org/
#

# This is a basic ProFTPD configuration file (rename it to 
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.

ServerName			"ProFTPD"
#ServerType			standalone
ServerType			inetd
DefaultServer			on

<Global>
DefaultRoot	~		psacln
AllowOverwrite		on
<IfModule mod_tls.c>
	# common settings for all virtual hosts
	TLSEngine on
	TLSRequired off

	TLSLog /var/log/plesk/ftp_tls.log

	TLSRSACertificateFile /opt/psa/admin/conf/httpsd.pem
	TLSRSACertificateKeyFile /opt/psa/admin/conf/httpsd.pem

	# Authenticate clients that want to use FTP over TLS?
	TLSVerifyClient off

	# Allow SSL/TLS renegotiations when the client requests them, but
	# do not force the renegotations.  Some clients do not support
	# SSL/TLS renegotiations; when mod_tls forces a renegotiation, these
	# clients will close the data connection, or there will be a timeout
	# on an idle data connection.
	TLSRenegotiate none

	# As of ProFTPD 1.3.3rc1, mod_tls only accepts SSL/TLS data connections 
	# that reuse the SSL session of the control connection, as a security measure.
	# Unfortunately, there are some clients (e.g. curl) which do not reuse SSL sessions. 
	TLSOptions NoSessionReuseRequired
</IfModule>
</Global>

DefaultTransferMode	binary
UseFtpUsers			on

TimesGMT			off
SetEnv TZ :/etc/localtime
# Port 21 is the standard FTP port.
Port				21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask				022

# 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

#Following part of this config file were generate by PSA automatically
#Any changes in this part will be overwritten by next manipulation 
#with Anonymous FTP feature in PSA control panel.

#Include directive should point to place where FTP Virtual Hosts configurations
#preserved

ScoreboardFile /var/run/proftpd.scoreboard

# Primary log file mest be outside of system logrotate province

TransferLog /var/log/plesk/xferlog

#Change default group for new files and directories in vhosts dir to psacln

<Directory /var/www/vhosts>
	GroupOwner	psacln
</Directory>

# Enable PAM authentication
AuthPAM on
AuthPAMConfig proftpd

IdentLookups off
UseReverseDNS off

AuthGroupFile	/etc/group

Include /etc/proftpd.d/*.conf
 
Back
Top