Ich möchte eingehenden FTP-Verkehr zulassen.
CentOS 5.4:
Das ist meine /etc/sysconfig/iptables
Akte.
# Generated by iptables-save v1.3.5 on Thu Oct 3 21:23:07 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:14837]
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
COMMIT
# Completed on Thu Oct 3 21:23:07 2013
Außerdem wird standardmäßig das Modul ip_conntrack_netbios_n geladen.
#service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
Das Problem liegt aber nicht bei diesem Modul, da ich versucht habe, es zu entladen und immer noch kein Glück habe.
Wenn ich iptables deaktiviere, kann ich mein Backup von einem anderen Computer auf FTP übertragen. Wenn sich iptables durchsetzt, ist die Übertragung fehlgeschlagen.
quelle
--sport 1024: and --dport 1024:
bedeutet, dass wir alle Ports in den Bereich einschließen1024:32535
, die nicht privilegierte Ports sind, was bedeutet, dass Benutzer ohne privilegierten Zugriff diese Ports zum Testen ihrer Anwendungen verwenden können.--sport
jedoch einen nicht privilegierten Modus für private Firewall-Probleme verwenden und Clients eine Verbindung zum Server herstellen lassen.NEW,ESTABLISHED
aber das sollte keine Rolle spielen. Eine Verbindung ist zuerst immer in einemNEW
Zustand, dann springt sie zuRELATED
dem , was darauf hinweist, dass diese Verbindung mit einer bereits erlaubten Verbindung zusammenhängt. Wenn sich die Verbindung in denESTABLISHED
Status ändert, werden wir darüber informiert, dass auf beiden Seiten (Server / Client) eine Verbindung hergestellt wurde. Sie könnten es-m state --state ...
stattdessen versuchen .NEW
spielt ja eine Rolle. Ohne scheint es nicht zu funktionieren.--sport 1024:
. Warum ist der Port des Clients für die Regel nützlich? Wenn er eine Verbindung von einem Port 80 zu den passiven Ports des Servers herstellt, muss er ebenfalls eine Verbindung herstellen dürfen.Ich habe solche umfangreichen Regeln schon in mehreren Blogs etc. gesehen und mich gefragt, warum man sie nicht einfach einsetzt
zusammen mit dem
nf_conntrack_ftp
Modul. Dies ist prägnanter und lesbarer, was im Allgemeinen eine gute Sache ist, insbesondere bei Firewalls ...FWIW, scheint es , dass es eine Änderung im Kernel 4.7 war, so dass man entweder Notwendigkeit, Satz
net.netfilter.nf_conntrack_helper=1
übersysctl
(zB steckte es in/etc/sysctl.d/conntrack.conf
) oder Verwendung(siehe hier für mehr Details)
quelle
echo "1" > /proc/sys/net/netfilter/nf_conntrack_helper
und alles funktioniert wie erwartet.FTP-Client:
FTP-SERVER:
Umschalten zwischen passivem und aktivem Modus auf der Clientseite
quelle
Hinzufügen von NEW behoben, glaube ich.
Nun, meine Iptables-Datei sieht so aus ..
Tippen Sie es als Antwort ein, da zu viele Zeichen im Kommentar nicht erlaubt sind. Vielen Dank für Ihre Hilfe.
quelle
--dport 20:65535
dass alle Ports von 20 - 65535 von jedem Quellport zwischen 1024: 65535 offen gelassen werden, wodurch viele Dienste verfügbar gemacht werden, die wahrscheinlich nicht verfügbar sein sollten, es sei denn, dies ist ausdrücklich gestattet. Ich glaube, was beabsichtigt war, ist--dport 1024:65535
Wenn Sie sowohl aktive als auch passive Verbindungen benötigen und bereits
ESTABLISHED
Verbindungen akzeptieren , z.Dann müssen Sie nur noch Port 21 öffnen und eine Sonderregel für passive Ports hinzufügen. Für Port 20 ist keine Regel erforderlich, da diese bereits von der
ESTABLISHED
obigen Regel akzeptiert wird .Akzeptiere zuerst neue Verbindungen auf
port 21
:Fügen Sie dann den CT-Helfer für passive Ports hinzu
1024:
:Siehe auch:
Hinweis: Sie müssen
1024:
in Ihrem FTP-Server Folgendes einstellen : Suchen Sie in Ihrer FTP-Konfiguration nach den standardmäßigen passiven Ports. Andernfalls würden Sie zu viele Ports öffnen, die möglicherweise nicht mit FTP verwandt sind.Wichtiger Hinweis: Ich habe keine
OUTPUT
Regeln hinzugefügt , da meine Standardeinstellungen damit übereinstimmeniptables -P OUTPUT ACCEPT
. Das heißt, ich vertraue darauf, was aus meiner Box geht. Dies ist möglicherweise keine gute Option, insbesondere in einem NAT-Setup.Sehr wichtiger Hinweis: FTPS funktioniert bei einem solchen Setup nicht, da der passive Port verborgen (verschlüsselt) ist und daher keine Möglichkeit besteht
iptables
, den guten Port zu erraten. Siehe Ändern von IPTables, um FTP über TLS über passive Ports zuzulassen, und https://serverfault.com/questions/811431/are-my-iptables-for-ftps-with-tls-okquelle