• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Hilfe Firewall und ProFTP; Logfilemeldung; -Auswirkung?

revealed

Guru
Hallo!

Ich hab eine ziemlich tiefgreifende Problematik. Vielleicht kann mir jemand helfen, das zu lösen.
Code:
Also ich habe ProFTP eingerichtet. Im log tauchte bei einem Test von außen das hier auf:
Jul 27 12:36:20 wild-thing proftpd[22475] wild-thing.domain.name.tld (Adresse[vom.tester.
der.half]): Check your PassivePorts and MasqueradeAddress settings,
Zu PassivePorts habe ich das hier gefunden:
http://www.proftpd.org/docs/directives/linked/config_ref_PassivePorts.html

Meine Firewall ist im Router. Dort wird nur port21 auf die lokale IP weitergeleitet.
In der SuSE Firewall2 ist auch nur port21 offen.

Welche Ports muss ich denn noch öffnen? In der Regel existiert nur ein User dem es gestattet ist den FTP zu nutzen.
Wie muss ich diese Portdirektive in der Config eintragen?

Ich hab denke ich schon herausgelesen, dass ich auf jeden Fall port:
20 und 21 brauche? In der Config vom ProFTP steht aber bisher nur eine direktive für port21
Code:
# 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 on WILD-THING"
ServerType inetd
DefaultServer			on
MasqueradeAddress		wild-thing.domain.name.tld

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

# Set the user and group under which the server will run.
User				nobody
Group				nogroup

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot /srv/ftp/wild-thing.domain.name.tld/ftp/

# Normally, we want files to be overwriteable.
AllowOverwrite		on

<Global>
DeferWelcome on
ServerIdent on "welcome to: ftp://wild-thing.domain.name.tld !!!"
RootLogin off
UseFtpUsers on
DefaultRoot /srv/ftp/wild-thing.domain.name.tld/ftp/
DeleteAbortedStores on
HiddenStores on
ShowSymlinks off
AccessDenyMsg NO!
AccessGrantMsg JO!
AllowOverwrite off
LoginPasswordPrompt on
MaxLoginAttempts 15
UserAlias ftpgast ftpuser
DefaultChdir wild-thing.domain.name.tld/ftp/
AllowStoreRestart off
TransferLog /var/log/rcproftpd.log
ExtendedLog /var/log/rcproftpd.log
UserPassword ftpuser PASSWORT
</Global>
SystemLog /var/log/rcproftpd.log
PidFile /var/run/proftpd.pid

Die Fragen konkret, weil ich nicht weiter weiss:
Welche Ports muss ich in meiner RouterFirewall öffnen? Reicht 21?
Wie mache ich diese in der SuSE Firewall2 auf?
Wo muss ich diese in der Config wie eintragen?

Es wird bei einem erlaubtem User bleiben.

Vielen Dank für Hilfe im Vorraus!!

Grüße,

R
 
OP
revealed

revealed

Guru
Hallo :)

Danke ich werde das ausprobieren, wenn ich wieder an FTP arbeite. Momentan schläft das Projekt. Und port 20 und 21 reichen? Weil wenn ich mir die Erklährungen so durchlese, dann wird da eben für Passiven und Aktiven Modus von mehreren Ports geredet. Also im Passiven wird wohl xy port aus dem und jenem Bereich aufgemacht je nach Bedarf?

Muss ich die in der Firewall dann auch entsprechend weiterleiten? Also angenommen ich geb in der ProFTP Config an, dass ich für Passiven Modus ports (oberhalb 1024) 5555 bis 5600 oder so (rein beispielsweise) verwende.

Die Ports schleif ich dann alle im Router auf meine LAN IP weiter? Richtig?

Jetzt die weitere Frage: SuSE Firewall 2 wie und wo trage ich diese Range in der Sysconfig idealerweise ein?

Vielen Dank für die Hilfe!

Gruß,

R
 

Tooltime

Advanced Hacker
Bis vor kurzen bin ich da auch einen Irrtum unterlegen und habe mir folgende informationen zusammen gesammelt. Also in groben Zügen funktioniert ftp ungefähr so. Jede Verbindung beginnt auf Port 21 (UPD oder TCP). Datenaustausch mit UDP erfolgt immer über Port 20, für den Datenaustausch über TCP gibt es die passive oder aktive Variante. In beiden Fällen werden auf Server- und Client-Seite ein neuer Port zum eigentlichen Datenaustausch geöffnet.
Aktiv-ftp, zum Datenautausch verbindet sich der Server mit dem Client und damit hat die Client-Firewall das Problem der eingehenden Verbindung.
Passiv-ftp, zum Datenautausch verbindet sich der Client mit dem Server, die Server-Firewall hat das Problem der eingehenden Verbindung. Daraus ergibt sich, das die Firewall des ftp-Server nur bei passiven Verbindungen angepasst werden muss.

Lösung 1:
Man definiert einen festen Portbereich für den passiven Datenaustausch und öffnet diesen in der Firewall. Genau dazu sind die Parameter min-pasv-port max-pasv-port da.

Lösung 2:
Es gibt ein Masquerading-Modul (nf_conntrack_ftp) für die Firewall, die jede ftp-Verbindung überwacht und automatisch die entsprechenden Ports in der Firewall öffnet.
In /etc/sysconfig/SuSEfirewall2 FW_LOAD_MODULES="nf_conntrack_ftp" und Firewall neu starten.

Naja, jetzt müsste eigentlich eine Diskussion kommen welche Variante die sichere ist. Aber ich löse solche Problem anders, nämlich ohne triftigen Grund weiche ich nicht von der Standartkonfiguration von SuSE ab, getreu dem Motto, wahrscheinlich haben die schon Problem bedacht von den ich nicht einmal weiss das sie auftreten können.

Daher hier die Standartkonfiguration für vsftpd:

pasv_min_port=40000
pasv_max_port=40500

Die passenden Firewall aus /etc/sysconfig/SuSEfirewall2.d/services/vsftpd
Code:
## Name: vsftpd Server
## Description: Opens ports for vsftpd Server.

# space separated list of allowed TCP ports
TCP="ftp 40000:40500"

# space separated list of allowed UDP ports
UDP="ftp-data"

# space separated list of allowed RPC services
RPC=""

# space separated list of allowed IP protocols
IP=""

# space separated list of allowed UDP broadcast ports
BROADCAST=""
Mit einen Editor (suchen "vsftpd und ersetzen "pro-ftp") kann man leicht ein eigenes Schema für die Firewall erstellen. Diese Schemas können unter "erlaube Dienste" in jeder Zone aktiviert werden.
revealed schrieb:
Die Ports schleif ich dann alle im Router auf meine LAN IP weiter? Richtig?
Router mit NAT, dann Portforwarding der passiven-Ports.
 
Oben