Μέθοδοι Προστασίας

 


Παρουσίαση
Ξεκινώντας
Γενικές Πληροφορίες
Πόσο Ασφαλή είναι;
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

 

 
 
     

Αρχή σελίδας
 
(c) 2001 created by Magnet Internet Services