Διαφορά μεταξύ των αναθεωρήσεων του «Πρωτόκολλο Μεταφοράς Αρχείων»

γλωσ. βελτιώσεις
μ (Ο Stelios21r μετακίνησε τη σελίδα File Transfer Protocol στη Πρωτόκολλο Μεταφοράς Αρχείων πάνω από την ανακατεύθυνση: ελληνική ορολογία)
(γλωσ. βελτιώσεις)
Το '''FileΠρωτόκολλο TransferΜεταφοράς ProtocolΑρχείων''' (Αγγλ. '''FTP'''),File (ελληνικά:Transfer ''ΠρωτόκολλοProtocol Μεταφοράς Αρχείων(FTP)'') είναι ένα ευρέως χρησιμοποιούμενο [[Πρωτόκολλο υπολογιστών|πρωτόκολλο]] σε δίκτυα τα οποία υποστηρίζουν το πρωτόκολλο [[TCP/IP]] (δίκτυα όπως internetτο διαδίκτυο ή intranetεσωτερικά δίκτυα). Ο υπολογιστής που τρέχειφιλοξενεί εφαρμογήπρόγραμμα-πελάτη FTP client μόλις συνδεθεί με τοντο serverδιακομιστή μπορεί να εκτελέσει ένα πλήθος διεργασιών όπως ανέβασμααποστολή αρχείων στοναπό server,και κατέβασμαπρος αρχείων από τοντο serverδιακομιστή, μετονομασία ή διαγραφή αρχείων από τονστον serverδιακομιστή κ.ο.κ. Το πρωτόκολλο είναι ένα ανοιχτό πρότυπο. Είναι δυνατό κάθε υπολογιστής που είναι συνδεδεμένος σε ένα δίκτυο, να διαχειρίζεται αρχεία σε ένα άλλο υπολογιστή του δικτύου, ακόμη και εάν ο δεύτερος διαθέτει διαφορετικό [[λειτουργικό σύστημα]].
 
== Ιστορία ==
 
Οι πρώτοι κανόνες για ανάπτυξη μηχανισμών ανταλλαγής αρχείων απαντώνται το 1971, όταν αναπτύχθηκαν για χρήση στο [[M.I.T]]. Περιγράφονται στο RFC 114 και ακολουθούν σχόλια και συζήτηση πάνω στο RFC 141. Αξίζει να αναφερθεί τo RFC 354, το οποίο αντικατέστησε τα ξεπερασμένα RFC 264 και RFC 265. Στο νέο RFC το FTP οριζόταν ως πρωτόκολλο ανταλλαγής αρχείων ανάμεσα σε hosts του δικτύου [[ARPANET]]. Πρωταρχικοί στόχοι του πρωτοκόλλου ήταν η εύκολη και αξιόπιστη μεταφορά αρχείων και η εύκολη αξιοποίηση των δυνατοτήτων για απομακρυσμένη αποθήκευση αρχείων.
 
 
== Τρόπος λειτουργίας ==
Αρχικά ο διακομιστής FTP server ανοίγει την θύρα (Αγγλ. port) 21 περιμένοντας έναν FTPπελάτη clientFTP να συνδεθεί. Στη συνέχεια ο clientπελάτης ξεκινά μια νέα σύνδεση από μια τυχαία θύρα προς την θύρα 21 του serverδιακομιστή. Μόλις γίνει η σύνδεση παραμένει ανοιχτή για όλη τη διάρκεια της συνόδου FTP. Η συγκεκριμένη σύνδεση ονομάζεται σύνδεση ελέγχου (Αγγλ. control connection).
 
