Portfreigabe überhaupt nötig?

Hawkster

Erfahrenes Mitglied
Hallo allesamt,

habe mir neulich mal gedanken gemacht, ob Portfreigabe überhaupt zwingend nötig sind.

Nehmen wir mal einen FTP-Server. Um auf einen FTP-Server verbinden zu können, ist nur auf der Seite des Servers der Port "21" freizugeben. Wieso nicht auf der anderen Seite?

Meine Theorie bisher ist, das Verbindungen nach draußen generell zugelassen werden. Aber eingehende Grundlegend geblockt. AUßER man hat zuvor eine ausgehende verbindung auf dem entsprechenden Port zustande gebracht, danach ist der Zugang über den Port von außen genehmigt. Stimmt diese Theorie soweit?

Das würde theoretisch folgendes bedeuten. Auf Serverseite schalte ich den Port21 frei. Dann verbinde ich vom Client auf den FTP-Server. Wenn ich dann den Port wieder schließe, bleibt die Verbindung weiterhin zum FTP aktiv oder wird diese Sofort beendet?

Ich hoffe ihr versteht meine Gedankengänge so lala.

MFG
Hawkster
 
Hallo allesamt,

habe mir neulich mal gedanken gemacht, ob Portfreigabe überhaupt zwingend nötig sind.
Auf der Serverseite schon, denn irgendwie muss man ja verbinden koennen.

Nehmen wir mal einen FTP-Server.
Das ist jetzt aber gleich mal ein komplexeres Beispiel, denn FTP laeuft ja ueber 2 Verbindungen, dazu etwas spaeter mehr. HTTP waere auf jeden Fall einfacher gewesen. ;)

Um auf einen FTP-Server verbinden zu können, ist nur auf der Seite des Servers der Port "21" freizugeben. Wieso nicht auf der anderen Seite?
Das muss auch geschehen, oder besser gesagt, der Zugriff auf externe Rechner auf Port 21 darf nicht untersagt werden damit das klappt.
Siehe naechster Absatz, es ist durchaus moeglich zu verhindern dass Pakete an Port 21 anderer Rechner geschickt wird.

Meine Theorie bisher ist, das Verbindungen nach draußen generell zugelassen werden. Aber eingehende Grundlegend geblockt.
So kann man es machen, ich z.B. mache es auch so, aber das ist nicht zwingend. Auch ausgehende Verbindungen koennen behandelt werden.

AUßER man hat zuvor eine ausgehende verbindung auf dem entsprechenden Port zustande gebracht, danach ist der Zugang über den Port von außen genehmigt. Stimmt diese Theorie soweit?
Ja, das ganze hoert auf den schoenen Namen Connection-Tracking.

Das würde theoretisch folgendes bedeuten. Auf Serverseite schalte ich den Port21 frei. Dann verbinde ich vom Client auf den FTP-Server. Wenn ich dann den Port wieder schließe, bleibt die Verbindung weiterhin zum FTP aktiv oder wird diese Sofort beendet?
Das kommt auf die bestehenden Filter-Regeln und deren Reihenfolge an. Beide Faelle sind moeglich, je nachdem ob eben die Regel zur Zulassung bestehender Verbindung vor der Regel zur expliziten Sperrung des Ports kommt oder nicht.

Nun zum Thema FTP. Wie gesagt ist dies ein komplexeres Protokoll und entsprechend fuer dieses Beispiel eher bedingt geeignet. Das Problem ist dass FTP mit zwei Verbindungen arbeitet; der Kontrollverbindung und der Datenverbindung.
Die Kontrollverbindung geht vom Client zum Server, die Datenverbindung geht, zumindest bei aktivem FTP, vom Server zum Client. Hier kann nun auch ein Paketfilter im Weg sein, denn diese Verbindung kommt ja rein, und ist neu! Netfilter im Linux-Kernel ist da recht pfiffig und erkennt dass diese Verbindung in Relation zur Datenverbindung steht (der Verbindungsstatus wird als RELATED bezeichnet) und laesst diese zu, wenn denn eine entsprechende Regel definiert ist.
Ist dies nicht der Fall muss passives FTP genutzt werden, dabei wird dann auch die Datenverbindung vom Client aufgebaut.

Auch wenn wir hier nicht direkt ueber Netfilter sprechen moechte ich an dieser Stelle mein Tutorial "Firewalling mit IPTables/Netfilter" ansprechen, wo auch ein paar Sachen zum Thema zu finden sind.
 
Zurück