320 γραμμές
32 KiB
Markdown
320 γραμμές
32 KiB
Markdown
+++
|
||
title = 'Τιθασεύοντας την κίνηση του δικτύου σας, Μέρος 1ο'
|
||
date = '2003-06-01T00:00:00Z'
|
||
description = ''
|
||
author = 'Στοΐλης Ιωάννης giannis@stoilis.gr'
|
||
issue = ['Magaz 33']
|
||
issue_weight = 3
|
||
+++
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
*Δυστυχώς, το Ίντερνετ στην Ελλάδα είναι είδος πολυτελείας. Για εταιρείες που το χρειάζονται απαραίτητα, είναι ένας οικονομικός βραχνάς. Η σειρά των άρθρων που
|
||
θα ακολουθήσει, αποσκοπεί στο να ρυθμίσετε, με την χρήση ενός Linux server, με τον καλύτερο δυνατό την χρήση της γραμμή σας.*
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
**1. Πρόλογος**
|
||
--------------------------------------
|
||
|
||
- [1.1 Το πρόβλημα](#ss1.1)
|
||
- [1.2 Η λύση](#ss1.2)
|
||
- [1.3 Τι θα ακολουθήσει;](#ss1.3)
|
||
- [1.4 Τι ΔΕΝ θα ακολουθήσει;](#ss1.4)
|
||
- [1.5 \"Δεν μου δουλεύει όσο καλά λες ότι λειτουργεί\"](#ss1.5)
|
||
- [1.6 Επικοινωνία](#ss1.6)
|
||
|
||
**2. Το δίκτυο**
|
||
---------------------------------------
|
||
|
||
- [2.1 Σχηματική παράσταση του δικτύου.](#ss2.1)
|
||
- [2.2 Ανάλυση του δικτύου](#ss2.2)
|
||
- [2.3 Κοινές παραλλαγές του δικτύου](#ss2.3)
|
||
|
||
**3. Proxy server**
|
||
------------------------------------------
|
||
|
||
- [3.1 Τι είναι ο proxy server;](#ss3.1)
|
||
- [3.2 Σε τι μηχάνημα;](#ss3.2)
|
||
- [3.3 Τι είναι το latency;](#ss3.3)
|
||
- [3.4 Ποιον proxy server;](#ss3.4)
|
||
|
||
**4. Διαδικασία**
|
||
----------------------------------------
|
||
|
||
- [4.1 Download του squid](#ss4.1)
|
||
- [4.2 Μεταγλώττιση](#ss4.2)
|
||
- [4.3 Ρύθμιση του squid](#ss4.3)
|
||
- [4.4 Η πρώτη δοκιμή](#ss4.4)
|
||
|
||
**5. ΠΡΑΓΜΑΤΙΚΗ ρύθμιση του squid**
|
||
----------------------------------------------------------
|
||
|
||
**6. Επίλογος**
|
||
--------------------------------------
|
||
|
||
- [6.1 Ανασκόπηση](#ss6.1)
|
||
- [6.2 Τι θα ακολουθήσει;](#ss6.2)
|
||
|
||
|
||
### [1. Πρόλογος]{#s1}
|
||
|
||
### [1.1 Το πρόβλημα]{#ss1.1}
|
||
|
||
Η ιστορία αυτής της σειράς άρθρων, ξεκινά από τα παράπονα μιας εταιρείας πριν από περίπου δύο χρόνια. Παραπονιόντουσαν για αργή ταχύτητα σύνδεσης με το
|
||
Ίντερνετ, παρόλο που είχαν μισθωμένη γραμμή 256kbit. Όταν πήγα να ερευνήσω το θέμα, με έκπληξη βρήκα ένα δίκτυο με περίπου 100 υπολογιστές να βγαίνουν απευθείας
|
||
στο Ίντερνετ με NAT, χωρίς proxy. Η λύση ήταν προφανής.
|
||
|
||
### [1.2 Η λύση]{#ss1.2}
|
||
|
||
Μέσα σε λίγες μέρες, έστησα έναν Linux proxy server και η κατάσταση βελτιώθηκε αισθητά. Με τον καιρό, αυξήθηκαν οι απαιτήσεις και δεν είχα παρά να αξιοποιήσω
|
||
τον Linux server στο μέγιστο. Χρησιμοποίησα squid access pools, active directory authentication integration, QoS με tc και παραγωγή στατιστικών για σχεδόν
|
||
οτιδήποτε είναι δυνατόν να μετρηθεί. Μετά από ένα χρόνο, το όλο εγχείρημα έχει φτάσει σε ένα ώριμο στάδιο, οπότε θεώρησα χρήσιμο να καταγράψω όλες τις κινήσεις
|
||
μου, μέσω του [magaz](http://magaz.hellug.gr), ώστε να βοηθήσω όσους περισσότερο μπορώ.
|
||
|
||
### [1.3 Τι θα ακολουθήσει;]{#ss1.3}
|
||
|
||
Βασικά, αυτό που θα ακολουθήσει είναι \"Τι μπορούμε να κάνουμε με ένα proxy server\". Δεν είναι πρωτότυπο σαν άρθρο, υπάρχουν παρόμοιοι οδηγοί παντού στο
|
||
Ίντερνετ, στα αγγλικά. Ελπίζω όμως να παρέχω στον Έλληνα αναγνώστη την δυνατότητα να τα βρει όλα μαζεμένα σε μια γωνιά του Ίντερνετ, αλλά επίσης φιλοδοξώ και να
|
||
εξηγήσω τον τρόπο σκέψης που θα πρέπει να έχει ένας διαχειριστή που ξέρει μεν τι να κάνει, αλλά δεν ξέρει το πως.
|
||
|
||
### [1.4 Τι ΔΕΝ θα ακολουθήσει;]{#ss1.4}
|
||
|
||
Αυτή η σειρά των άρθρων δεν πρόκειται σε καμία περίπτωση να καλύψει τον κάθε τρόπο που μπορεί να γίνει μια οποιαδήποτε εργασία. Υπάρχουν πραγματικά αμέτρητοι
|
||
τρόποι και αμέτρητοι συνδυασμοί προγραμμάτων, ρυθμίσεων και τοπολογίας δικτύου, για να επιτύχετε αυτό που θέλετε. Εγώ θα παραθέσω αυτά που έκανα, και τα
|
||
αποτελέσματά τους. Είναι σίγουρο ότι μπορούν να γίνουν με διαφορετικό τρόπο, ευκολότερα ή δυσκολότερα.\
|
||
Επίσης, το άρθρο αυτό παίρνει ως δεδομένο ότι έχετε καλή γνώση του δικτύου σας, όπως επίσης και καλή γνώση διαχείρισης του Linux.
|
||
|
||
### [1.5 \"Δεν μου δουλεύει όσο καλά λες ότι λειτουργεί\"]{#ss1.5}
|
||
|
||
Δυστυχώς, αυτό είναι το μόνο σίγουρο. Το όλο εγχείρημα είναι αρκετά περίπλοκο και χρειάζεται αρκετό παιχνίδι και χρόνο εκ μέρους σας, για να φτάσει στο καλύτερο
|
||
δυνατό αποτέλεσμα. Ο λόγος που θα εξηγήσω τόσο λεπτομερώς τι έκανα και γιατί, είναι και για να σας δείξει πως μπορείτε να πειραματιστείτε μόνοι σας.
|
||
|
||
<giannis@stoilis.gr>.
|
||
|
||
|
||
### [2. Το δίκτυο]{#s2}
|
||
|
||
### [2.1 Σχηματική παράσταση του δικτύου.]{#ss2.1}
|
||
|
||

|
||
|
||
Το παραπάνω σχεδιάγραμμα αντιπροσωπεύει ένα τυπικό δίκτυο, πάνω στο οποίο θα εφαρμόσω όλες τις τεχνικές.
|
||
|
||
### [2.2 Ανάλυση του δικτύου]{#ss2.2}
|
||
|
||
PC1, PC2, PC3 και PC4: Αυτοί είναι κάποιοι σταθμοί εργασίας του δικτύου μας. Οι μετρήσεις μας θα γίνουν από αυτούς. Στο δικό μου δίκτυο είναι περίπου 120 οι
|
||
υπολογιστές.\
|
||
WEB SERVER: Είναι ένας server με πραγματική διεύθυνση στο Internet, που σερβίρει τις σελίδες της εταιρείας.\
|
||
MAIL SERVER: Είναι άλλος ένας server με πραγματική διεύθυνση στο Internet, που ασχολείται με όλα τα εισερχόμενα και εξερχόμενα e-mails της εταιρείας.\
|
||
ΕΞΩΤΕΡΙΚΟΣ ROUTER: Μια δικτυακή συσκευή που συνδέει το εσωτερικό μας δίκτυο με το Internet μέσω μιας μισθωμένης γραμμής. Κάνει NAT και εκτελεί και χρέη
|
||
firewall. Στο δίκτυο μου είναι ένας Cisco router.\
|
||
INTERNET: Στο δικό μου δίκτυο, η γραμμή σύνδεσης με το Internet είναι 256kbit. Βασικά, δεν έχει καμία σημασία αν έχετε μικρότερη ή μεγαλύτερη ταχύτητα από
|
||
αυτήν. Η ανάγκη των τεχνικών που αναφέρω εφαρμόζονται καλύτερα ανάλογα με το πόσοι υπολογιστές θα μοιραστούν την ταχύτητα. Όσοι περισσότεροι υπολογιστές, τόσο
|
||
μεγαλύτερη η ανάγκη για εξοικονόμηση bandwidth, είτε πρόκειται για σύνδεση 33.6kbit, είτε για 1mbit.\
|
||
PROXY SERVER: Ο proxy server του δικτύου μας, με τον οποίο θα ασχοληθούμε. Προσέξτε ότι έχει δύο κάρτες δικτύου, μία για κάθε δίκτυο που συνδέεται.
|
||
|
||
### [2.3 Κοινές παραλλαγές του δικτύου]{#ss2.3}
|
||
|
||
Η πιο κοινή διαφορά του δικτύου αυτού με άλλα μικρότερα, είναι ο router. Πολλά δίκτυα έχουν ήδη έναν Linux server που κάνει το dialup στο Internet με ISDN. Δεν
|
||
έχει καμία απολύτως σημασία σε αυτά τα άρθρα, έχει όμως σημασία το θέμα της ασφάλειας, επειδή ο Linux server είναι αυτός που θα κάνει το NAT και το firewall. Η
|
||
εγκατάσταση αυτών δεν αφορά αυτό το άρθρο, θεωρώ ότι υπάρχουν ήδη.
|
||
|
||
|
||
### [3. Proxy server]{#s3}
|
||
|
||
### [3.1 Τι είναι ο proxy server;]{#ss3.1}
|
||
|
||
Proxy server ονομάζουμε οποιοδήποτε πρόγραμμα ή υπολογιστή λειτουργεί ως ενδιάμεσος για οποιαδήποτε σύνδεση δικτύου θέλουμε να κάνουμε. Ας πούμε για παράδειγμα
|
||
ότι και οι τέσσερις υπολογιστές θέλουν να συνδεθούν στην σελίδα <http://www.hellug.gr/>. Χωρίς proxy, η σελίδα αυτή θα ζητηθεί από το Ίντερνετ 4 φορές. Αν
|
||
χρησιμοποιούμε proxy, η σελίδα θα ζητηθεί μια φορά, και ο proxy θα αναλάβει να κρατήσει ένα αντίγραφο στην μνήμη ή τον δίσκο του. Μετέπειτα, όποιος ζητάει την
|
||
συγκεκριμένη σελίδα, o proxy δεν χρειάζεται να την ξαναζητήσει από το internet, εξοικονομώντας έτσι bandwidth για άλλες δουλειές.
|
||
|
||
### [3.2 Σε τι μηχάνημα;]{#ss3.2}
|
||
|
||
Όσοι έχουν ασχοληθεί με διαχείριση Linux και Windows 2000, γνωρίζουν από πρώτο χέρι, ότι το Linux είναι πιο ελαφρύ λειτουργικό σύστημα από τα Windows. Για αυτό,
|
||
υπάρχει μια τάση να εγκαθιστούμε το Linux σε απαρχαιωμένο hardware, για λόγους οικονομίας. Η αλήθεια είναι ότι δουλεύει, και δουλεύει καλά. Υπάρχει όμως ένα
|
||
μειονέκτημα που πρέπει να λάβετε υπόψιν. Το latency.
|
||
|
||
### [3.3 Τι είναι το latency;]{#ss3.3}
|
||
|
||
Αφότου χρησιμοποιήσετε ένα proxy server σε ένα δίκτυο μαζί με τεχνικές QoS που θα αναλύσω σε επόμενα άρθρα, να γνωρίζετε ότι αυτομάτως θα χαθεί η \"σπιρτάδα\"
|
||
του Internet. Οι συνδέσεις σε άλλους server αντί να γίνονται αστραπιαία, μπορεί να γίνονται πλέον σε ένα δευτερόλεπτο. Οι σελίδες του Internet θα αρχίσουν να
|
||
κατεβαίνουν με μεγαλύτερη αρχική καθυστέρηση αρκετών millisecond, αλλά σε τελική ταχύτητα θα είναι σίγουρα πιο γρήγορες από το να μην χρησιμοποιείτε καθόλου
|
||
proxy server.
|
||
|
||
Στην περίπτωση του QoS, αν δεν είναι καλο-ρυθμισμένο, αυτό το φαινόμενο μπορεί να ενταθεί σε μεγάλο βαθμό, διότι, ανάλογα με τους κανόνες που θα εφαρμόσουμε,
|
||
δίνουμε στον proxy server το δικαίωμα να σταματά κάθε πακέτο που περνά από μέσα του, να το κοιτάει, να συμβουλεύεται του κανόνες που θα του έχετε βάλει, να
|
||
κατηγοριοποιεί το πακέτο ανάλογα με την σπουδαιότητά του, και μετά να επεξεργάζεται όλα τα πακέτα που έχει στην ουρά, αρχίζοντας από τα σημαντικότερα.
|
||
|
||
Στην περίπτωση του squid, όταν ζητάμε μια σελίδα, πρώτα ελέγχει την βάση του στην μνήμη αν έχει αυτή την σελίδα. Αν την έχει, θα πρέπει να ψάξει τον δίσκο του,
|
||
ανάμεσα σε χιλιάδες άλλες. Μετά, θα πρέπει να διαπιστώσει αν το αντίγραφο που έχει είναι ξεπερασμένο. Σε αυτή την περίπτωση, θα πρέπει να κάνει νέο αντίγραφο.
|
||
Αν διαπιστώσει ότι δεν έχει χώρο, πρέπει βρει ποια είναι η σελίδα που έχει πιο πολύ καιρό να ζητηθεί, να την σβήσει και μετά να αφήσει εκεί ένα νέο αντίγραφο
|
||
της σελίδας που θέλει, στέλνοντας (ΕΠΙΤΕΛΟΥΣ!!!) την σελίδα σε αυτόν που την ζήτησε.
|
||
|
||
Η όλη διαδικασία, μπορεί να διαρκέσει μερικές φορές ακόμα και μερικά δευτερόλεπτα, στην χειρότερη περίπτωση. Αυτό το φαινόμενο όμως, είναι δυνατό να
|
||
ελαχιστοποιηθεί με ένα καλό και γρήγορο μηχάνημα, με γρήγορους δίσκους, και αρκετή μνήμη. Η χρήση RAID0 είναι συνηθισμένη, σε περιπτώσεις που θέλουμε να έχουμε
|
||
το καλύτερο δυνατό αποτέλεσμα. Επίσης, είναι καλό να μην τρέχει τίποτα άλλο, ώστε να μην τον απασχολούμε με περιττές εργασίες.
|
||
|
||
Τέλος, προτείνω το μηχάνημα να είναι εξοπλισμένο με δύο καλές και επώνυμες κάρτες δικτύου. Η διαφορά τιμής μιας καλής κάρτας δικτύου από μια παλιά ή και ανώνυμη
|
||
είναι γελοία.
|
||
|
||
### [3.4 Ποιον proxy server;]{#ss3.4}
|
||
|
||
Υπάρχει πραγματικά μεγάλη πληθώρα proxy server στο Ίντερνετ, με τον καθένα από αυτούς να υποστηρίζει περισσότερα ή λιγότερα πρωτόκολλα και δυνατότητες. Μετά από
|
||
έρευνα, κατέληξα στον [squid](http://www.squid-cache.org/). Είναι ο πιο διαδεδομένος, είναι GPLed, υπάρχει εδώ και πολλά χρόνια, είναι σταθερός, υποστηρίζεται
|
||
από πληθώρα εφαρμογών και υποστηρίζει τις περισσότερες λειτουργίες από αυτές που μας ενδιαφέρουν.
|
||
|
||
|
||
### [4. Διαδικασία]{#s4}
|
||
|
||
### [4.1 Download του squid]{#ss4.1}
|
||
|
||
Μπορείτε να κατεβάσετε τον squid από εδώ <http://www.squid-cache.org/Versions/> την τελευταία stable έκδοση.
|
||
|
||
**Σημείωση: ΠΡΕΠΕΙ να το κατεβάσετε και να το κάνετε compile, διότι μια δυνατότητα που θα χρησιμοποιήσουμε (delay pools) είναι απενεργοποιημένη από default στα
|
||
διάφορα pre-compiled binaries που περιλαμβάνονται ήδη στις διάφορες διανομές.**
|
||
|
||
### [4.2 Μεταγλώττιση]{#ss4.2}
|
||
|
||
Αφού το κατεβάσετε και το αποσυμπιέσετε σε ένα προσωρινό φάκελο, κάντε compile με τις εξής εντολές:
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
./configure --enable-delay-pools
|
||
make
|
||
make install
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
### [4.3 Ρύθμιση του squid]{#ss4.3}
|
||
|
||
Ας σιγουρευτούμε καταρχήν ότι δουλεύει. Ξεκινήστε τον, με την εντολή:
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
/usr/local/squid/bin/squid -z
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
Η παραπάνω εντολή δημιουργεί την cache του. Χρειάζεται να χρησιμοποιηθεί μόνο την πρώτη φορά που θα τρέξετε το squid ή αν για οποιοδήποτε λόγο θέλετε να
|
||
μηδενίσετε την υπάρχουσα cache.
|
||
|
||
Τώρα μπορούμε να τον τρέξουμε κανονικά με την εντολή:
|
||
|
||
/usr/local/squid/bin/squid
|
||
|
||
### [4.4 Η πρώτη δοκιμή]{#ss4.4}
|
||
|
||
Ρυθμίστε τον browser από κάποιον υπολογιστή μέσα στο δίκτυο να χρησιμοποιεί ως proxy την IP διεύθυνση του proxy, με την πόρτα 3128. Δοκιμάστε να επισκεφτείτε
|
||
οποιαδήποτε σελίδα. Αν δείτε το μήνυμα \"Access Denied\", τότε είστε σε καλό δρόμο. Το μήνυμα αυτό σημαίνει ότι ο squid δεν είναι ρυθμισμένος να απαντάει σε
|
||
ερωτήματα από IP που δεν γνωρίζει. Για λόγους ασφαλείας, αυτό είναι καλό. Ας το ρυθμίσουμε και αυτό. Βάλτε τις παρακάτω παραμέτρους στο αρχείο ρυθμίσεων του
|
||
squid(/usr/local/squid/etc/squid.conf):
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
acl localnet src_ip 10.0.0.0/8
|
||
http_access allow localnet
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
**Σημαντικό: Ψάξτε το αρχείο και βάλτε την πρώτη ρύθμιση μαζί με τις ήδη υπάρχουσες. Δεν θα δημιουργηθεί πρόβλημα αν δεν το κάνετε, αλλά αν πάτε κάποτε να
|
||
κάνετε αλλαγές, θα χάσετε τον μπούσουλα.\
|
||
Την δεύτερη ρύθμιση ΠΡΕΠΕΙ να την βάλετε ΠΡΙΝ από την υπάρχουσα παράμετρο: \"http\_access deny all\". Αν δεν το κάνετε, δεν θα μετρήσει καθόλου.**
|
||
|
||
Κάντε reload το squid, με την εντολή:
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
/usr/local/squid/bin/squid -k reconfigure
|
||
|
||
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
Με αυτή την εντολή, λέμε στο squid να ξαναδιαβάσει το αρχείο ρυθμίσεών του.
|
||
|
||
Δοκιμάστε πάλι να δείτε κάποια από την σελίδα του browser σας. Αν όλα πάνε καλά, είστε έτοιμοι για παρακάτω.
|
||
|
||
|
||
### [5. ΠΡΑΓΜΑΤΙΚΗ ρύθμιση του squid]{#s5}
|
||
|
||
Αν θέλουμε απλά να παίξει, είναι εύκολο. Αν θέλουμε όμως να παίξει καλά, θα πρέπει να ρυθμίσουμε πολλά πράγματα. Κάθε παράμετρος εξηγείται σαφέστατα μέσα στο
|
||
αρχείο ρυθμίσεων. Δεν έχετε παρά να διαβάσετε τα σχόλια που προηγούνται κάθε παραμέτρου και να κάνετε δοκιμές. Επίσης, στην σελίδα του squid μπορείτε να βρείτε
|
||
το πλήρες manual του. Δυστυχώς όμως, μερικά πράγματα είναι θέματα εμπειρίας. Παρακάτω θα κοιτάξουμε μερικές από τις πιο σημαντικές ρυθμίσεις που μπορούμε να
|
||
κάνουμε.
|
||
|
||
**http\_port IP:PORT**\
|
||
Όπου IP, βάζουμε την εσωτερική διεύθυνση του proxy server. Όπου PORT, βάζουμε την πόρτα όπου θα δέχεται αιτήσεις. Π.χ: **http\_port 10.0.0.1:3128**. Μπορείτε να
|
||
παραλείψετε την δήλωση του IP και έτσι ο squid θα ακούει σε όλες τις διευθύνσεις του server. Για λόγους ασφαλείας, δεν προτείνεται.
|
||
|
||
**icp\_port**\
|
||
Ρύθμιση της πόρτας που ακούει το squid για επικοινωνία με άλλους proxy servers. To 0 το απενεργοποιεί. Απενεργοποιήστε το για να ελαφρύνετε το σύστημα.
|
||
|
||
**cache\_dir**\
|
||
Αυτή η παράμετρος ρυθμίζει το που θα αποθηκεύεται η cache του proxy. Π.χ: **cache\_dir ufs /usr/local/squid/cache 1000 16 256**\
|
||
ufs: Τύπος της cache. \"ufs\" είναι το πιο stable, αφήστε το έτσι, καλύτερα.\
|
||
/usr/local/squid/cache: Φάκελος που βρίσκεται η cache. Το καλύτερο είναι να βρίσκεται σε διαφορετικό δίσκο. Αν όχι, βάλτε το τουλάχιστον σε διαφορετική
|
||
κατάτμηση. Αν πάλι δεν μπορείτε, αφήστε το όπως είναι.\
|
||
1000: Μέγεθος της cache, σε Megabytes. Αυτή η τιμή είναι καθαρά θέμα εμπειρίας. Κάθε administrator έχει την προσωπική του άποψη για το πόσο πρέπει να είναι. Εγώ
|
||
το υπολογίζω με τον εξής εμπειρικό τύπο: **συνολικό bandwidth ΕΠΙ αναμενόμενος χρόνος χρήσης ανά ημέρα**. Π.χ., αν το bandwidth μου είναι 256kbit ανά
|
||
δευτερόλεπτο, και η αναμενόμενη χρήση της γραμμής γίνεται για 8 ώρες την ημέρα, τότε έχουμε 921 Mbytes για αυτή την cache, για αυτή τη χρήση.\
|
||
**ΣΗΜΕΙΩΣΗ: Αν για οποιοδήποτε λόγο αλλάξετε αυτήν την τιμή, π.χ. να την κάνετε μικρότερη για οικονομία χώρου, ΔΕΝ ΧΡΕΙΑΖΕΤΑΙ ΝΑ ΣΒΗΣΕΤΕ ΤΙΠΟΤΑ ΑΠΟ ΤΗΝ CACHE ΜΕ
|
||
ΤΟ ΧΕΡΙ (ναι, το έχω δει και αυτό). Σιγά σιγά μόνο του το squid θα την προσαρμόσει στα μέτρα που του ορίσατε.**\
|
||
Οι υπόλοιπες παράμετροι ρυθμίζουν κάποια πράγματα για την cache, με τα οποία δεν θεωρώ σημαντικό να ασχοληθούμε. Μην τα αλλάξετε, εκτός αν ξέρετε τι κάνετε.
|
||
|
||
**ftp\_user squid\@server.com**\
|
||
Αυτή η παράμετρος δηλώνει το e-mail που θα δίνει το squid στους ftp servers που συνδέεται με anonymous login. Δεν έχει καμία σημασία τι θα βάλετε εδώ, αρκεί να
|
||
μοιάζει με πραγματική e-mail διεύθυνση. Η προεπιλογή του squid δεν παίζει με μερικούς ftp server που κοιτάζουν αν η e-mail διεύθυνση αυτή μοιάζει πραγματική.
|
||
Πλέον αυτό το πρόβλημα δεν φαίνεται να υπάρχει, αλλά καλύτερα να φυλάμε τα ρούχα μας.
|
||
|
||
**shutdown\_lifetime 5 seconds**\
|
||
Είναι το περιθώριο που θα δώσουμε στις σελίδες που ήδη κατεβαίνουν, να τελειώσουν, αφότου δώσουμε εντολή τερματισμού στο squid. Καταντά ενοχλητικό, κατά την
|
||
γνώμη μου, να περιμένεις πάνω από μερικά δευτερόλεπτα, ακόμα και αν αυτό σημαίνει ότι θα διακόψουμε κάποιους χρήστες. Ένα shutdown, γίνεται για σημαντικό λόγο
|
||
μόνο και είναι πιο σημαντικό να τελειώσει το συντομότερο δυνατόν. Βάλτε ότι πιστεύετε.
|
||
|
||
**acl ACLNAME TYPE PARAMETERS**\
|
||
Οι access lists είναι αυτές που δίνουν στο squid την δυνατότητα να κατηγοριοποιεί είτε τις αιτήσεις που δέχεται, είτε τις σελίδες που τραβάει. Θα τις
|
||
χρειαστείτε αρκετές φορές στην διάρκεια των άρθρων αυτών. Η συνταξή τους είναι αρκετά απλή. Ας πάρουμε τις ρυθμίσεις που βάλαμε πριν, για να αφήσουμε το squid
|
||
να δεχτεί τις αιτήσεις μας, για την πρώτη μας δοκιμή:\
|
||
**acl localnet src\_ip 10.0.0.0/8**\
|
||
**acl all src\_ip 0.0.0.0/0**\
|
||
**http\_access allow localnet**\
|
||
**http\_access deny all** Οι access lists χωρίζονται σε δύο κατηγορίες. Η πρώτη κατηγορία περιλαμβάνει το \"τι θα πιάνει\". Η δεύτερη κατηγορία, δηλώνει το \"τι
|
||
θα κάνει αυτό που πιάνει\".\
|
||
H πρώτη γραμμή δηλώνει ότι υπάρχει μια ομάδα υπολογιστών που ονομάζεται all. Στην αυτήν την ομάδα συμπεριλαμβάνεται οποιαδήποτε IP.\
|
||
Η δεύτερη γραμμή δηλώνει ότι υπάρχει μια ομάδα υπολογιστών που ονομάζεται \"localnet\". Σε αυτήν την ομάδα ανήκουν όλοι όσοι είναι στο subnet 10.0.0.0/8. Οι δύο
|
||
τελευταίες γραμμές, κάνουν το εξής: Λένε ότι επιτρέπεται να έχουν πρόσβαση σε σελίδες όσοι ανήκουν στο γκρουπ \"localnet\", δηλαδή όλοι οι υπολογιστές στο
|
||
δίκτυό μας. Η επόμενη γραμμή απαγορεύει την πρόσβαση σε οποιονδήποτε υπολογιστή.\
|
||
Ο έλεγχος αυτών των παραμέτρων από το squid γίνεται από πάνω προς τα κάτω, και δεν κοιτάει παρακάτω αν βρει μια που ταιριάζει στο αίτημα που δέχτηκε. Οπότε, αν
|
||
ένας υπολογιστής του δικτύου μας ζητήσει μια σελίδα, θα \"πιαστεί\" από τον πρώτο κανόνα, θα γίνει δεκτό το αίτημα του και δεν θα προχωρήσει παραπέρα.\
|
||
Αν όμως κάποιος υπολογιστής που δεν είναι στο δίκτυό μας ζητήσει μια σελίδα από το squid, τότε δεν θα πιαστεί παρά μόνο από τον τελευταίο μας κανόνα. Άρα, θα
|
||
απορριφθεί.\
|
||
Οι access lists παρέχουν μεγάλη δύναμη ελέγχου στο squid και επίσης μπορούν να σας προκαλέσουν αρκετά προβλήματα αν δεν τις ρυθμίσετε σωστά.\
|
||
Υπάρχουν πραγματικά πάρα πολλοί τρόποι για να ρυθμίσετε ποίος δεν θα βλέπει τι. Το squid έχει access lists για να απαγορεύει σελίδες ανάλογα με το όνομα του
|
||
υπολογιστή που τις ζήτησε, ανάλογα από που τις ζήτησε, ή ακόμα και αν έχει συγκεκριμένες λέξεις μέσα στο url. Π.χ, θα μπορούσαμε να απαγορεύσουμε σελίδες που
|
||
έχουν την λέξη \"porn\" μέσα στο URL τους. Για περισσότερες πληροφορίες, δείτε τις εξηγήσεις μέσα στο αρχείο ρυθμίσεων του squid, ακριβώς εκεί που αρχίζει η
|
||
πρώτη access list.
|
||
|
||
**cache\_mgr webmaster**\
|
||
Δηλώνει το e-mail του υπεύθυνου αυτού του proxy server. Θα εμφανίζεται σε κάθε σελίδα του squid που δηλώνει ότι υπάρχει κάποιο πρόβλημα. Βάλτε εδώ την διεύθυνσή
|
||
σας. Π.χ. netadmin\@server.com.
|
||
|
||
**forwarded\_for off**\
|
||
Αυτή η παράμετρος ρυθμίζει το αν θα συμπεριλαμβάνει το squid την διεύθυνση του client που ζήτησε την σελίδα, στον server από τον οποίο θα την ζητήσει.
|
||
Απενεργοποιήστε το καλύτερα.
|
||
|
||
|
||
### [6. Επίλογος]{#s6}
|
||
|
||
### [6.1 Ανασκόπηση]{#ss6.1}
|
||
|
||
Είπαμε βασικά πράγματα, όπως το τι είναι ένας proxy server και που χρειάζεται. Είπαμε για τις επιπτώσεις που θα έχει το δίκτυό μας, καλές και κακές.\
|
||
Είπαμε πόσο εύκολο είναι να τον εγκαταστήσουμε, και πόσο δύσκολο είναι να ρυθμίσουμε τα πάντα όπως πρέπει για να δουλεύει τέλεια. Είπαμε ότι αν δεν παίξετε λίγο
|
||
με τις ρυθμίσεις, τότε πιθανότατα δεν θα παίξει με το μέγιστο των δυνατοτήτων του.
|
||
|
||
### [6.2 Τι θα ακολουθήσει;]{#ss6.2}
|
||
|
||
Στο επόμενο άρθρο θα ασχοληθούμε με πιο ενδιαφέροντα πράγματα, όπως το τι προγράμματα μπορούμε να χρησιμοποιήσουμε για να φτιάξουμε στατιστικά που θα μας
|
||
δείχνουν πόσο αποδοτικά λειτουργεί ο proxy server μας, αναφορές για το που πηγαίνουν οι χρήστες μας, περιορισμός ταχύτητας ανά χρήστη, έλεγχος πρόσβασης στον
|
||
proxy με την βοήθεια Windows NT domain ή Windows 2000 active directory, εξαναγκασμός χρήσης του proxy σε ένα δίκτυο, ακόμα και αν δεν το έχουν δηλώσει οι
|
||
χρήστες τους στον browser τους μέσω του transparent proxy.\
|
||
Επίσης, θα δημοσιεύσω και μερικές access lists που θα περιορίζουν σημαντικά τα διαφημιστικά banner σε Ελλάδα και εξωτερικό, όπως επίσης και σελίδες με
|