Ακολουθεί η δημιουργία της σύνδεσης δεδομένων (Αγγλ. data connection), της σύνδεσης με την οποία μεταφέρονται τα δεδομένα. Υπάρχουν δύο τρόποι για να δημιουργηθεί, με χρήση της ενεργητικής λειτουργίας (Αγγλ. active mode) ή με χρήση της παθητικής λειτουργίας (Αγγλ. passive mode).
Αρχικά ο FTP server ανοίγει την θύρα (port) 21 περιμένοντας έναν FTP client να συνδεθεί. Στη συνέχεια ο client ξεκινά μια νέα σύνδεση από μια τυχαία θύρα προς την θύρα 21 του server. Μόλις γίνει η σύνδεση παραμένει ανοιχτή για όλη τη διάρκεια της συνόδου FTP. Η συγκεκριμένη σύνδεση ονομάζεται σύνδεση ελέγχου (control connection).
 
=== Ενεργητική λειτουργία ===
Ακολουθεί η δημιουργία της σύνδεσης δεδομένων (data connection), της σύνδεσης με την οποία μεταφέρονται τα δεδομένα. Υπάρχουν δύο τρόποι για να δημιουργηθεί, με χρήση της ενεργητικής λειτουργίας (active mode) ή με χρήση της παθητικής λειτουργίας (passive mode).
Στην ενεργητική λειτουργία (Αγγλ. active mode) ο πελάτης FTP client διαλέγει μια τυχαία θύρα στην οποία δέχεται τα δεδομένα της σύνδεσης. Ο clientπελάτης στέλνει τον αριθμό της θύρας, στηντην οποία επιθυμεί να "ακούει"παρακολουθεί (Αγγλ. listen) για εισερχόμενες συνδέσεις. Ο FTPδιακομιστής serverFTP δημιουργεί μια σύνδεση από την θύρα 20 στην ανοιχτή θύρα του clientπελάτη για τη μεταφορά των δεδομένων.
 
Οποιαδήποτε πληροφορία ζητήσει ο clientπελάτης, ανταλλάσσεται με βάση αυτή τη σύνδεση, που βασίζεται στο [[TCP]]. Όταν η μεταφορά ολοκληρωθεί ο serverδιακομιστής κλείνει τη σύνδεση αποστέλλοντας ένα πακέτο FIN, όπως σε κάθε σύνδεση βασισμένη στο TCP. Κάθε φορά που ο clientπελάτης ζητάει δεδομένα, δημιουργείται κατά παρόμοιο τρόπο μια σύνδεση δεδομένων και η διαδικασία επαναλαμβάνεται.
=== Active mode ===
 
Στην ενεργητική λειτουργία (active mode) ο FTP client διαλέγει μια τυχαία θύρα στην οποία δέχεται τα δεδομένα της σύνδεσης. Ο client στέλνει τον αριθμό της θύρας, στην οποία επιθυμεί να "ακούει" (listen) για εισερχόμενες συνδέσεις. Ο FTP server δημιουργεί μια σύνδεση από την θύρα 20 στην ανοιχτή θύρα του client για τη μεταφορά των δεδομένων.
 
Οποιαδήποτε πληροφορία ζητήσει ο client, ανταλλάσσεται με βάση αυτή τη σύνδεση, που βασίζεται στο [[TCP]]. Όταν η μεταφορά ολοκληρωθεί ο server κλείνει τη σύνδεση αποστέλλοντας ένα πακέτο FIN, όπως σε κάθε σύνδεση βασισμένη στο TCP. Κάθε φορά που ο client ζητάει δεδομένα, δημιουργείται κατά παρόμοιο τρόπο μια σύνδεση δεδομένων και η διαδικασία επαναλαμβάνεται.
 
[[Αρχείο:ftp-active.PNG|center]]
 
=== Παθητική λειτουργία ===
=== Passive mode ===
Στην παθητική λειτουργία (Αγγλ. passive mode) ο clientπελάτης ζητά από τον serverδιακομιστή να διαλέξει μια τυχαία θύρα, στηντην οποία θα "ακούει"παρακολουθεί (Αγγλ. listen) για την σύνδεση δεδομένων (Αγγλ. data connection). Ο serverδιακομιστής ενημερώνει τον clientπελάτη για την θύρα την οποία έχει διαλέξει και ο clientπελάτης συνδέεται σε αυτή για τη μεταφορά των δεδομένων. Η μεταφορά ολοκληρώνεται όπως και στην ενεργητική λειτουργία (active mode), αφού η σύνδεση δεδομένων βασίζεται στο TCP
 
