Ένας πολύ καλός τρόπος για να μειώσουμε το bandwith που καταναλώνεται κατά την περιήγηση στο διαδίκτυο, αλλά και να ελέγξουμε την πρόσβαση σε αυτό, είναι η χρήση ενος εξυπηρετητή διαμεσολάβησης – proxy server. Παρακάτω δίνεται ένας αναλυτικός οδηγός εγκατάστασης – ρύθμισης squid3 με κλείδωμα ρυθμίσεων proxy συστήματος – firefox, web και user filtering.
Παρακαλούμε κάντε copy paste τις εντολές και τα αντικείμενα με έντονα γράμματα στο τερματικό ή στα διάφορα αρχεία που ανοίγουν για αποφυγή συντακτικών λαθών….
1. Εγκαθιστούμε το squid3. Ανοίγουμε ένα τερματικό πχ με Ctrl+Alt+t και δίνουμε
sudo apt-get install squid3
2. Στη συνέχεια φτιάχνουμε 3 αρχεία
Το 1ο: /etc/squid3/whitelist_users.acl –> εδώ γράφουμε τα ονόματα των χρηστών που επιτρέπεται ελεύθερη περιήγηση, πχ administrator (ένας χρήστης ανά γραμμή)
sudo gedit /etc/squid3/whitelist_users.acl
Έτσι το αρχείο θα μπορούσε να περιέχει τους χρήστες
root
administrator
teacher
daskalos
Το 2ο: /etc/squid3/banned_users.acl —> εδώ γράφουμε τα ονόματα των χρηστών που δεν επιτρέπεται καθόλου περιήγηση, πχ a1a01 (ένας χρήστης ανά γραμμή)
sudo gedit /etc/squid3/banned_users.acl
Έτσι το αρχείο θα μπορούσε να περιέχει τους χρήστες
user01
user02
a1a0
Το 3ο: /etc/squid3/banned_domains.acl —> εδώ γράφουμε τα domains που θέλουμε να απαγορεύσουμε τη πρόσβαση με έναν από τους επόμενους τρόπους, πχ facebook ή facebook.com ή .facebook.com.
sudo gedit /etc/squid3/banned_domains.acl
Έτσι το αρχείο θα μπορούσε να περιέχει τα domains
facebook
youtube
.hi5.com
myspace.com
Για να παίζουν τα whitelist_users.acl και banned_users.acl πρέπει να είναι εγκατεστημένη η υπηρεσία ident2.
sudo apt-get install ident2
3. Κατεβάζουε τα αρχεία ERR_SCH-SCRIPTS_BANNED_DOMAINS και ERR_SCH-SCRIPTS_BANNED_USERS (είναι συμπιεσμένα εδώ) και τα αντιγράφουμε στο /usr/share/squid3/errors/el
sudo cp ‘/monopati_pou_to_exoume_apothikeusei/ERR_SCH-SCRIPTS_BANNED_USERS’ /usr/share/squid3/errors/el
και
sudo cp ‘/monopati_pou_to_exoume_apothikeusei/ERR_SCH-SCRIPTS_BANNED_DOMAINS’ /usr/share/squid3/errors/el
για παράδειγμα αν τα έχετε αποθηκεύσει στο φάκελο Λήψεις του χρήστη administrator τότε οι εντολές θα είναι:
sudo cp ‘/home/administrator/Λήψεις/ERR_SCH-SCRIPTS_BANNED_USERS’ /usr/share/squid3/errors/el
και
sudo cp ‘/home/administrator/Λήψεις/ERR_SCH-SCRIPTS_BANNED_DOMAINS’ /usr/share/squid3/errors/el
επειδή αυτά τα αρχεία πρέπει να είναι προσπελάσιμα από το squid σιγουρευτείτε οτι έχουν τα κατάλληλα δικαιώματα
sudo chmod 644 /usr/share/squid3/errors/el/ERR_SCH-SCRIPTS_BANNED*
4. Στη συνέχεια πρέπει να επεξεργαστούμε το squid.conf αφού πάρουμε ένα αντίγραφο του αρχικού
sudo cp /etc/squid3/squid.conf /etc/squid3/squidconf.backup
sudo gedit /etc/squid3/squid.conf
Ενεργοποιούμε την cache αναζητώντας και αποσχολιάζοντας τη γραμμή cache_dir ufs /var/spool/squid3 100 16 256
Το 100 σημαίνει οτι θα χρησιμοποιούνται 100 MBytes για caching αρχείων. Αντικαταστήστε με μια μεγαλύτερη τιμή (πχ 1000, 5000, 15000 δηλ. 1Gbyte, 5Gbytes, 15Gbytes) ανάλογα με το διαθέσιμο χώρο στο δίσκο.
Αναζητούμε και αλλάζουμε τη γραμμή acl localhost src 127.0.0.1/32 ::1 σε acl localhost src 127.0.0.0/8 ::1
Mε αυτό το τρόπο θα μπορούμε να χρησιμοπούμε το όνομα ‘server’ και όχι την ip του ltsp server κατά τη δήλωση του proxy και για thin και για fat, ανεξάρτητα από το αν ο LTSP μας έχει όνομα διάφορο, του hardcoded στο LTSP, server (βολικό για όσους έχουν ltsp server στο laptop τους και πάνε σε περισσότερα από ένα σχολεία, αλλά και για γενικοποίηση των οδηγιών). Προσοχή: Αν το μηχάνημά μας δε λέγεται server πρέπει να προσθέσουμε στο αρχείο /etc/hosts τη γραμμή
server 127.0.2.1
Αναζητούμε τη γραμμή 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 #όπου x, y τα αντίστοιχα νούμερα του υποδικτύου σου
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
Προσοχή να μη ξεχάσουμε να βάλουμε τα νούμερα του υποδικτύου μας στη γραμμή παραπάνω που ορίζεται το υποδίκτυο του σχολείου μας. Για πολλαπλά υποδίκτυα προσθέτουμε και άλλες αντίστοιχες γραμμές ( acl schoolnet) με μόνη αλλαγή την ip του υποδικτύου. Αποθηκεύουμε και επαναφορτώνουμε το squid3
sudo service squid3 force-reload
5. Κλείδωμα ρυθμίσεων proxy συστήματος
Μέθοδος:
sudo apt-get install dconf-tools
Από εδώ και πέρα θα πρέπει να εκτελεστούν κάποιες εντολές για να δημιουργηθούν τα κατάλληλα αρχεία. Ωστόσο, με τη βασική προϋπόθεση ότι έχετε ακολουθήσει τον οδηγό ως εδώ, θα μπορούσατε να κατεβάσετε τα απαραίτητα αρχεία από εδώ. Αποσυμπιέστε το dconf.zip (δεξί κλικ αποσυμπίεση εδώ) και στη συνέχεια δώστε σε τερματικό
sudo cp -r ‘/monopati/poueinai/to/dconf’ /etc
και στη συνέχεια
sudo dconf update
Αν κάνετε το παραπάνω δε χρειάζεται να εκτελέτε τις υπόλοιπες εντολές μέχρι το βήμα 6 αφού θα αντιγραφούν τα απαραίτητα αρχεία με το αναγκαίο περιεχόμενο στο /etc/dconf και δε θα χρειαστεί να τα δημιουργήσετε χειροκίνητα με τις παρακάτω εντολές. Ωστόσο καλό είναι να τις διαβάσετε για να δείτε τι ακριβώς περιέχουν και εν πάση περιπτώση για να πάρετε και μια ιδεά από linux command line !!!
sudo mkdir -p /etc/dconf/profile
sudo nano /etc/dconf/profile/user
Στο κενό αρχείο γράφουμε:
user-db:user
system-db:local
αποθηκεύουμε και κλείνουμε
Στη συνέχεια
sudo mkdir -p /etc/dconf/db/local.d
sudo nano /etc/dconf/db/local.d/00_proxy_locksettings
και στο κενό αρχείο προσθέτουμε
[system/proxy]
mode=’manual’
use-same-proxy=true
[system/proxy/http]
enabled=true
host=’server’
port=3128
[system/proxy/https]
host=’server’
port=3128
[system/proxy/ftp]
host=’server’
port=3128
[system/proxy/socks]
host=’server’
port=3128
αποθηκεύουμε και κλείνουμε το αρχείο
Στη συνέχεια
sudo mkdir /etc/dconf/db/local.d/locks
sudo nano /etc/dconf/db/local.d/locks/00_proxy_locksettings
και στο κενό αρχείο προσθέτουμε
# prevent changes to system proxy
/system/proxy/mode
/system/proxy/use-same-proxy
/system/proxy/http/enabled
/system/proxy/http/host
/system/proxy/http/port
/system/proxy/https/host
/system/proxy/https/port
/system/proxy/ftp/host
/system/proxy/ftp/port
/system/proxy/socks/host
/system/proxy/socks/port
αποθηκεύουμε, κλείνουμε και στη συνέχεια τρέχουμε
sudo dconf update
Ιδιαίτερη προσοχή στις οδηγίες! Αν δεν εφαρμοστούν σωστά υπάρχει πιθανότητα να μην ξεκινήσει το γραφικό περιβάλλον… αν συμβεί αυτό ctrl-alt-f1, συνδεθείτε με τα διαπιστευτήρια σας και σβήστε το φάκελο /etc/dconf
Προσοχή μη σβήσετε όλο το φάκελο /etc!!! Αν δεν είστε σίγουροι ζητήστε βοήθεια!
sudo rm -r /etc/dconf
και κάντε reboot
sudo reboot
6. Τέλος κλειδώνουμε τις ρυθμίσεις proxy του firefox ως εξής:
Φτιάχνουμε ένα αρχείο με το όνομα mozilla.cfg στο /usr/lib/firefox
sudo gedit /usr/lib/firefox/mozilla.cfg
που περιέχει τα εξής:
//
lockPref(“network.proxy.type”, 5);
// όπου 5 = Χρήση ρυθμίσεων διαμεσολαβητή συστήματος
Το αποθηκεύουμε. Δημιουργούμε ένα αρχείο με το όνομα local-settings.js στο /usr/lib/firefox/defaults/pref
sudo gedit /usr/lib/firefox/defaults/pref/local-settings.js
που περιέχει τα εξής:
pref(“general.config.obscure_value”, 0); // only needed if you do not want to obscure the content with ROT-13
pref(“general.config.filename”, “mozilla.cfg”);
Το αποθηκεύουμε. Κάνουμε restart τον firefox και δοκιμάζουμε να αλλάξουμε τις ρυθμίσεις proxy… Για chrome/chromium δε χρειάζεται κάτι αφού χρησιμοποιούν το εργαλείο ρυθμίσεων proxy του συστήματος οι τιμές του οποίου έχουν κλειδώσει με το dconf παραπάνω.
Για να εφαρμοστούν όλες οι παραπάνω ρυθμίσεις στους LTSP clients κάνουμε δημοσίευση εικονικού δίσκου από τα sch-scripts.
Έτσι αν στο address bar ενός browser το url περιέχει μια από τις λέξεις ή τα domains του banned_domains.acl, το site κόβεται για όλους εκτός από τους χρήστες που υπάρχουν στο αρχείο whitelist_users.acl. Όσοι χρήστες είναι στους banned_user.acl δεν μπορούν να προσπελάσουν καμία ιστοσελίδα.
Επισυνάπτεται και ένα shell script το οποίο αν έχετε ακολουθήσει τις παραπάνω οδηγίες σας διευκολύνει στον χειρισμό των λιστών του squid, παρέχοντας ένα user interface σε τερματικό. Κατεβάστε το συμπιεσμένο από εδώ –> squid3_jobs.sh. Για να το χρησιμοποιήσετε αποσυμπιέστε και δώστε δικαιώματα εκτέλεσης: πχ αν το έχετε αποθηκεύσει στο ‘/home/administrator/Επιφάνεια εργασίας’ τότε σε ένα τερματικό (Ctrl+Alt+t) δώστε:
cd ‘/home/administrator/Επιφάνεια εργασίας’
chmod u+x squid3_jobs.sh
στη συνέχεια διπλό κλικ και εκτέλεση σε τερματικό.