+++
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}

![](/33/img/net.gif)

Το παραπάνω σχεδιάγραμμα αντιπροσωπεύει ένα τυπικό δίκτυο, πάνω στο οποίο θα εφαρμόσω όλες τις τεχνικές.

### [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 σε Ελλάδα και εξωτερικό, όπως επίσης και σελίδες με
