Windows/Διακομιστής μεσολάβησης Squid

Εισαγωγή

Δείτε εδώ Υπηρεσίες ΣΕΠΕΗΥ/Squid πληροφορίες για τα πλεονεκτήματα της υπηρεσίας του διακομιστή μεσολάβησης

Εγκατάσταση σε περιβάλλον Windows Server

Για τη βασική εγκατάσταση πρέπει να πραγματοποιήσουμε τα ακόλουθα βήματα:

  • Λαμβάνουμε την τελευταία Stable έκδοση του squid από τη διεύθυνση http://squid.acmeconsulting.it/. Το παρόν εγχειρίδιο βασίζεται στην έκδοση «2.7 Stable 8 Standard», διαθέσιμη ως binary από το http://squid.acmeconsulting.it/download/dl-squid.html.
  • Αποσυμπιέζουμε το zip αρχείο και αντιγράφουμε τα περιεχόμενά του στο φάκελο στο c:\squid.
  • Μετονομάζουμε όλα τα αρχεία του φακέλου etc (c:\squid\etc) από .conf.default σε .conf (π.χ από squid.conf.default σε squid.conf).
  • Ανοίγουμε για επεξεργασία το αρχείο squid.conf με οποιοδήποτε editor (πχ wordpad). Κάνουμε εύρεση για το: acl localnet src. Αλλάζουμε τις εγγραφές έτσι ώστε να επιτρέπεται η πρόσβαση στην υπηρεσία μόνο από το ιδιωτικό υποδίκτυο του σχολείου (10.x.y.z) και από τον ίδιο τον εξυπηρετητή (127.0.0.1). Τελικά θα πρέπει να υπάρχουν δύο εγγραφές:
    acl localnet src 127.0.0.1
    acl localnet src 10.x.y.z/24
  • Τροποποιούμε τη γραμμή
    cache_dir ufs c:/squid/var/cache 100 16 256
    ώστε να ανταποκρίνεται στην τοποθεσία και στο μέγεθος της περιοχής cache.
  • Δημιουργούμε το φάκελο cache μέσα από Command Prompt


Terminal.pngcd c:\squid\sbin
squid -z


  • Εγκαθιστούμε το squid σαν service των Windows, που θα ξεκινά με κάθε εκκίνηση του εξυπηρετητή


Terminal.pngsquid -i


  • Ξεκινούμε την υπηρεσία squid για πρώτη φορά (χωρίς επανεκκίνηση του συστήματος), από το Server Manager στο  Configuration  Services  επιλέγουμε την υπηρεσία squid και κάνουμε Start.
  • Ο Windows Server 2008 έχει ενεργοποιημένο Firewall, στο οποίο πρέπει να επιτρέψουμε την επικοινωνία από το τοπικό δίκτυο στην θύρα 3128, όπου λαμβάνει αιτήματα ο squid. Ξεκινούμε την εφαρμογή διαχείρισης του firewall από το  Start  Administrative Tools  Windows Firewall and Advanced Security  δεξί κλικ στα Inbound Rules  New Rule... .
Επιλέγουμε τη δημιουργία κανόνα με βάση θύρα επικοινωνίας. W2k8-wfas-squid-01.jpg
Επιλέγουμε την TCP θύρα 3128. W2k8-wfas-squid-02.jpg
Επιτρέπουμε την επικοινωνία με βάση τις επιλεγμένες ρυθμίσεις. W2k8-wfas-squid-03.jpg
Ο κανόνας ενεργοποιείται για όλα τα προφίλ. W2k8-wfas-squid-04.jpg
Δίνουμε όνομα στον κανόνα και η δημιουργία του ολοκληρώνεται. W2k8-wfas-squid-05.jpg
  • Ρυθμίζουμε τον browser του εξυπηρετητή να χρησιμοποιεί τον Squid Proxy, πληκτρολογώντας την IP διεύθυνση 127.0.0.1 (ή 10.x.y.z) και ως πόρτα την 3128 στις ρυθμίσεις σύνδεσης.
  • Για τους σταθμούς εργασίας επιλέγουμε την αυτόματη ρύθμισή τους με το πρωτόκολλο WPAD, όπως περιγράφεται στην Αυτόματη ρύθμιση proxy των σταθμών εργασίας.

Επιβεβαίωση ορθής λειτουργίας Squid