Στην παθητική λειτουργία (passive mode) ο client ζητά από τον server να διαλέξει μια τυχαία θύρα, στην οποία θα "ακούει" (listen) για την σύνδεση δεδομένων (data connection). Ο server ενημερώνει τον client για την θύρα την οποία έχει διαλέξει και ο client συνδέεται σε αυτή για τη μεταφορά των δεδομένων. Η μεταφορά ολοκληρώνεται όπως και στην ενεργητική λειτουργία (active mode), αφού η σύνδεση δεδομένων βασίζεται στο TCP
[[Αρχείο:Ftp-passive.PNG|center]]
 
== Χρήση ==
 
Το FTP είναι ένα πρωτόκολλο [[Μοντέλο πελάτη-διακομιστή|πελάτη-εξυπηρετητή]] 8-bit, ικανό να χειρίζεται οποιονδήποτε τύπο αρχείου χωρίς περαιτέρω επεξεργασία, όπως δηλαδή κάνουν το [[MIME]] και το [[Uuencode]]. Ωστόσο το FTP έχει εξαιρετικά υψηλή καθυστέρηση (Αγγλ. latency). Αυτό σημαίνει ότι ο χρόνος μεταξύ του αιτήματος και της διαδικασίας παραλαβής του είναι αρκετά μεγάλος και για αυτό μερικές φορές απαιτείται μεγάλη διαδικασία σύνδεσης.
 
===Σύνδεση χρησιμοποιώντας FTP===
Για να συνδεθείτε σε έναν απομακρυσμένο υπολογιστή χρησιμοποιώντας FTP, στην γραμμή εντολών δακτυλογραφείτε ftp. Τότε μεταβαίνετε στο promptπεριβάλλον εισαγωγής εντολών '''ftp>'''. Για να συνδεθείτε στον απομακρυσμένο υπολογιστή τυπώνετεπληκτρολογείτε:<br>
'''οpen Name'''
<br>
'''open IP'''
<br>
όπου ''Name '' είναι το όνομα του απομακρυσμένου υπολογιστή και ''IP'' η IPαριθμητική διεύθυνσή του.<br>
Αφού συνδεθείτε, ανάλογα με την περίπτωση, όπως αναφέρθηκε παραπάνω θα σας ζητηθεί το ''όνομα χρήστη'' ή ο ''κωδικός πρόσβασης''. Εάν εισαχθούν σωστά, τότε έχετε συνδεθεί επιτυχώς στον απομακρυσμένο υπολογιστή και ανάλογα με τα δικαιώματά σας, μπορείτε να εμφανίσετε αρχεία, να στείλετε αρχεία, να λάβετε αρχεία.<br>
Μερικοί εξυπηρετητές, όπως θα εξηγήσουμε παρακάτω, μπορεί να επιτρέπουν ανώνυμες συνδέσεις.
|'''append''' ||Προσαρτά κείμενο σε ένα τοπικό αρχείο
|-
|'''ascii''' ||Μεταβαίνει στον ASCII τρόπο μεταφοράς με κωδικοποίηση τύπου ASCII
|-
|'''bell''' ||Ενεργοποιεί/απενεργοποιεί το κουδούνι
|'''mput''' ||Αποστέλει πολαπλά αρχεία
|-
|'''open''' ||Συνδέεται με έναν απομακρυσμένο υπολογιστή ftp υπολογιστή.
|-
|'''prompt'''|| Ενεργοποιεί/Απενεργοποιεί τοτη promptγραμμή εισαγωγής εντολών
|-
|'''put''' ||Στέλνει ένα αρχείο
|}
 
