|
|
|
Μέθοδοι
Προστασίας
Παρουσίαση
Ξεκινώντας
Γενικές Πληροφορίες
Πόσο Ασφαλή είναι;
Basic
By-Password Authentication: Βήμα πρός Βήμα
Πολλαπλά
User names / Passwords
Πολλαπλή πρόσβαση
Περιορισμός
πρόσβασης της IP address ή του Host
Παραδείγματα
Πληροφορίες
Παρουσίαση
Αυτό το tutorial περιγράφει τις καθιερωμένες μεθόδους NCSA
Mosaic και NCSA
httpd για περιορισμένη πρόσβαση στα αρχεία. Δείτε επίσης
το apacheweek.com.
Σας καθοδηγεί επίσης για το setup και πως να το χρησιμοποιείτε.
Ο Netscape Navigator, ο Internet Explorer,το Mosaic 2.0 (και
οι browsers) και το Apache httpd (η διαμόρφωση για τον Virtual
Server) σας επιτρέπουν να έχετε περιορισμένη πρόσβαση βασισμένη
σε κάποια κριτήρια, τα οποία βλέπουμε παρακάτω:
|
User
name/password-level access authorization. |
|
Rejection
or acceptance of connections based on Internet address
of client. |
|
A
combination of the above two methods. |
Το συγκεκριμένο tutorial βασίζεται στην εργασία που έχει πραγματοποιηθεί
απο τους Ari Luotonen απο την CERN και του Rob McCool απο
την NCSA. Συγκεκριμένα , ο Ari έγραψε σε κώδικα Mosaic 2.0
το client-side, και ο Rob έγραψε με NCSA httpd 1.3.
Ξεκινώντας
Oι servers μας χρησιμοποιούν HTTP Basic Authentication (Basic),
όπως προτείνεται από το Message Digest Authentication (MD5).
Οι περισσότεροι, εάν όχι όλοι, οι τρέχων web browsers θα πρέπει
να υποστηρίζουν το HTTP Basic Authentication, αλλά δεν υποστηρίζουν
όλοι τους το MD5.
Γενικές Πληροφορίες
Υπάρχουν δύο επίπεδα απ' όπου οι πληροφορίες μπορούν να προσπελαστούν
απο τον server: η συνολική πρόσβαση διαφόρφωσης αρχείου και
η ανά directory διαφόρφωση αρχείων. Το συγκεκριμένο tutorial
καλύπει μόνο την διαμόρφωση ανά directory.Θα σας ενημερώσουμε
εάν εισάγουμε την διαμόρφωση global.
Με την διαμόρφωση ανά directory εννοούμε ότι οι χρήστες που
έχουν πρόσβαση write σε ένα μέρος του file system μπορούν
να διαχειρίζονται τα αρχεία τους όπως επιθυμούν. Δεν χρειάζεται
να έχουν root access στο σύστημα ή write access στον server
για διαχείριση πρωτεύων αρχείων. Επίσης η διαμόρφωση αρχείων
ανά directory είναι αναγνώσιμη και αναλύσιμη απο τον server
για κάθε πρόσβαση, επιτρέπει run-time, re-configuration.Υπάρχει
ένα speed penalty associated με την χρήση της διαμόρφωσης
per-directory, αλλά αυτή είναι η συναλλαγή που πρόκειται να
έχετε.
Ο έλεγχος πρόσβασης για ένα κατάλογο, ελέγχεται απο ένα συγκεκριμένο
αρχείο στον κατάλογο με όνομα όπως ορίζεται απο τον 'AccessFileName'
απευθείας. Το προκαθορισμένο όνομα αρχείου είναι το .htaccess
Πόσο Ασφαλή Είναι;
Στο Basic HTTP Authentication, ο κωδικός διαπερνάει το δίκτυο
όχι κρυπτογραφημένα αλλά και όχι σαν απλό κείμενο
-- είναι "unencoded." Οποιοσδήποτε παρακολουθεί
την κίνηση των πακέτων στο δίκτυο δεν θα δει τον κωδικό όπως
είναι, αλλά μπορεί ο κωδικός να αποκωδικοποιηθεί από κάποιον
που έτυχε να "πιάσει" το σωστό πακέτο δικτύου.
Βασικά αυτή η μέθοδος είναι τόσο ασφαλής όσο και το telnet,
όπως η ασφάλεια του username και του κωδικού -- εάν εμπιστεύσεστε
το μηχανημά σας να είναι στο Internet, από οποιονδήποτε που
προσπαθεί να μπει στο προγραμμμά σας, τότε δεν έχετε κανέναν
λόγο να μην εμπιστευθείτε και αυτή την μέθοδο.
Στην MD5 Message Digest Authentication, ο κωδικός δεν διαπερνάται
σε όλο το δίκτυο. Αντιθέτως, ο κωδικός βασίζεται απο μια σειρά
αριθμών, όπως και οι πληροφορίες σχετικά με τις αιτήσεις.
Αυτοί οι αριθμοί όταν προσπαθούν να αποκωδικοποιηθούν χρησιμοποιείται
το MD5. Το αποτέλεσμα απ' αυτό λέγετε "digest" και
διανέμεται σε όλο το δίκτυο, και ενώνεται με άλλες ομάδες
στο server για να ελεχθεί με αυτό που είναι αποθηκευμένο στον
server. Αυτή είναι η πιο ασφαλής μέθοδος στο δίκτυο, αλλά
υπάρχει κάποιο πρόβλημα. Η παραβολή των digest στον server
πρέπει να αποθηκευτεί σε μια fashion, η οποία είναι ανακτήσιμη.
Με αυτή την μέθοδο αποθηκεύεται ο κωδικός χρησιμοποιόντας
την λειτουργία μιας κατεύθυνσης crypt(). Όταν ο κωδικός στέλνεται,
ο server τον κωδικοποιεί και τον συγκρίνει με τον αποθηκευμένο.
Δεν υπάρχει τρόπος να σας υποκλέψουν τον κωδικό απο την κρυπρογραφημένη
τιμη. Απο τον MD5, χρειάζεστε τις πληροφορίες που είναι αποθηκευμένες,
έτσι δεν μπορείτε να χρησιμοποείτε function one way hashing
function για να το αποθηκεύσετε. Αυτό σημαίνει ότι το MD5
απαιτεί μεγαλύτερη ασφάλεια στον server machine. Είναι πιθανόν,
να εκτελέσει αυτόν τον τύπο ασφαλείας κάτω απο το μοντέλο
ασφαλείας του Unix.
Basic
Password Authentication. Βήμα προς Βήμα.
Αυτό θα σας βοηθήσει να ρυθμίσετε την προστασία ενός καταλόγου
μέσω του Basic HTTP Authentication method. Η συγκεκριμένη
μέθοδος επίσης χρησιμοποιεί ένα βασικά απλό αρχείο κειμένου
για κωδικό.Θα πρέπει να έχετε εξοικειωθεί με το telnet για
να τελειώσετε αυτές τις οδηγίες. Επίσης, όλα τα 'αρχεία' πρέπει
να δημιουργηθούν με έναν ASCII editor, όπως ο 'Notepad' ή
ο 'SimpleText'.
Ας υποθέσουμε ότι θέλετε να περιορίσετε τα αρχεία σας σε έναν
κατάλογο με όνομα turkey, με username pumpkin
και κωδικο pie. Να τι πρέπει να κάνετε:
ΣΗΜΕΙΩΣΗ: Θα πρέπει να αντικαταστήσετε το "UserID"
με το δικό σας UserID. Θα πρέπει να χρησιμοποιείτε το πλήρης
path του server για οτιδήποτε.Οτιδήποτε παραλήψετε μπορεί
να μην δουλέψει.
Δημιουργήστε ένα αρχείο με όνομα .htaccess (χρησιμοποιήστε
έναν plain text editor) θα μοιάζει ως εξής:
AuthUserFile /drv1/web/home/UserID/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<Limit GET POST>
require user pumpkin
</Limit>
*Σημειώσεις για Ειδικούς*: Η τιμή για το AuthName
μπορεί να είναι οτιδήποτε. Το πεδίο AuthName σας δίνει το
Realm name αυτού που θέλουμε προστατέψουμε. Αυτό το όνομα
δίνεται συνήθως όταν ο browser μας ζητάει το password, και
συνήθως χρησιμοποιείται απο έναν browser σε συνεργασία με
το URL, για να σώσει τις πληροφορίες του κωδικού που εισάγετε,
έτσι ώστε να είναι αυτόματα προσπελάσιμο στην επόμενη 'είσοδο'.
Σημείωση: Θα πρέπει να το ρυθμίσετε σε κάτι, διαφορετικά θα
προκαθοριστεί στο ByPassword, το οποίο δεν είναι περιγραφικό
και απλό.
AuthType θα πρέπει να ρυθμιστεί σαν Basic,
εφόσον χρησιμοποιούμε το Basic HTTP Authentication
*Σημειώσεις για ειδικούς*: Σε αυτή την περίπτωση δεν υπάρχει
group file, έτσι εμείς συγκεκριμενοποιούμε specify/dev/null
(ο βασικός τρόπος στο Unix για να λέμε ότι "this file
doesn't exist").
|
Δημιουργήστε
έναν κατάλογο στον Virtual Server ονομαζόμενο turkey,
και τοποθετήστε το αρχείο .htaccess file.
Θα πρέπει να φορτώσετε αυτό το αρχείο σε μορφή text/ASCII
ή διαφορετικά δεν θα λειτουργήσει! Το 'Auto Detect' και
το 'Automatic' transfers δεν θα λειτουργούν.
|
|
Δημιουργήστε
το αρχείο κωδικού στον κατάλογο /drv1/web/home/UserID/.htpasswd
Ο πιο εύκολος τρόπος για να το κάνετε, είναι να χρησιμοποιήσετε
το πρόγραμμα htpasswd στον server μας. Ετσι φορτώστε
το telnet στον Virtual Server 'home directory' και γράψτε
αυτό:
/var/www/bin/htpasswd -c /drv1/web/home/UserID/.htpasswd
pumpkin
|
|
Ρυθμίστε
τον κωδικό γράφοντας στον κωδικό -- pie -- τα
οποία αναθέτονται απο την γραμμή εντολών του UNIX.
|
|
Τώρα
προσπαθήστε να έχετε πρόσβαση στο αρχείο του καταλόγου
turkey χρησιμοποιόντας τον δικό σας web browser.
Όταν γράψετε την διεύθυνση, απαιτείται το username και
ο κωδικός, και δεν σας δίνει πρόσβαση στο αρχείο εάν δεν
εισάγετε pumpkin και pie.
|
*ΣΗΜΕΙΩΣΗ* Εάν χρησιμοποιείτε έναν browser, ο οποίος δεν
μπορεί να χειριστεί το password authentication, δεν θα έχετε
πρόσβαση στα αρχεία.
Πολλαπλά
User names / Passwords
Εάν θέλετε να δώσετε πρόσβαση για έναν κατάλογο σε περισσότερους
απο ένα ζεύγος username/ password, ακολουθήστε τις παρακάτω
συμβουλές:
|
Προσθέστε
χρήστες στον κατάλογο του αρχείου .htpasswd
Για να το κάνετε χρησιμοποιήστε την εντολή htpasswd
(χωρίς την -c flag) για να προσθέσετε χρήστες.
Για παράδειγμα, γράψτε:
/var/www/bin/htpasswd /drv1/web/home/UserID/.htpasswd
peanuts
/var/www/bin/htpasswd /drv1/web/home/UserID/.htpasswd
almonds
/var/www/bin/htpasswd /drv1/web/home/UserID/.htpasswd
walnuts
|
|
Τώρα,
εισάγετε τους νέους σας χρήστες στο αρχείο .htaccess
όπως παρακάτω :
AuthUserFile /drv1/web/home/User ID/.htpasswd
AuthGroupFile /dev/null
AuthName ByPassword
AuthType Basic
<Limit GET Post Put>
require user pumpkin peanuts almonds walnuts
</Limit> |
Πολλαπλή Πρόσβαση
Δεν χρειάζετε να απασχολείστε με αυτό εώς ώτου αποκτήσετε
μεγάλο αριθμό χρηστών. Οι οδηγίες για το Πολλαπλά
User names/Passwords είναι πολύ απλές. Αλλά εάν θέλετε
να δώσετε δικαιώματα πρόσβασης για ένα κατάλογο σε ένα γκρουπ
χρηστών, ακολουθήστε τις παρακάτω οδηγίες.
|
Δημιουργήστε
ένα ομαδικό αρχείο. Θα έχει το όνομα .htgroup,
και θα υπάγετε στον κατάλογο home : /drv1/web/home/UserID
Τα περιεχόμενα αυτού του αρχείου θα μοιάζουν ώς εξής:
my-users: pumpkin peanuts almonds walnuts
όπου pumpkin, peanuts, almonds, και walnuts είναι τα ονόματα
των χρηστών.
|
|
Στην
συνέχεια τροποποιήστε το αρχείο .htaccess στον
κατάλογο να μοιάζει ως εξής:
AuthUserFile /drv1/web/home/UserID/.htpasswd
AuthGroupFile /drv1/web/home/UserID/.htgroup
AuthName ByPassword
AuthType Basic
<Limit GET Post>
require group my-users
</Limit>
Σημείωση το AuthGroupFile καθορίζει το group
file σας και αυτό το γκρουπ my- users είναι έτοιμο
προς προσπέλαση. |
Αυτό είναι. Απο τα παραπάνω προκύπτει ότι οποιοσδήποτε απο
το group my-users μπορεί να χρησιμοποιεί το username
και τον κωδικό του και να προσπελάσει τον κατάλογοturkey.
Περιορισμός
Πρόσβασης της IP Adress ή του Host
Για να περιορίσετε την πρόσβαση στην IP addresses, χρησιμοποιήστε
το αρχείο .htaccess όπως παρακάτω:
<Limit GET POST PUT>
order allow,deny
allow from all
deny from .ncsa.uiuc.edu
</Limit>
Αυτό υποχρεώνει τους χρήστες να χρησιμοποιούν.ncsa.uiuc.edu
όπως και στο δικτυό τους.
Syntax
allow from host1 host2 ... hostn
Όπου host είναι ένα απο τα ακόλουθα
|
A
domain name
Ενα domain name, όπως .ncsa.uiuc.edu |
|
A
host name
A full host name. |
|
A
full IP address
An IP address of a host. |
|
A
partial IP address
The first 1-3 bytes of an IP address, for subnet restriction.
Note: This is accomplished by doing a strncmp, so in order
to actually match bytes, you need to leave off the trailing
dot, ie: 128.174.5 will match host 128.174.50.7, whereas
128.174.5. will not. |
The keyword all
Παραδείγματα
Παρακάτω υπάρχουν αρκετά παραδείγματα, τα οποία δείχνουν την
σειρά των δραστηριοτήτων για την άδεια πρόσβασης.
|
Απλή
προστασία με τον κωδικό.
Αυτό
το αρχείο είναι προσπελάσιμο μόνο για αυτούς που χρησιμοποιούν
το fido με κωδικό bones.
Σημαντική Σημείωση: Δεν υπάρχει ανταπόκριση μεταξύ
των ονομάτων των χρηστών και των κωδικών στο σύσημα Unix
(π.χ. στο /etc/passwd file) και τα ονόματα των χρηστών
και οι κωδικοί στα σχήματα αυθεντικότητας τα συζητάμε
για την χρήση τους στοWeb. Ερμηνεύονται στα παραδείγματα,
τα Web-based authentication χρησιμοποιούν όμοια αλλά ξεχωριστά
αρχεία κωδικού; ο χρήστης δεν έχει λογαριασμό που του
έχει αποδωθεί απο το σύστημα Unix, η πρόσβαση κανονίζεται
απο το system και προστατεύεται απο το HTTP-based authentication.
|
|
Protection
by password; multiple users allowed.
Αυτό
το αρχείο είναι προσπελάσιμο για όσους χρησιμοποιούν
rover με κωδικό bacon και jumpy με κωδικό kibbles.
|
|
Protection
by network domain.
Αυτό
το αρχείο είναι προσπελάσιμο για πελάτες που τρέχουν
τους υπολογιστές τους μέσα απο το domain ncsa.uiuc.edu.
|
Πληροφορίες
|
NCSA
httpd Authentication Directives |
- AccessFileName
- Access
Configuration
|
|
|
|