sch-scripts/squid

Ρύθμιση squid

1. Εισαγωγή

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

  • Τοπική αποθήκευση των σελίδων για πιο γρήγορη πλοήγηση
  • Σε κάποιους χρήστες επιτρέπεται ελεύθερα η πρόσβαση στο διαδίκτυο
  • Για τους υπόλοιπους χρήστες απαγορεύεται η πρόσβαση σε συγκεκριμένα sites
  • Σε κάποιους χρήστες απαγορεύεται εντελώς η πρόσβαση στο διαδίκτυο

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

Δημιουργούμε 3 λίστες

  • whitelist_users.acl με τους χρήστες που θα έχουν ελεύθερη πρόσβαση σε όλα τα domains
  • banned_domains.acl με τα domains που θα αποκλείονται (π.χ. facebook, hi5)
  • banned_users.acl με τους χρήστες που τους έχει απαγορευτεί η πρόσβαση

Η λίστες αυτές θα οριστούν με τέτοιο τρόπο ώστε να υπερισχύει αυτή που είναι πιο πάνω. (πχ. αν κάποιος/α είναι στη whitelist_users και στη banned_users τότε έχει ελεύθερη πρόσβαση στο δίκτυο. Αν κάποιος/α είναι στη whitelist_users και προσπαθήσει να ανοίξει ένα site που είναι στη banned_domains τότε θα μπορεί να ανοίξει το site κανονικά)

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

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

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

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

sudo apt-get install squid3 
  • Στο φάκελο /etc/squid3 δημιουργήστε 3 αρχεία. Ένα για κάθε λίστα που περιγράψαμε πιο πάνω. Το κάθε αρχείο περιέχει μόνο τα ονόματα των χρηστών ή των domains που ανήκουν σε αυτήν τη λίστα. Δίνουμε παραδείγματα των αρχείων αυτών.

whitelist_users.acl (οι χρήστες που θα έχουν ελεύθερη πρόσβαση - ένας ανά γραμμή)

lab-admin
teacher
user1

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

facebook
.hi5.com
video.google.com

banned_users.acl (οι χρήστες που δεν θα έχουν καθόλου πρόσβαση στο διαδίκτυο - ένας ανά γραμμή)

user3
giannis

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

  • Στο αρχείο /etc/squid3/squid.conf κάτω από το #Recommended minimum configuration βάζετε (άλλαξε και αποσχολιάστε το υπο-δίκτυο):

        #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"
        acl banned_users ident "/etc/squid3/banned_users.acl"
        acl whitelist_users ident "etc/squid3/whitelist_users.acl"
        deny_info ERR_SCH-SCRIPTS_BANNED_DOMAINS banned_domains
        deny_info ERR_SCH-SCRIPTS_BANNED_USERS banned_users
        http_access allow whitelist_users        
        http_access deny banned_users
        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
    Αυτό πρέπει να γίνεται κάθε φορά που αλλάζει κάποιο από τα αρχεία ρυθμίσεων
  • Δηλώστε τον proxy στον εξυπηρετητή. Η πόρτα (port) στην οποία ακούει το squid είναι η 3128.

sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/proxy/mode' 'auto'
sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/proxy/autoconfig_url' 'http://server/wpad.dat'
  • Για την περίπτωση που έχετε fat clients πρέπει να δηλώσετε τον proxy και στον εικονικό δίσκο

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

gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/proxy/mode' 'auto'
gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/proxy/autoconfig_url' 'http://server/wpad.dat'

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

Όποια/ος θέλει να βρει λεπτομέρειες και πληροφορίες για το πως λειτουργεί το squid μπορεί να ξεκινήσει από εδώ:

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

sch-scripts/squid (last edited 19-06-2010 20:01:13 by anonymous)