== AnonymousΑνώνυμη Σύνδεση FTP ==
Το FTP επέτρεψε σε μια νέα κατηγορία χρηστών να εισέρχονται (Αγγλ. login) στον FTPδιακομιστή serverFTP. Οι χρήστες αυτοί δεν χρειάζεται να έχουν λογαριασμό, αντιθέτως χρησιμοποιούν έναν γενικής χρήσης. Ο λογαριασμός αυτός ονομάζεται "anonymous FTP" (ανώνυμο FTP) και δεν απαιτείται κωδικός πρόσβασης, συνήθως όμως χρησιμοποιείται κατά σύμβαση ο κωδικός "guest" (φιλοξενούμενος) ή η διεύθυνση [[e-mail|ηλεκτρονικού ταχυδρομείου (e-mail)]] του χρήστη.
 
Η σύνδεσηανώνυμη "anonymous"σύνδεση χρησιμοποιείται κυρίως για αρχεία που είναι ανοιχτά στο κοινό, σαν αποθήκη πληροφοριών (όπως λογισμικό, έγγραφα, εικόνες κλπ.) Συνήθως, με αυτό τον τρόπο παρέχεται πρόσβαση σε αρχειοθετημένες [[mailing lists]]. Οι χρήστες που εισέρχονται ως "anonymous"ανώνυμα πρέπει να έχουν περιορισμένα δικαιώματα πρόσβασης σε αρχεία του host. Διαφορετικά, εαν μπορούν να διαβάσουν οποιοδήποτε αρχείο ή να δημιουργήσουν νέα, δημιουργούνται προβλήματα ασφαλείας.
Το FTP επέτρεψε σε μια νέα κατηγορία χρηστών να εισέρχονται (login) στον FTP server. Οι χρήστες αυτοί δεν χρειάζεται να έχουν λογαριασμό, αντιθέτως χρησιμοποιούν έναν γενικής χρήσης. Ο λογαριασμός αυτός ονομάζεται "anonymous FTP" και δεν απαιτείται κωδικός πρόσβασης, συνήθως όμως χρησιμοποιείται κατά σύμβαση ο κωδικός "guest" ή η διεύθυνση [[e-mail|ηλεκτρονικού ταχυδρομείου (e-mail)]] του χρήστη.
 
Η σύνδεση "anonymous" χρησιμοποιείται κυρίως για αρχεία που είναι ανοιχτά στο κοινό, σαν αποθήκη πληροφοριών (όπως λογισμικό, έγγραφα, εικόνες κλπ.) Συνήθως, με αυτό τον τρόπο παρέχεται πρόσβαση σε αρχειοθετημένες [[mailing lists]]. Οι χρήστες που εισέρχονται ως "anonymous" πρέπει να έχουν περιορισμένα δικαιώματα πρόσβασης σε αρχεία του host. Διαφορετικά, εαν μπορούν να διαβάσουν οποιοδήποτε αρχείο ή να δημιουργήσουν νέα, δημιουργούνται προβλήματα ασφαλείας.
 
== Ασφάλεια ==
 
Το FTP δεν σχεδιάστηκε με πρόνοια για ασφάλεια, με συνέπεια οι εφαρμογές να είναι ιδιαίτερα ευάλωτες και να εμφανίζονται ποικίλα προβλήματα κατά τη χρήση [[firewall]] ή [[NAT]].
 
=== Προβλήματα NAT ===
Στην ενεργητική λειτουργία o FTPδιακομιστής serverFTP ξεκινά μια σύνδεση δεδομένων συνδεόμενος στην εξωτερική αριθμητική διεύθυνση IP της πύλης (Αγγλ. gateway) [[NAT]]. Στην άλλη πλευρά, το μηχάνημα το οποίο είναι υπεύθυνο για τη "μετάφραση" των εσωτερικών [[διεύθυνση IP|αριθμητικών διευθύνσεων IP]] του δικτύου στην εξωτερική, θα πάρει το SYN πακέτο για τη δημιουργία της σύνδεσης. Όμως, στον πίνακα κατάστασης (state table) του ΝΑΤ, στον οποίο διατηρείται το ιστορικό μεταφράσεων, δεν έχει καταγραφεί κανένα, με αποτέλεσμα το πακέτο να απορρίπτεται (γίνεται drop). To πακέτο δεν φτάνει ποτέ στον clientπελάτη, δεν σχηματίζεται σύνδεση δεδομένων και η μεταφορά δεδομένων είναι αδύνατη.
 