Για να επιβεβαιώσουμε την ορθή λειτουργία του εξυπηρετητή Squid, μπορούμε να πραγματοποιήσουμε τα ακόλουθα:

  • Ρυθμίζουμε τον browser ενός σταθμού εργασίας να χρησιμοποιεί τον Squid Proxy, πληκτρολογώντας την διεύθυνση του εξυπηρετητή (10.x.y.z) και ως πόρτα την 3128 στις ρυθμίσεις σύνδεσης.
  • Συνδεόμαστε σε μία σελίδα του διαδικτύου.
  • Μετά την επιτυχή προβολή του περιεχομένου της ιστοσελίδας, διαπιστώνουμε πως η πρόσβαση στην εν λόγω ιστοσελίδα πραγματοποιήθηκε μέσω του squid από το αρχείο C:\squid\var\logs\access.log.

Αυτόματη ρύθμιση proxy των σταθμών εργασίας

Το Web Proxy Auto-Discovery Protocol (WPAD) είναι ένα πρωτόκολλο με το οποίο οι σταθμοί εργασίας μπορούν να έχουν αυτόματα πρόσβαση σε ένα αρχείο ρυθμίσεων, μέσω του οποίου θα ενεργοποιηθεί σε αυτούς ο proxy. Με την ενεργοποίηση του πρωτοκόλλου wpad αφενός οι browsers των σταθμών εργασίας (εφόσον έχουν αυτόματο εντοπισμό ρυθμίσεων διαμεσολαβητή ενεργοποιημένο)

  • δεν απαιτούν επιπλέον ρυθμίσεις για τον proxy και
  • εάν για κάποιο λόγο ο Squid server δεν είναι διαθέσιμος (πχ λόγω βλάβης υλικού, λόγω προβλήματος στο λειτουργικό του σύστημα κλπ) οι σταθμοί εργασίας αυτόματα θα συνεχίσουν να έχουν πρόσβαση στο Internet απευθείας μέσω του δρομολογητή.

Για τη λειτουργία αυτή απαιτούνται:

  • Ρύθμιση του DNS εξυπηρετητή του ΣΕΠΕΗΥ.
  • Ρύθμιση του WEB εξυπηρετητή του ΣΕΠΕΗΥ.
  • Ρύθμιση των σταθμών εργασίας.

Ρύθμιση DNS εξυπηρετητή του ΣΕΠΕΗΥ

Στη ζώνη school.local προσθέτουμε το wpad ως νέο alias(CNAME) που δείχνει στο server.school.local. Αυτό γίνεται από την εφαρμογή Server Manager, όπου στο  Roles  DNS Server  DNS  SERVER  Forward Lookup Zones  κάνουμε δεξί κλικ και Πρότυπο:UserResponse και ορίζουμε "Alias Name" Πρότυπο:UserResponse και "Fully Qualified Domain Name" Πρότυπο:UserResponse.

Το wpad είναι απαγορευμένο alias στο Windows Server 2008, οπότε για να υπάρξει πρόσβαση στο alias, πρέπει να άρουμε τον περιορισμό. Αρχικά βλέπουμε για ποια ονόματα υπάρχει περιορισμός.


Terminal.pngdnscmd /info /globalqueryblocklist

Query result:
String: wpad
String: isatap

Command completed successfully.


Στη συνέχεια ορίζουμε τον περιορισμό για όλα τα ισχύοντα ονόματα εκτός του wpad.


Terminal.pngC:\Users\Administrator>dnscmd /config /globalqueryblocklist isatap

Registry property globalqueryblocklist successfully reset.
Command completed successfully.


Επιβεβαιώνουμε την ορθή λειτουργία των ρυθμίσεων, από σταθμούς εργασίας με dns server τον εξυπηρετητή του ΣΕΠΕΗΥ, λαμβάνοντας μέσω της εντολής nslookup για το όνομα wpad.school.local τη διεύθυνση του εξυπηρετητή. Σε σταθμούς εργασίας που δεν είναι δυνατό να οριστεί ως dns server ο εξυπηρετητής του ΣΕΠΕΗΥ, προσθέτουμε την ακόλουθη γραμμή στο αρχείο c:\windows\system32\drivers\etc\hosts.

10.x.y.z wpad

Ρύθμιση Web εξυπηρετητή σε MS-Windows

Από την εφαρμογή Server Manager ενεργοποιούμε το ρόλο Web Server στον εξυπηρετητή του ΣΕΠΕΗΥ Win2k8-webrole-01.jpg
Μέσα από τον IIS Manager, στο Default Web Site ανοίγουμε τα MIME Types Win2k8-webrole-02.jpg
Κάνουμε Πρότυπο:UserResponse ένα νέο MIME Type, με στοιχεία File name extenstion: Πρότυπο:UserResponse και MIME Type: Πρότυπο:UserResponse. Επανεκκινούμε τον εξυπηρετητή Web με δεξί κλικ στο SERVER(SCHOOL/yper), Stop και Start. Win2k8-webrole-03.jpg

