file sharing!

Nikos Alexandris nikos.alexandris at uranus.uni-freiburg.de
Mon Nov 24 17:39:43 GMT 2008


On Mon, 2008-11-24 at 18:25 +0200, Konstantinos Togias wrote:
> 2008/11/24 Nikos Alexandris <nikos.alexandris at uranus.uni-freiburg.de>:
> > On Sun, 2008-11-23 at 21:42 +0200, Konstantinos Togias wrote:
> >> 2008/11/23 Nikos Alexandris <nikos.alexandris at uranus.uni-freiburg.de>:
> >> > On Sat, 2008-11-22 at 22:34 +0200, Konstantinos Togias wrote:
> >> >> 2008/11/22 Nikos Alexandris <nikos.alexandris at uranus.uni-freiburg.de>:
> >> >> > On Fri, 2008-11-21 at 20:56 +0200, apix wrote:
> > [...]
> >> >> > Ερώτηση 1η: Γιατί μας τα κάνει δύσκολα το gnome?
> > [...]
> >> > Με προβληματίζει το γεγονός ότι ούτε το gftp δεν δουλεύει.
> > [...]
> >
> >> Έχω κάποιες ισχυρές υποψίες ότι το πρόβλημα οφείλεται στις ρυθμίσεις
> >> του ftp server ή κάποιου firewall που κόβει τις εισερχόμενες συνδέσεις
> >> στις > 1023 port του server. Το όλο μπάχαλο οφείλεται στο γεγονός ότι
> >> για να επιτευχθεί μια ftp σύνδεση απαιτείται η διασύνδεση πελάτη και
> >> εξυπηρετητή μέσω δύο διαδικτυακών θυρών του εξυπηρετητή, της 21 για
> >> την ανταλλαγή εντολών και της  20 ή κάποιας > 1023 για την ανταλλαγή
> >> δεδομένων. Υπάρχουν δύο μέθοδοι σύνδεσης η ACTIVE και η PASSIVE.
> >
> >>  Η
> >> ACTIVE είναι η default που χρησιμοποιεί η εφαρμογή κονσόλας ftp,
> >> εμπλέκει τις θύρες 20 και 21 του server και απαιτεί να μην κόβονται
> >> από κάποιο firewall οι εισερχόμενες συνδέσεις σε θύρες > 1023 του
> >> client.
> >
> > ACTIVE mode: "απαιτεί να μην κόβονται
> >> από κάποιο firewall οι εισερχόμενες συνδέσεις σε θύρες > 1023"
> >
> >> H PASSIVE mode αναπτύχθηκε για να αντιμετωπίσει περιπτώσεις
> >> όπου ο client είναι πίσω από κάποιο firewall που δεν του επιτρέπει να
> >> δέχεται εισερχόμενες συνδέσεις σε θύρες > 1023. Αντίθετα απαιτεί το
> >> firewall του server να επιτρέπει εισερχόμενες συνδέσεις προς τον
> >> server σε θύρες > 1023.
> >
> > PASSIVE mode: "απαιτεί το
> >> firewall του server να επιτρέπει εισερχόμενες συνδέσεις προς τον
> >> server σε θύρες > 1023"
> >
> > Αν καταλαβαίνω σωστά και οι δυο μέθοδοι θέλουν/απαιτούν *ανοιχτά* ports
> >> 1023. Σωστά; Δεν υπάρχει δηλαδή διαφορά μεταξύ active-passive σχετικά
> > με τις θύρες > 1023;
> 
> ACTIVE mode: Ο client ξεκινά μια σύνδεση από μια δικιά του τυχαία N >
> 1023 port στην 21 port του server. Αυτή είναι μια εισερχόμενη σύνδεση
> προς την port 21 για τον server. Η σύνδεση  ( Client N <--> Server 21)
>  εγκαθιδρύεται (είναι πλέον μια ήδη ανοικτή υπάρχουσα σύνδεση) και ο
> server απαντά μέσω αυτής ότι όλα ΟΚ μέχρι εδώ. Ο client ανοίγει την
> δική του πόρτα N+1 και περιμένει για εισερχόμενες συνδέσεις σε αυτή.
> Μέσω της ήδη υπάρχουσας σύνδεσης ( Client N <---> Server 21 ) ο Client
> πληροφορεί το server ότι για την αποστολή και λήψη δεδομένων
> χρησιμοποιεί την πόρτα Ν+1 (μέσω της εντολής PORT N+1). Ο Server τότε
> ξεκινά μια νέα σύνδεση από τη δικιά του πόρτα 20 (η 20 είναι
> προκαθορισμένη από το πρωτόκολλο ως η θύρα που χρησιμοποιείται από τη
> μεριά του server για την επικοινωνία δεδομένων) στην πόρτα N+1 του
> client. Αυτή η σύνδεση είναι μια εισερχόμενη προς την τυχαία θύρα N+1
> του client. Ο client λαμβάνει την αίτηση για τη νέα σύνδεση στην πόρτα
> Ν+1, η νέα σύνδεση (Server 20 <---> Client N+1 ) εγκαθιδρύεται και
> αρχίζει η ανταλλαγή δεδομένων.
> 
> Το πρόβλημα εδώ είναι ότι ο client δεν πρέπει να βρίσκεται πίσω από
> firewall που να κόβει τις εισερχόμενες συνδέσεις (αυτές δηλαδή που δεν
> έχουν ξεκινήσει από το εσωτερικό του δίκτυο, αλλά έρχονται από έξω ως
> νέες αιτήσεις σύνδεσης) από την πόρτα 20 του server (ή οποιοδήποτε
> υπολογιστή αν θέλουμε να μπορούμε να συνδεθούμε σε οποιοδήποτε ftp
> server) προς την τυχαία πόρτα N+1 (N > 1023) του client. Πολλά
> εταιρικά ή οικιακά firewall δεν είναι ρυθμισμένα να επιτρέπουν τέτοιου
> είδους συνδέσεις, μια και αυτές θα μπορούσαν να χρησιμοποιηθούν από
> κακόβουλο λογισμικό που υποκρίνεται ότι είναι ένας ftp server που
> θέλει να κάνει data connection από την 20 πόρτα του σε κάποια N > 1024
> του προστατευόμενου υπολογιστή. Αν στον προστατευόμενο έχει ήδη
> εγκατασταθεί ένα rootkit ή κάτι άλλο χωρίς να το γνωρίζει ο χρήστης,
> και τέτοιου είδους εισερχόμενες συνδέσεις επιτρέπονται, τότε ο
> επιτιθέμενος μπορεί να χρησιμοποιήσει ανεμπόδιστα μια τέτοια σύνδεση
> για να αποκτήσει μη εξουσιοδοτημένη πρόσβαση στο προστατευμένο
> μηχάνημα του χρήστη.
> 
> PASSIVE mode:
> 
> O client ξεκινά όπως και στην ACTIVE mode μια σύνδεση από μια δικιά
> του τυχαία N > 1023 port στην 21 port του server. Αυτή είναι μια
> εισερχόμενη σύνδεση προς την port 21 για τον server. Η σύνδεση  (
> Client N <--> Server 21)  εγκαθιδρύεται (είναι πλέον μια ήδη ανοικτή
> υπάρχουσα σύνδεση) και ο server απαντά μέσω αυτής ότι όλα ΟΚ μέχρι
> εδώ. Αντί τώρα ο client να ανοίξει μια δεύτερη δική του πόρτα και να
> πει στον server να συνδεθεί σε αυτή, λέει στο server μέσω της ήδη
> υπάρχουσας σύνδεσης  ( Client N <--> Server 21) ότι θέλει να
> χρησιμοποιήσει PASSIVE mode στέλνοντας την εντολή PASV. O server τότε,
> εφόσον υποστηρίζει PASSIVE mode, ανοίγει μια δικιά του πόρτα P > 1023,
> στην οποία περιμένει εισερχόμενες συνδέσεις, και ενημερώνει τον client
> (μέσω της ήδη υπάρχουσας Client N <--> Server 21 σύνδεσης) ότι πρέπει
> να συνδεθεί σε αυτή την πόρτα για επικοινωνία δεδομένων. Ο client τότε
> ξεκινά μια νέα σύνδεση από την τυχαία δικιά του Ν+1 πόρτα στην τυχαία
> P πόρτα του server.  Ο server λαμβάνει την αίτηση για τη νέα σύνδεση
> στην πόρτα P, η νέα σύνδεση (Client N+1 <---> Server P ) εγκαθιδρύεται
> και αρχίζει η ανταλλαγή δεδομένων.
> 
> Όπως γίνεται φανερό στην περίπτωση της PASSIVE mode και οι 2 συνδέσεις
> που πραγματοποιούνται μεταξύ Server και Client ξεκινάνε από τον
> client. Αυτό επιτρέπει την επικοινωνία ακόμα και όταν ο client
> βρίσκεται πίσω από firewall που κόβει όλες τις νέες εισερχόμενες προς
> αυτόν συνδέσεις προκειμένου να τον προστατέψει από επιθέσεις. Η άλλη
> όψη όμως του νομίσματος είναι ότι πλέον και οι δυο συνδέσεις είναι
> νέες εισερχόμενες για τον server. Έτσι ο server πρέπει να βρίσκεται
> πίσω από firewall που δεν κόβει τις εισερχόμενες στις > 1023 πόρτες
> συνδέσεις από όλο κάθε υπολογιστή προς τον server. Ο λόγος που
> προτιμάται αυτή η μέθοδος είναι ότι ο server τρέχει συγκεκριμένο ια
> ελεγχόμενο software, ενώ επιθεωρείται τακτικά από τον διαχειριστή του,
> οπότε διατρέχει πολύ λιγότερο κίνδυνο από εισερχόμενες συνδέσεις σε
> πόρτες > 1024 από ότι ο υπολογιστής-client που συνήθως είναι το pc
> ενός υχαίου απλού χρήστη που κανεις δεν ξέρει τι λογιαμικό τρέχει, και
> τι ιούς, trojans και rookits μπορεί να έχει κολλήσει.
> 
> Οι περισσότεροι σύγχρονοι ftp clients επιχειρούν πρώτα να
> δημιουργήσουν μια PASSIVE mode σύνδεση με τον server. Του στέλνουν την
> εντολή PASV και αν αυτός απαντήσει με PORT P καταλαβαίνουν ότι
> υποστηρίζει PASSIVE mode επιχειρούν να συνδεθούν στην πόρτα P. Αν τα
> καταφέρουν τότε όλα καλώς. Το ερώτημα είναι τι γίνεται αν δεν τα
> καταφέρουν. Πιθανότατα η αίτηση για σύνδεση κάνει timeout ή
> απορρίπτεται, οπότε παίρνεις ένα Unable to connect και τέλος. Βέβαια,
> αν στην εντολή PASV ο server απαντήσει ότι δεν υποστηρίζει ή επιτρέπει
> PASSIVE mode, τότε πιθανότατα ο client (ανάλογα με τις ρυθμίσεις του)
> δοκιμάζει ACTIVE mode. Αν δεν τα καταφέρει ούτε με active mode τότε
> πάλι παίρνεις Unable to connect.
> 
> Η προβληματική κατάσταση στα παραπάνω (και κατα τη γνώμη μου
> πιθανότατα η περίπτωσή σου) είναι αυτή που ο server απαντά ότι μπορεί
> να χρησιμοποιήσει PASSIVE mode, στέλνει την πόρτα P στον client, αλλά
> τα πακέτα από τον client πρός την P του server δεν φτάνουν ποτέ στον
> προορισμό τους, με αποτέλεσμα να αποτυγχάνει η σύνδεση. Αυτό μπορεί να
> λυθεί με 3 πιθανούς τρόπους:
> 
> 1. Ο καλός: Να ρυθμιστεί το firewall/router πίσω από το οποίο είναι ο
> server να επιτρέπει εισερχόμενες συνδέσεις προς τον server για τις
> μεγάλες (>1023) πόρτες.
> 
> 2. O κακός: Να ρυθμιστεί ο server έτσι ώστε να απορρίπτει τις αιτήσεις
> για PASSV mode. Έτσι ελπίζουμε ότι ίσως οι clients δοκιμάσουν active
> mode, αντι να αναρωτιούνται τι γίνονται τα πακέτα που στέλνουν μέσω
> PASSIVE.
> 
> 3. Ο άσχημος: Να ρυθμίσεις τον client σου (αν ρυθμίζεται) να μην
> δοκιμάζει πρώτα PASSIVE mode , αλλά να την πέφτει με την μία ACTIVEly
> στον server, όπως κάνει το παλιό κλασσικό command line ftp. (Και λέω
> αυτόν άσχημο, γιατί πάλι αν πας σε άλλο client που είναι ρυθμισμένος
> αλλιώς οπότε θα προσπαθεί PASSIVE mode ή βρεθείς κάποια στιγμή πίσω
> από ένα αυστηρό firewall πάλι δεν θα μπορείς να συνδεθείς στον server
> αφού το ACTIVE θα το κόβει το δικό σου firewall και το passive το δικό
> του, ενώ παράλληλα θα έχεις ρυθμίσει τον client σου σε μη default
> λιγότερο ασφαλείς ρυθμίσεις.)
> 
> Έχεις αρχίσει να μισείς ήδη το FTP πρωτόκολλο; Δεν είσαι ο μόνος... Τα
> προβλήματα αυτά εξανεμίζονται, αφήνοντάς σου μόνο ένα ακόμα bonus,
> αυτό της από άκρη σε άκρη κρυπτογραφημένης σύνδεσης, αν
> χρησιμοποιήσεις sftp/scp αντί του απαρχαιωμένου πλέον ftp.

Κώστα,

δεν μπορώ παρά να σου εκφράσω ένα θερμό Ευχαριστώ. To διάβασα, το
ξαναδιάβασα και νομίζω ότι καταλαβαίνω τι γίνεται. Ο διαχειριστής μας
μάλλον δεν ξέρει πολλά (αν κρίνω από την απάντησή του).

Νίκος




More information about the Ubuntu-gr mailing list