Στην παθητική λειτουργία, επειδή η θύρα στην οποία συνδέεται ο serverδιακομιστής είναι τυχαία, είναι πιθανόν να μην επιτρέπεται σύνδεση προς τον [[port number|αριθμό]] της από το λογισμικό - τείχος προστασίας (firewall). Σε αυτή την περίπτωση η σύνδεση δεδομένων δεν θα σχηματιστείδημιουργηθεί και, επομένως, δεν θα μεταφέρονται δεδομένα.
Στην ενεργητική λειτουργία o FTP server ξεκινά μια σύνδεση δεδομένων συνδεόμενος στην εξωτερική διεύθυνση IP της πύλης (gateway) [[NAT]]. Στην άλλη πλευρά, το μηχάνημα το οποίο είναι υπεύθυνο για τη "μετάφραση" των εσωτερικών [[διεύθυνση IP|διευθύνσεων IP]] του δικτύου στην εξωτερική, θα πάρει το SYN πακέτο για τη δημιουργία της σύνδεσης. Όμως, στον πίνακα κατάστασης (state table) του ΝΑΤ, στον οποίο διατηρείται το ιστορικό μεταφράσεων, δεν έχει καταγραφεί κανένα, με αποτέλεσμα το πακέτο να απορρίπτεται (γίνεται drop). To πακέτο δεν φτάνει ποτέ στον client, δεν σχηματίζεται σύνδεση δεδομένων και η μεταφορά δεδομένων είναι αδύνατη.
 
Στην παθητική λειτουργία, επειδή η θύρα στην οποία συνδέεται ο server είναι τυχαία, είναι πιθανόν να μην επιτρέπεται σύνδεση προς τον [[port number|αριθμό]] της από το λογισμικό - τείχος προστασίας (firewall). Σε αυτή την περίπτωση η σύνδεση δεδομένων δεν θα σχηματιστεί και, επομένως, δεν θα μεταφέρονται δεδομένα.
 
=== Έλλειψη κρυπτογράφησης ===
Τα δεδομένα που ανταλλάσσονται μέσω FTP δεν είναι κρυπτογραφημένα, με αποτέλεσμα οι εντολές που αποστέλλονται μέσω της controlσύνδεσης connectionελέγχου να είναι απλό κείμενο. Για το λόγο αυτό μπορούν εύκολα, με τη χρήση ενός [[sniffer]], να αλιευθούν, να διαβασθούν και να ξανασταλούν ανάλογα με τη βούληση του επιτιθέμενου. Ανάμεσα σε αυτές, η εντολή που χρησιμοποιείται για νατην γίνειείσοδο (Αγγλ. login) σε ένα λογαριασμό FTP, με τη σύνταξη "PASS password", παρέχει στον επιτιθέμενο τον κωδικό του χρήστη. Αν συνδυαστεί με την εντολή "USER", με την οποία αποστέλεται το όνομα του χρήστη, ο επιτιθέμενος μπορεί να χρησιμοποιήσει τα στοιχεία για να εισέλθει στον ξένο λογαριασμό με τα ίδια δικαιώματα.
 