Δημιουργούμε στο root φάκελο του web site (C:\inetpub\wwwroot) ένα αρχείο κειμένου με όνομα "wpad.dat" που περιλαμβάνει τις ακόλουθες γραμμές:

function FindProxyForURL(url, host){

return "PROXY server.school.local:3128; DIRECT";
}

Επιβεβαιώνουμε κατ' αρχήν την ορθή λειτουργία των ρυθμίσεων με άνοιγμα του url http://wpad.school.local/wpad.dat, μέσω του οποίου λαμβάνουμε το οριζόμενο αρχείο wpad.dat στον εξυπηρετητή. Επιπλέον οι σταθμοί εργασίας που έχουν ορισμένο τον "Αυτόματο εντοπισμό ρυθμίσεων διαμεσολαβητή", θα έχουν πρόσβαση στο διαδίκτυο μέσω του proxy, οπότε στο C:\squid\var\log\access θα καταγράφεται η δραστηριότητά τους.

Χειροκίνητη ρύθμιση σταθμών εργασίας

Στον Internet Explorer από το μενού  Εργαλεία  Επιλογές Internet  Συνδέσεις  Ρυθμίσεις LAN  και επιλέγουμε τον  Αυτόματο εντοπισμό ρυθμίσεων .

Στο Firefox από το μενού  Εργαλεία  Επιλογές  Για προχωρημένους  Δίκτυο  Ρυθμίσεις  και επιλέγουμε  Αυτόματος εντοπισμός ρυθμίσεων διαμεσολαβητή για αυτό το δίκτυο .

Ρύθμιση σταθμών εργασίας με πολιτικές ομάδας

Για τον Internet Explorer ακολουθείστε τα ακόλουθα βήματα:

  • Επιβεβαιώστε ότι η πολιτική στο Default Domain Policy (ή Local Policy για σταθμούς εργασίας εκτός Domain)  User Configuration  Windows Settings  Internet Explorer Maintenance  Connection  Automatic Browser Configuration  είναι ενεργοποιημένη (είναι προεπιλεγμένη ρύθμιση στο Default Domain Policy). Η συγκεκριμένη πολιτική ρυθμίζει τον MS-Internet Explorer να αναζητά αυτόματα τον εξυπηρετητή proxy κάθε φορά που καλείται.
  • Ενεργοποιήστε επίσης την πολιτική στο Default Domain Policy (ή Local Policy για σταθμούς εργασίας εκτός Domain)  User Configuration  Administrative Templates  Windows Components  Internet Explorer  Disable changing Automatic Configuration settings . Η συγκεκριμένη πολιτική ρυθμίζει τον MS-Internet Explorer ώστε να μην μπορούν οι χρήστες να αλλάζουν τις αυτόματες ρυθμίσεις αναζήτησης του εξυπηρετητή proxy.

Ο Firefox δεν υποστηρίζει εγγενώς τη ρύθμιση με πολιτικές ομάδας. Αυτό υλοποιείται σε ειδική έκδοσή του από την εταιρεία FrontMotion, οι εκδόσεις όμως που παρέχει είναι nightly builds, οπότε δεν προτείνεται η χρήση τους. Βέβαια με την εγκατάστασή του ο firefox έχει ενεργοποιημένη την αυτόματη αναζήτηση ρυθμίσεων.

Ρυθμίσεις Squid για απαγόρευση πρόσβασης των χρηστών σε συγκεκριμένες σελίδες

Το ΠΣΔ για να προστατεύσει τους χρήστες του από ακατάλληλο και επικίνδυνο περιεχόμενο στο Διαδίκτυο, παρέχει την υπηρεσία Web Filtering με την οποία απαγορεύεται η πρόσβαση σε σελίδες:

  • που προπαγανδίζουν την επιθετική συμπεριφορά, το μίσος και τη βία
  • που προωθούν τα ναρκωτικά
  • με τυχερά παιχνίδια
  • με πορνογραφικό περιεχόμενο
  • που προωθούν το ρατσισμό

