Linux/Προχωρημένα/Squid
Το Squid είναι ένας διαμεσολαβητής δικτύου (proxy server) το οποίο προσφέρει και υπηρεσίες web caching. Έχει ένα ευρύ φάσμα χρήσεων:
- αυξάνει την ταχύτητα απόκρισης του web server, αποθηκεύοντας προσωρινά επαναλαμβανόμενες αιτήσεις για συγκεκριμένες ιστοσελίδες,
- αποθηκεύει τις συχνά προσπελάσιμες ιστοσελίδες στην προσωρινή μνήμη (πχ: updates λειτουργικού συστήματος )
- παρέχει DNS υπηρεσίες,
- φιλτράρει την κυκλοφορία του δικτύου, υποβοηθώντας την ασφάλεια.
Δεν υποστηρίζει πλήρως τα πρωτόκολλα TLS, SSL, Internet Gopher και HTTPS, αντιθέτως υποστηρίζει πλήρως τα πρωτόκολλα HTTP και FTP. Το Squid αρχικά είχε σχεδιαστεί για να τρέχει σε UNIX συστήματα. Η συμβατότητα με το λειτουργικό σύστημα MS-Windows σταμάτησε μετά την έκδοση 2.7, ενώ η τρέχουσα stable έκδοση είναι 3.4.2. Στο Ubuntu 12.04 είναι διαθέσιμη η έκδοση 3.1.19.
![]() | Παρακάτω ακολουθούν οι οδηγίες εγκατάστασης και παραμετροποίησης του διαμεσολαβητή δικτύου Squid σε Ubuntu LTSP. |
Εγκατάσταση
Για να εγκαταστήσετε το Squid ανοίξτε το Κέντρο λογισμικού Ubuntu στο οποίο μπορείτε να πλοηγηθείτε από το μενού Εφαρμογές και στην αναζήτηση που βρίσκεται πάνω δεξιά στην εφαρμογή πληκτρολογείστε
squid. Κάντε εγκατάσταση το πακέτο με τίτλο
Dummy transitional package from squid to squid3 και όνομα πακέτου
squid.
Διαφορετικά μπορείτε να ανοίξετε ένα τερματικό (δίνοντας το συνδυασμό Alt+Ctrl+T) και να πληκτρολογήστε:
![]() | sudo apt-get install squid |
Αντιγραφή του πρότυπου αρχείου ρυθμίσεων
![]() | Συνιστάται να κρατήσετε αντίγραφο ασφαλείας το πρότυπο αρχείο ρυθμίσεων του Squid το οποίο βρίσκεται στον κατάλογο /etc/squid3 ώστε σε περίπτωση σφάλματος να μπορέσετε να το επαναφέρετε. |
Για να κρατήσετε αντίγραφο ασφαλείας το πρότυπο αρχείο ρυθμίσεων του Squid:
- Ανοίξτε ένα τερματικό (δίνοντας το συνδυασμό Alt+Ctrl+T).
- Δώστε την εντολή:
sudo cp /etc/squid3/squid.conf /etc/squid3/squidconf.backup
Με την παραπάνω εντολή ουσιαστικά δημιουργούμε ένα πανομοιότυπο με το πρότυπο αρχείο ρυθμίσεων αρχείο (squid.conf) το οποίο στην συνέχεια θα επεξεργαστούμε, έχοντας δημιουργήσει ένα αντίγραφο ασφαλείας (squidconf.backup).
Παραμετροποίηση
Ενεργοποίηση cache
Για να ενεργοποιήσετε τη web cache
- Εκκινήστε ένα τερματικό (δίνοντας το συνδυασμό Alt+Ctrl+T).
- Ανοίξτε το αρχείο ρυθμίσεων του Squid δίνοντας την εντολή:
sudo gedit /etc/squid3/squid.conf
Για να τροποποιήσετε το συγκεκριμένο αρχείο θα πρέπει να έχετε δικαιώματα διαχειριστή (sudo). - Τέλος, αφού δώσετε τον κωδικό σας, κάντε αναζήτηση τη φράση
TAG: cache_dir και στο τέλος των σχολίων του συγκεκριμένου tag απο-σχολιάστε την γραμμή:
cache_dir ufs /var/spool/squid3 15000 16 256
Με την συγκεκριμένη εντολή ορίζουμε το μέγεθος της cache στα 15 Gigabytes.
Εισαγωγή ελέγχων πρόσβασης υποδικτύου (ACL subnet)
Για να επιτρέψετε την πρόσβαση στην υπηρεσία μόνο στο υποδίκτυο του σχολείου σας έχοντας διευθύνσεις του ΠΣΔ εκκινήστε ένα τερματικό (δίνοντας το συνδυασμό Alt+Ctrl+T) και δώστε την εντολή:
![]() | sudo gedit /etc/squid3/squid.conf |
για να ανοίξετε το αρχείο ρυθμίσεων του Squid. Στην συνέχεια, αναζητήστε την φράση acl localnet src και μετά το τέλος των σχολίων προσθέστε την γραμμή αναλόγως των διευθύνσεων που έχουν οι σταθμοί εργασίας και ο εξυπηρετητής. Πιο συγκεκριμένα:
- Εάν το υποδίκτυο είναι της μορφής 10.x.y.z τότε προσθέστε την παρακάτω γραμμή:
acl localnet src 10.x.y.0/24 - Εάν το υποδίκτυο είναι της μορφής 192.x.y.z τότε προσθέστε την παρακάτω γραμμή:
acl localnet src 192.x.y.0/24
Τέλος, αναζητήστε την φράση http_access allow localnet και από-σχολιάστε την.
Απαγόρευση πρόσβασης των χρηστών σε συγκεκριμένες σελίδες
Για να απαγορεύσετε την είσοδο των χρηστών σε συγκεκριμένες σελίδες (όπως πράττει και το ΠΣΔ):
- Ανοίξτε ένα τερματικό (δίνοντας το συνδυασμό Alt+Ctrl+T).
- Δημιουργήστε ένα νέο αρχείο με όνομα
acl-block.acl στον κατάλογο /etc/squid3 δίνοντας την εντολή:
sudo gedit /etc/squid3/acl-block.acl - Στο νέο αρχείο συμπληρώστε τις ιστοσελίδες που επιθυμείτε να απαγορεύσετε. πχ:
.facebook.com
.twitter.com - Στην συνέχεια εισάγετε τις ακόλουθες γραμμές στο αρχείο /etc/squid3/squid.conf μετά την εντολή
acl localnet src 10.x.y.0/24
acl bad url_regex -i "/etc/squid3/acl-block.acl"
http_access deny bad - Τέλος, δώστε την παρακάτω εντολή:
sudo service squid3 restart
με σκοπό το Squid να φορτώσει τις καινούριες ρυθμίσεις.
Ρύθμιση εξυπηρετητή και σταθμών εργασίας
Υπάρχουν δύο τρόποι να ρυθμιστούν τόσο ο εξυπηρετητής όσο και οι σταθμοί εργασίας να χρησιμοποιούν ως διαμεσολαβητή δικτύου (proxy) το Squid:
- Χειροκίνητα: ρητή δήλωση του διαμεσολαβητή στο σύστημα.
- Αυτόματα: χρήση του πρωτοκόλου Wpad.
Χειροκίνητα
Για να ρυθμίσετε χειροκίνητα τον εξυπηρετητή και τους σταθμούς εργασίας να χρησιμοποιούν ως proxy το Squid χωρίς την δυνατότητα αλλαγής από τους χρήστες:
- Ανοίξτε ένα τερματικό (δίνοντας το συνδυασμό Alt+Ctrl+T).
- Δημιουργήστε τους παρακάτω καταλόγους στο κατάλογο /etc δίνοντας τις εντολές
![]() | sudo mkdir -p /etc/dconf/db/proxy.d/locks |
![]() | sudo mkdir -p /etc/dconf/profile |
- Δημιουργήστε τα παρακάτω αρχεία δίνοντας τις εντολές
![]() | sudo touch /etc/dconf/db/proxy.d/00_proxy_settings |
![]() | sudo touch /etc/dconf/db/proxy.d/locks/00_proxy |
![]() | sudo touch /etc/dconf/profile/user |
- Ανοίξτε το αρχείο /etc/dconf/profile/user και προσθέστε τις παρακάτω γραμμές:
![]() | user-db:user system-db:proxy |
- Ανοίξτε το αρχείο /etc/dconf/db/proxy.d/00_proxy_settings και προσθέστε τις παρακάτω γραμμές:
- Ανοίξτε το αρχείο /etc/dconf/db/proxy.d/locks/00_proxy και προσθέστε την παρακάτω γραμμή
![]() | /system/proxy/mode |
- Τέλος, δώστε την εντολή
![]() | sudo dconf update |
Αυτόματα
Με την ενεργοποίηση του πρωτοκόλλου WPAD εάν για κάποιο λόγο ο Squid εξυπηρετητής δεν είναι διαθέσιμος (πχ λόγω βλάβης υλικού, λόγω προβλήματος στο λειτουργικό σύστημα κτλ) οι σταθμοί εργασίας αυτόματα θα συνεχίσουν να έχουν πρόσβαση στο Internet απευθείας μέσω του διαμεσολαβητή.
![]() | H συγκεκριμένη ρύθμιση δεν παίζει καλά σε Chromium browser. |
Για να ρυθμίσετε τον εξυπηρετητή και τους σταθμούς εργασίας αυτόματα να χρησιμοποιούν ως proxy το Squid του εξυπηρετητή χωρίς την δυνατότητα αλλαγής από τους χρήστες:
- Ανοίξτε ένα τερματικό (δίνοντας το συνδυασμό Alt+Ctrl+T).
- Εγκαταστήστε το web server Apache2 στον εξυπηρετητή δίνοντας την εντολή
![]() | sudo apt-get install apache2 |
![]() | sudo gedit /etc/apache2/mods-available/mime.conf |
- Προσθέστε τις γραμμές
![]() | AddType application/x-javascript-config dat AddType application/x-ns-proxy-autoconfig dat |
![]() | sudo gedit /var/www/wpad.dat |
και προσθέστε τις παρακάτω γραμμές
![]() | function FindProxyForURL(url, host) { return "PROXY <ip_address_server>:3128; DIRECT"; } |
- Δημιουργήστε τους παρακάτω καταλόγους στο κατάλογο /etc
![]() | sudo mkdir -p /etc/dconf/db/proxy.d/locks |
![]() | sudo mkdir -p /etc/dconf/profile |
- Δημιουργήστε τα παρακάτω αρχεία δίνοντας τις εντολές
![]() | sudo touch /etc/dconf/db/proxy.d/00_proxy_settings |
![]() | sudo touch /etc/dconf/db/proxy.d/locks/00_proxy |
![]() | sudo touch /etc/dconf/profile/user |
- Ανοίξτε το αρχείο /etc/dconf/profile/user και προσθέστε τις παρακάτω γραμμές
![]() | user-db:user system-db:proxy |
- Ανοίξτε το αρχείο /etc/dconf/db/proxy.d/00_proxy_settings και προσθέστε τις παρακάτω γραμμές
![]() | [system/proxy]
mode='auto' autoconfig-url='http://<ip_address_server>/wpad.dat' |
- Ανοίξτε το αρχείο /etc/dconf/db/proxy.d/locks/00_proxy και προσθέστε την παρακάτω γραμμή
![]() | /system/proxy/mode |
- Τέλος, δώστε την εντολή
![]() | sudo dconf update |
Παρεμετροποίηση φυλλομετρητών
![]() | Η λύση έχει δοκιμαστή μόνο με Mozzila Firefox και Chromium Browser. |
Η μοναδική αλλαγή που χρειάζεται είναι μόνο στον φυλομετρητή Mozzila Firefox. Πιο συγκεκριμένα για να μπορέσετε να αποτρέψετε την χειροκίνητη αλλαγή του διαμεσολαβητή δικτύου από το συγκεκριμένο φυλλομετρητή:
- Δημιουργήστε ένα αρχείο /usr/lib/firefox/defaults/user.js δίνοντας την εντολή
![]() | sudo gedit /usr/lib/firefox/defaults/user.js |
- Τέλος, προσθέστε την παρακάτω γραμμή
![]() | lockPref("network.proxy.type", 5) |
Δημοσίευση εικονικού δίσκου
Τέλος, το μόνο που απαιτείται είναι η δημοσίευση του εικονικού δίσκου μέσα από τα Διαχείριση ΣΕΠΕΗΥ (sch-scripts) και η επανεκκίνηση των σταθμών εργασίας.