Επειδή οι περισσότεροι άνθρωποι τείνουν να επαναχρησιμοποιούν κωδικούς, ο επιτιθέμενος έχει αυξήσει τις πιθανότητες του σε μια [[brute-force attack]]. Με αυτό τον τρόπο, είναι πιθανό να αποκτήσει έλεγχο του συστήματος του χρήστη μόλις βρει τητην διεύθυνσηαριθμητική IPδιεύθυνση του, ανιχνεύοντας την έναρξη της συνόδου FTP (FTP session).
Τα δεδομένα που ανταλλάσσονται μέσω FTP δεν είναι κρυπτογραφημένα, με αποτέλεσμα οι εντολές που αποστέλλονται μέσω της control connection να είναι απλό κείμενο. Για το λόγο αυτό μπορούν εύκολα, με τη χρήση ενός [[sniffer]], να αλιευθούν, να διαβασθούν και να ξανασταλούν ανάλογα με τη βούληση του επιτιθέμενου. Ανάμεσα σε αυτές, η εντολή που χρησιμοποιείται για να γίνει login σε ένα λογαριασμό FTP, με σύνταξη "PASS password", παρέχει στον επιτιθέμενο τον κωδικό του χρήστη. Αν συνδυαστεί με την εντολή "USER", με την οποία αποστέλεται το όνομα του χρήστη, ο επιτιθέμενος μπορεί να χρησιμοποιήσει τα στοιχεία για να εισέλθει στον ξένο λογαριασμό με τα ίδια δικαιώματα.
 
Επειδή οι περισσότεροι άνθρωποι τείνουν να επαναχρησιμοποιούν κωδικούς, ο επιτιθέμενος έχει αυξήσει τις πιθανότητες του σε μια [[brute-force attack]]. Με αυτό τον τρόπο, είναι πιθανό να αποκτήσει έλεγχο του συστήματος του χρήστη μόλις βρει τη διεύθυνση IP του, ανιχνεύοντας την έναρξη της συνόδου FTP (FTP session).
 
=== Man-in-the-middle ===
 
Με το κύριο File Transfer Protocol, ο serverδιακομιστής δεν εξασφαλίζει ότι ο clientπελάτης είναι αυτός που λέει, ούτε ο clientπελάτης αντίστοιχα για τον serverδιακομιστή. Ευκολονόητο, εφόσον το FTP δεν απαιτεί επαλήθευση των hosts και δεν ελέγχει αν τα δεδομένα προέρχονται από αυτούς, ούτε τα προστατεύει. Για αυτό το λόγο και τα δύο άκρα που ανταλλάσσουν δεδομένα, είναι ανοιχτά σε [[man-in-the-middle attack]] από κάποιον επιτιθέμενο που συλλαμβάνει τα πακέτα του κάθε host, και στέλνει ψευδείς απαντήσεις.
 
==Προγράμματα FTP==
 
Παρακάτω είναι ένας κατάλογος από FTP προγράμματα που μπορείτε να χρησιμοποιήσετε για να συνδεθείτε σε ένα FTPδιακομιστή ServerFTP.
# '''FileZilla''' – Ένα φανταστικό ελεύθερο FTP και SFTP, με ότι χρειάζονται οι περισσότεροι χρήστες
# '''WinSCP''' - Ένα άλλο φανταστικό ελεύθερο FTP, SFTP, SCP βοήθημα το οποίο υποστηρίζει και scripting
# '''Internet Explorer''' – Οι χρήστες που έχουν Microsoft Internet Explorer στους υπολογιστές τους, μπορούν να τον χρησιμοποιήσουν για να συνδεθούν σε FTP εξυπηρετητές.
 
==Υποστήριξη από Web Browserπεριηγητές/φυλλομετρητές==
Οι περισσότεροι webπεριηγητές browsersτου διαδικτύου μπορούν να ανακτήσουν αρχεία που φιλοξενούνται σε εξυπηρετητές FTP, αν και μπορεί να μην υποστηρίζουν επεκτάσεις του πρωτοκόλλου, όπως το FTPS. Όταν δίνουμε μία FTP διεύθυνση FTP αντί για μία HTTP-URL, το περιεχόμενο στο οποίο έχουμε πρόσβαση εμφανίζεται με έναν τρόπο όμοιο με το περιεχόμενο Webτου Παγκόσμιου Ιστού.
 
===Σύνταξη===
265

επεξεργασίες