sch-scripts/squid

Ρύθμιση squid

1. Εισαγωγή

Το squid είναι μια εφαρμογή διαμεσολάβησης δικτύου (web proxy). Αυτό που κάνει είναι να αποθηκεύει τις σελίδες που προσπελαύνουν οι πελάτες στον τοπικό εξυπηρετητή και αν στη συνέχεια ζητηθούν από άλλον (ή και τον ίδιο) πελάτη να τις παρέχει ο τοπικός εξυπηρετητής. Με αυτόν τον τρόπο μειώνεται η κίνηση δεδομένων από και προς το δίκτυο και η περιήγηση γίνεται πιο γρήγορη. Επίσης μπορεί να λειτουργήσει και σαν ελεγκτής της πρόσβασης στο διαδίκτυο. Να απαγορεύει δηλαδή την πρόσβαση σε ορισμένα sites ή να απαγορεύει την πρόσβαση σε ορισμένους χρήστες. Οι τρόποι που μπορεί να ρυθμιστεί το squid και οι πολιτικές που μπορεί να εφαρμόσει είναι πάρα πολλοί, στη συνέχεια παραθέτουμε οδηγίες για την εφαρμογή της ακόλουθης πολιτικής:

  • Τοπική αποθήκευση των σελίδων για πιο γρήγορη πλοήγηση
  • Απαγορεύεται η πρόσβαση σε κάποια site

2. Γενική περιγραφή

Δημιουργούμε 1 λίστα

  • banned_domains.acl με τα domains που θα αποκλείονται (π.χ. facebook, hi5)

Στη συνέχεια ρυθμίζουμε το squid ώστε να υλοποιεί την παραπάνω πολιτική βασισμένο στο περιεχόμενο της λίστας

3. Η διαδικασία βήμα βήμα

Όλες οι αναφερόμενες ενέργειες γίνονται στον εξυπηρετητή.

  • Εγκατάσταση του squid

sudo apt-get install squid3 
  • Στο φάκελο /etc/squid3 δημιουργήστε το αρχείο banned_domains.acl. Το αρχείο περιέχει τα domain που θέλουμε να μπλοκάρουμε. Π.χ:

banned_domains.acl (τα domains που θα απαγορεύονται - ένα ανά γραμμή) μπορείτε να βάλετε και τμήμα του domain

facebook
.hi5.com
video.google.com

Το αρχείο αυτό είναι οι html σελίδα που θα εμφανίζεται στους χρήστες όταν προσπαθήσουν να προσπελάσουν μία σελίδα στην οποία δεν έχουν πρόσβαση. Μπορείτε να το αλλάξετε ελεύθερα ώστε να ταιριάζει στο πνεύμα και την αισθητική σας.

  • Στο αρχείο /etc/squid3/squid.conf κάτω από το # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS βάζετε (άλλαξε και αποσχολιάστε το υπο-δίκτυο):

        #SCH-SCRIPTS begin
        error_directory /usr/share/squid3/errors/el   
#       acl schoolnet src 10.x.y.0/24
        acl banned_domains url_regex -i "/etc/squid3/banned_domains.acl"
        deny_info ERR_SCH-SCRIPTS_BANNED_DOMAINS banned_domains
        http_access deny banned_domains
        http_access allow localhost
        http_access allow schoolnet
        http_access deny all
        #SCH-SCRIPTS end

  • επαναφορτώνετε τις ρυθμίσεις

    sudo invoke-rc.d squid3 force-reload
    Αυτό πρέπει να γίνεται κάθε φορά που αλλάζει κάποιο από τα αρχεία ρυθμίσεων
  • Αν έχετε fat clients πρέπει να δηλώσετε τον proxy στον εικονικό δίσκο

    Από το περιβάλλον sch-scripts πηγαίνετε: Εξυπηρετητής --> Εικονικός δίσκος --> Άνοιγμα κονσόλας και στην κονσόλα που ανοίγει δίνετε τις εντολές (χωρίς sudo):

gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/proxy/mode' 'manual'
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type bool --set '/system/http_proxy/use_http_proxy' true
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/http_proxy/host' 'server'
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type int --set '/system/http_proxy/port' 3128
  • Για thin clients δηλώστε τον proxy στον server:

sudo gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/proxy/mode' 'manual'
sudo gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type bool --set '/system/http_proxy/use_http_proxy' true
sudo gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/http_proxy/host' 'server'
sudo gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type int --set '/system/http_proxy/port' 3128

Στην γενική περίπτωση που έχετε αυτόνομους υπολογιστές (standalone computers) με οποιοδήποτε λειτουργικό σύστημα δηλώστε τον proxy στους clients. Η πόρτα (port) στην οποία ακούει το squid είναι η 3128.

Αν οι υπολογιστές τρέχουν ubuntu δώστε τις εντολές που δώσατε για τους thin clients έχοντας αντικαταστήσει το server με την πραγματική διεύθυνση του server

Αν κάνετε αλλαγές στα αρχεία ρυθμίσεων μην ξεχάσετε να επαναφορτώσετε τις ρυθμίσεις στο squid

  • sudo invoke-rc.d squid3 force-reload

Ο διαμεσολαβητής squid μπορεί να χρησιμοποιηθεί από οποιοδήποτε υπολογιστή του υποδικτύου ανεξαρτήτως λειτουργικού συστήματος. Το μόνο που χρειάζεται είναι να δηλωθεί σαν διαμεσολαβητής στις ρυθμίσεις του συστήματος ή της εφαρμογής

Ένα πιο πολύπλοκο σενάριο για πιο λεπτομερή ρύθμιση του squid:

../squid-advanced

Πιο λεπτομερείς οδηγίες για την εγκατάσταση του squid μπορείτε να βρείτε στο σχετικό οδηγό της Τεχνικής Στήριξης του ΠΣΔ.

  • Η μέθοδος που περιγράφει ο οδηγός για τη χρήση του squid από τους clients του εργαστηρίου είναι διαφορετική από τη μέθοδο που περιγράφεται παραπάνω.

Πληροφορίες για το πως λειτουργεί ο διαμεσολαβητής squid:

http://wiki.squid-cache.org/FrontPage

sch-scripts/squid (last edited 02-12-2010 21:59:52 by ?boukeas)