Στην περίπτωση που οι χρήστες του σχολικού δικτύου διαπιστώσουν πως έχουν πρόσβαση σε σελίδες με ακατάλληλο περιεχόμενο, πρέπει να ενημερώσουν άμεσα την υπηρεσία Web Filtering (cachemaster@sch.gr), ώστε η απαγόρευση πρόσβασης σε αυτές να ισχύσει στο σύνολο του ΠΣΔ.

Στην περίπτωση που το αίτημα αφορά σε σελίδες που δεν απαγορεύονται, καθώς είναι αξιοποιήσιμες από τμήμα της εκπαιδευτικής κοινότητας, τότε πρέπει να εισαχθούν κανόνες απαγόρευσης στον proxy server, με την ακόλουθη διαδικασία:

  • Δημιουργούμε το αρχείο "c:\squid\etc\squid-block.acl" με περιεχόμενο τις ιστοσελίδες για τις οποίες θέλουμε να απαγορεύσουμε την πρόσβαση. Για παράδειγμα για να απαγορευτεί η πρόσβαση στις σελίδες που το url τους περιλαμβάνει τα στοιχεία “facebook.com” και “hi5.com”προσθέτουμε:
.facebook.com

.hi5.com

  • Εισάγουμε τις ακόλουθες γραμμές στην αρχή του αρχείου "C:\squid\etc\squid.conf" πριν την εντολή "http_access allow sch:"
acl bad url_regex -i "C:\squid\etc\squid-block.acl"

http_access deny bad

Η παράμετρος ‘-i’ εξασφαλίζει πως η πρόσβαση στις διευθύνσεις θα απαγορευθεί ανεξάρτητα από το αν εισαχθούν από το χρήστη με μικρούς ή :κεφαλαίους χαρακτήρες.
  • Αποθηκεύουμε το αρχείο και επανεκκινούμε το squid service να ξαναφορτώσει τις ρυθμίσεις του:


Terminal.pngnet stop squid && net start squid


Ρυθμίσεις Squid για τα updates των Ubuntu & MS-Windows standalone σταθμών εργασίας

Εάν το ΣΕΠΕΗΥ διαθέτει standalone σταθμούς εργασίας είναι δυνατόν ο squid να ρυθμιστεί ώστε να κάνει cache τα updates των σταθμών εργασίας είτε αυτοί διαθέτουν Ubuntu λειτουργικό σύστημα (κάτι ανάλογο με το apt-cacher) είτε αυτοί διαθέτουν MS-Windows λειτουργικό σύστημα (κάτι ανάλογο με το MS-Windows Server Update Services). Με αυτόν τον τρόπο δεν απαιτείται κάθε σταθμός να κατεβάζει από το διαδίκτυο τα updates του.

  • Προσθέτουμε τις ακόλουθες γραμμές στο αρχείο squid.conf, πριν τον ορισμό του localnet (acl localnet src 10.x.y.z/24)
refresh_pattern deb$ 1577846 100% 1577846

refresh_pattern Packages.gz$ 1440 100% 1440
refresh_pattern zip$ 1440 100% 1440

refresh_pattern windowsupdate.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe) 4320 100% 43200 reload-into-ims
refresh_pattern msi$ 1440 100% 1440

maximum_object_size 1 GB

  • Σε όλους τους Ubuntu standalone σταθμούς εργασίας δίνουμε την ακόλουθη εντολή


Terminal.pngecho 'Acquire::http::Proxy "http://10.x.y.z:3128";'


όπου 10.x.y.z, η διεύθυνση του squid εξυπηρετητή.
  • Σε όλους τους MS-Windows standalone σταθμούς εργασίας δίνουμε την ακόλουθη εντολή


Terminal.pngnetsh winhttp set proxy 10.x.y.z:3128 "local"


όπου 10.x.y.z, η διεύθυνση του squid εξυπηρετητή. Μπορούμε να δούμε τις ρυθμίσεις με την εντολή:
Terminal.pngnetsh winhttp show proxy

Οι συγκεκριμένες ρυθμίσεις αφορούν στο Local Machine, ενώ οι ρυθμίσεις στον IE αφορούν στον Currnet User και για αυτό το λόγο οι ρυθμίσεις μέσω IE δε μπορούν να εξυπηρετήσουν τη λειτουργία Windows Update, μέσω proxy.


Dialog-warning.pngΌταν οι σταθμοί εργασίας MS-Windows κάνουν αυτόματο κατέβασμα και εγκατάσταση των updates (μέσω του MS-Windows Update service) δεν σημειώνεται 100% caching των updates. Αντίθετα εάν ο χρήστης κατεβάσει μόνος του ένα update αυτό παραμένει στην cache του squid.