FTP Port ändern -> iptables

Hallo zusammen,

ich möchte gerne den Port meines FTP Server ändern.
Er läuft im passiv Modus, also ist ftp-data ja uninteressant, richtig?

Derzeicht habe ich folgende iptables Regel:
Code:
-A INPUT -p tcp -m multiport --dports 10021,20 -j ACCEPT

Nun kann ich mir aber leider immer noch nicht den Verzeichnisinhalte anzeigen lassen.
Welche Regel oder Welcher Port fehlt hier denn noch?

Ich nutze vsftpd auf CentOS 5.4

Gruß & Danke
Pascal
 
Genau das habe ich ja gemacht. Ich muss ja aber noch die iptables entsprechend konfigurieren.

Wenn diese nicht laufen ist der FTP über den anderen Port erreichbarbar. Sind die iptables gestartet kann ich mich über den neuen Port zwar einloggen, bekomme aber keine Dateien angezeigt.

muss denn eine ausgehende Regel definiert sein? im passiv Modus doch eigentlich nicht, oder?

Gruß Pascal
 
Danke für die Antwort.

Das sagt netstat -tulpe:
Code:
[root@h1234567 ~]# netstat -tulpe
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       Benutzer   Inode      PID/Program name
tcp        0      0 *:smtp                      *:*                         LISTEN      root       111413625  7722/master
tcp        0      0 *:imaps                     *:*                         LISTEN      root       111413609  1371/dovecot
tcp        0      0 *:pop3s                     *:*                         LISTEN      root       111413611  1371/dovecot
tcp        0      0 *:10021                     *:*                         LISTEN      root       309310353  3988/vsftpd
tcp        0      0 localhost.localdomain:10024 *:*                         LISTEN      root       111413624  7629/amavisd (maste
tcp        0      0 localhost.localdomain:10025 *:*                         LISTEN      root       111413677  7722/master
tcp        0      0 *:mysql                     *:*                         LISTEN      mysql      220411442  3220/mysqld
tcp        0      0 *:submission                *:*                         LISTEN      root       111413669  7722/master
tcp        0      0 *:pop3                      *:*                         LISTEN      root       111413610  1371/dovecot
tcp        0      0 *:imap                      *:*                         LISTEN      root       111413608  1371/dovecot
tcp        0      0 localhost.localdomain:10031 *:*                         LISTEN      root       111413606  9518/policyd
tcp        0      0 *:sieve                     *:*                         LISTEN      root       111413607  9624/python
tcp        0      0 *:smtps                     *:*                         LISTEN      root       111413671  7722/master
tcp        0      0 *:smtp                      *:*                         LISTEN      root       111413626  7722/master
tcp        0      0 *:https                     *:*                         LISTEN      root       309725168  8043/httpd
tcp        0      0 *:10022                     *:*                         LISTEN      root       309701150  7984/sshd
tcp        0      0 *:submission                *:*                         LISTEN      root       111413670  7722/master
tcp        0      0 *:http                      *:*                         LISTEN      root       309725163  8043/httpd
tcp        0      0 *:smtps                     *:*                         LISTEN      root       111413672  7722/master

Ein Neustart des Dienstes schafft leider keine Abhilfe. Filezilla hängt bei dem List Befehl.
SFTP ist kein Problem, hier habe ich auch den Port geändert...also muss ja irgendwas mit meiner Regel nicht stimmen, oder?

Gruß Pascal
 
Last edited by a moderator:
Code:
tcp        0      0 *:10021                     *:*                         LISTEN      root       309310353  3988/vsftpd
Also vsftp ist auf dem richtigen port.

Filezilla hängt bei dem List Befehl.
Das liegt nicht am FTP-Port (wenn er nicht verbinden koennte dann wuerde er nie bis LIST kommen da zuvor die Login-Kommandos korrekt abgearbeitet wurden)

Schon mal aktiv und passiv versucht? Eventuell sind die fuer passiven Modus notwendigen Ports nicht erreichbar?
Einen anderen Client versucht?
Was sagen die vsftp Logs (eventuell falsche Permissions, ...)
 
Das Problem ist vermutlich dein Router zu Hause...
Der erkennt deinen neuen Port nicht als Ftp Port, und kann so die Datenverbindung nicht der Kontrollverbindung zuordnen.

Demnach musst du deinen Ftp Client in den Passivmode schicken.

Auf dem Server solltest du auch noch dem connection tracking Modul Bescheid sagen, wie dein alternativer Port lautet
Code:
modprobe ip_conntrack_ftp ports=21,10021

Gruss
 
Hi,

danke für die Antworten.
Was aber gegen ein Problem mit vsftp oder meinem Router daheim spricht ist, das es ja funktioniert wenn die iptables nicht laufen.

Es wird sonst garnichts geändert, weder am vsftpd noch an meinem Router daheim, ich stoppe einfach nur die iptables und dann funktioniert es reibungslos.

Andere Frage: Hilft es/macht es überhaupt sinn den FTP Port zu ändern?
Ich bin auf jedenfall auf dem FTP angeweisen, kann ihn also nicht deaktivieren.

Es können sich nur bestimmte FTP User verbinden, diese mit in ihrem Home gefangen. Ein User verbindet sich über SFTP. Reicht das?

Bevor ich jetzt noch länger probiere den FTP umzubiegen und es später garkeinen Sinn macht..

Gruß Pascal
 
Das Verbiegen von Ports bringt dir meist nur einen Vorteil: Die Logs zeigen weniger fehlerhafte Login-Versuche, weil oft erst der Standard-Port probiert wird. Eine wirkliche Sicherheit bring das Verschieben IMHO nicht, und wer wirklich auf deinen Server per FTP will, der scannt einfach die Ports ab und hat dann den FTP-Port (oder auch den von anderen Diensten wie SSH, die verschoben wurden).
Wenn auf andere FTP nutzen, dann würde ich vom Verschieben auch absehen. Was ich aber gemacht habe: Bei mir geht FTP nur verschlüsselt (FTPS/FTPES), wer es unverschlüsselt versucht, wird mit einem Login failed abgewiesen.
 
Back
Top