Φιλτράρισμα σελίδων απο thin - fat client - server

Ξεκίνησε από tallis, 01 Φεβ 2011, 05:44:47 ΜΜ

« προηγούμενο - επόμενο »

tallis

Υπάρχει η δυνατότητα να φιλτράρω τις σελίδες που δίνει ο proxy (ενδεχομένως squid  + dansguardian) χρησιμοποιώντας διαφορετικά policies για τον κάθε χρήστη; π.χ. οι καθηγητές να μπορούν να μπαίνουν σε κάποιες σελίδες που οι μαθητές δεν επιτρέπετε να μπουν .. ;
Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

apapakL

#1
Η δυνατότητα υπάρχει χρησιμοποιώντας squid3. Χρησιμοποιώ αυτή τη μέθοδο εδώ και αρκετό καιρό σε δυο ltsp εργαστήρια (είμαι σε δυο σχολεία).

sudo apt-get install squid3


στη συνέχεια φτιάξε 3 αρχεία

/etc/squid3/whitelist_users.acl --> εδώ βάζεις τα ονόματα των χρηστών που επιτρέπεται ελεύθερη περιήγηση, πχ teacher (έναν χρήστη ανά γραμμή)

teacher
daskalos
#user01


/etc/squid3/banned_users.acl --->  εδώ βάζεις τα ονόματα των χρηστών που δεν επιτρέπεται καθόλου περιήγηση, πχ a1a01 (έναν χρήστη ανά γραμμή)

a1a01
a1a02
#a1a03


/etc/squid3/banned_domains.acl ---> εδώ βάζεις domains που θέλεις να απαγορεύσεις τη πρόσβαση με έναν από τους επόμενους τρόπους, πχ facebook ή facebook.com ή .facebook.com.

facebook
youtube
.hi5.com
myspace.com


Αν στο address bar ενός browser το url περιέχει μια από τις παραπάνω λέξεις, το site κόβεται για όλους εκτός από τους whitelist users.

Σε αυτά τα αρχεία μπορείς να σχολιάσεις με το σύμβολο # στην αρχή της γραμμής

για να φτιάξεις τα αρχεία για παράδειγμα το /etc/squid3/whitelist_users.acl δώσε σε ένα τερματικό
gksu gedit /etc/squid3/whitelist_users.acl


στη συνέχεια κατέβασε τα αρχεία ERR_SCH-SCRIPTS_BANNED_DOMAINS --> (http://wiki.ubuntu-gr.org/sch-scripts/squid?action=AttachFile&do=get&target=ERR_SCH-SCRIPTS_BANNED_DOMAINS) και ERR_SCH-SCRIPTS_BANNED_USERS --> (http://wiki.ubuntu-gr.org/sch-scripts/squid?action=AttachFile&do=get&target=ERR_SCH-SCRIPTS_BANNED_USERS)

αντέγραψέ τα στο /usr/share/squid3/errors/el

στη συνέχεια επεξεργάσου το αρχείο /etc/squid3/squid.conf

gksu gedit  /etc/squid3/squid.conf


πήγαινε στη γραμμή 641 (με ctrl+i και γράφεις το νούμερο της γραμμής).

Κάτω από τη γραμμή

# 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


Μετά επαναφορτώνουμε το squid3
sudo service squid3 force-reload


Για να παίζουν τα whitelists και banned users στους fat clients πρέπει να είναι εγκατεστημένη η υπηρεσία ident2 στον εικονικό δίσκο. Αν χρησιμοποιείς τα sch-scripts άνοιξε μια κονσόλα στον εικονικό δίσκο και έλεγξέ το.

apt-get install ident2


Λογικά θα σου πει ότι το χει.
Επειδή υπάρχει ένα bug στο ltsp του Ubuntu και δεν έχει γίνει σωστά το registration της ident2 ώστε να ξεκινάει με την εκκίνηση των fat clients κάνε το εξής (στην κονσόλα του εικονικού δίσκου)

update-rc.d -f openbsd-inetd remove

update-rc.d openbsd-inetd defaults 20


Στη συνέχεια και ενώ είσαι ακόμα στην κονσόλα του εικονικού δίσκου των fat clients εκτέλεσε τα παρακάτω έτσι ώστε να γίνει υποχρεωτική η χρήση του proxy

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


Το κλειδί '/system/http_proxy/host' το ορίζουμε σαν 'server' γιατί οι fat αλλά και οι thin ξέρουν τον ltsp εξυπηρετητή με το συγκεκριμένο όνομα (το 'server' είναι hardcoded στον κώδικα του ltsp) ανεξαρτήτως ονόματος που μπορεί να έχεις δώσει στον ltsp εξυπηρετητή. θα μπορούσες να βάλεις και την ip του εξυπηρετητή αλλά σε περίπτωση που ο εξυπηρετητής αλλάζει ip (πχ συνάδελφος που αλλάζει σχολεία με ltsp εξυπηρετητή το προσωπικό του laptop) ή έχει πολλαπλές κάρτες δικτύου με διαφορετικές ip (π.χ. για να λειτουργεί σε περισσότερα από ένα υποδίκτυα) θα είχες πρόβλημα.

Αν θέλεις κλειδώνεις τις ρυθμίσεις του firefox για όλους τους χρήστες έτσι ώστε να χρησιμοποιούν της ρυθμίσεις proxy του συστήματος χωρίς να έχει ο χρήστης τη δυνατότητα να την αλλάξει... Ούτε ο admin του συστήματος θα μπορεί να την αλλάξει  ;D αλλά δεν πειράζει γιατί θα είναι στους whitelist_users.

Για να το κάνεις αυτό δημιουργείς το αρχείο /etc/firefox/pref/users.js

gedit /etc/firefox/pref/users.js


γράφεις τα παρακάτω και αποθηκεύεις (κλειδώνει και δυο τρεις άλλες ρυθμίσεις...)

try {
///////////////////////
// Καρτέλα «Βασικές» //
///////////////////////

// «Στην εκκίνηση του Firefox:»
//   0 = «Προβολή μιας κενής σελίδας»
//  *1 = «Προβολή της αρχικής μου σελίδας»
//   3 = «Προβολή των παραθύρων και των καρτελών που υπήρχαν την τελευταία φορά»
lockPref("browser.startup.page", 1);
// «Τοποθεσία:»
lockPref("browser.startup.homepage", "www.google.gr");

/////////////////////////////////////////////
// Καρτέλα «Για προχωρημένους» -> «Δίκτυο» //
/////////////////////////////////////////////

// «Ρυθμίστε τον τρόπο με τον οποίο ο Firefox θα συνδέεται στο διαδίκτυο» -> «Ρυθμίσεις...»
// «Ρύθμιση διαμεσολαβητών για την πρόσβαση στο διαδίκτυο»
//  0 = «( ) Χωρίς διαμεσολαβητή»
//  4 = «( ) Αυτόματος εντοπισμός ρυθμίσεων διαμεσολαβητή για αυτό το δίκτυο»
//  5 = «(*) Χρήση ρυθμίσεων διαμεσολαβητή συστήματος»
//  1 = «( ) Χειροκίνητη ρύθμιση διαμεσολαβητή»
//  2 = «( ) URL αυτόματης ρύθμισης διαμεσολαβητή:»
lockPref("network.proxy.type", 5);
// Να μη βγάζει την μπάρα "Know your rights"
lockPref("xxx.legal.rights.seen", "0.0");
// Να μη βγάζει το παράθυρο με τις νέες επεκτάσεις που προστέθηκαν
lockPref("extensions.update.notifyUser", false);

}
catch(e) {
  displayError("lockedPref", e);
}



αφού τελειώσεις όλα αυτά βγαίνεις από την κονσόλα του εικονικού δίσκου

exit


και κάνεις συμπίεση εικονικού δίσκου από τα sch-scripts

Έπειτα κάνεις το ίδιο για τους thin clients. Εκτελείς στο κανονικό τερματικό του 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' 'localhost'

sudo gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type int --set '/system/http_proxy/port' 3128


Το κλειδί '/system/http_proxy/host' το ορίζουμε σαν 'localhost' για να καλύπτει όλες τις περιπτώσεις των ανεξαρτήτως ονόματος που μπορεί να έχεις δώσει στον ltsp εξυπηρετητή. θα μπορούσες να βάλεις και την ip του εξυπηρετητή αλλά σε περίπτωση που ο εξυπηρετητής αλλάζει ip (πχ συνάδελφος που αλλάζει σχολεία με ltsp εξυπηρετητή το προσωπικό του laptop) ή έχει πολλαπλές κάρτες δικτύου με διαφορετικές ip (π.χ. για να λειτουργεί σε περισσότερα από ένα υποδίκτυα) θα είχες πρόβλημα.

Προτείνεται για τους fat 'server' και για τους thin 'localhost' για να μην έχεις πρόβλημα με πιθανή αλλαγή ip του ltsp εξυπηρετητή ή όνομα ltsp-εξυπηρετητή διάφορο του server  πχ. περίπτωση συναδέλφου που πάει σε δυο σχολεία και  ltsp εξυπηρετητή το προσωπικό του laptop το οποίο πιθανώς να μην ονομάζεται 'server'.

Θα μπορούσε κανείς να ορίσει τη τιμή σε 'server' και για τους thin clients. Σε αυτή τη περίπτωση και αν o ltsp-εξυπηρετητής δε λέγεται 'server', για να βγαίνει και o ίδιος μέσω του proxy θα πρέπει να δηλωθεί στο /etc/hosts η τιμή

127.0.2.1 server


Edit 18-03-2011: Επίσης θα πρέπει να αλλαχτεί στο squid.conf το εξής:

acl localhost src 127.0.0.1/32


με

acl localhost src 127.0.0.0/8


Αν θέλεις κλειδώνεις τις ρυθμίσεις του firefox για όλους τους χρήστες έτσι ώστε να χρησιμοποιούν της ρυθμίσεις proxy του συστήματος χωρίς να έχει ο χρήστης τη δυνατότητα να την αλλάξει (με τον ίδιο τρόπο όπως παραπάνω αλλά εκτός εικονικού δίσκου)... Ούτε ο admin του συστήματος θα μπορεί να την αλλάξει  ;D αλλά δεν πειράζει γιατί θα είναι στους whitelist_users.

O chrome τις χρησιμοποιεί ούτως ή άλλος

Κάθε φορά που κάνεις αλλάγές στα αρχεία ρυθμίσεων του squid (squid.conf, whitelist_users.acl κτλ.) να επαναφορτώνεις τις ρυθμίσεις:

sudo service squid3 force-reload


Ελπίζω να βοήθησα

Υ.Γ: πηγή για τη ρύθμιση του squid3 http://wiki.ubuntu-gr.org/sch-scripts/squid-advanced

tallis

Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

apapakL

Επισυνάπτω και ένα scriptάκι το οποίο διευκολύνει την επεξεργασία των αρχείων whitelist, banned_users, banned_domains και squid.conf.
Κάθε φορά που επεξεργάζεστε κάποιο από τα παραπάνω αρχεία χρησιμοποιώντας το script, μόλις το κλείσετε (το αποθηκεύσετε ή δεν τ' αποθηκεύσετε) εκτελείται και η εντολή επαναφόρτωσης ρυθμίσεων του squid  ;). Κάθε μετατροπή - βελτίωση - επέκταση ευπρόσδεκτη. 

Υ.Γ. Μην ξεχάσετε να το κάνετε πρώτα εκτελέσιμο

apanagio

Υπάρχει και το script για "αυτόματη" εγκατάσταση:
https://alkisg.mysch.gr/steki/index.php?topic=3383.0

@apapakl:
Αν έχεις χρόνο μπορείς να γράψεις τις ρυθμίσεις του firefox στο wiki;
Επίσης ξέρεις αν η λύση που προτείνεις χαλάει με ενδεχόμενη αναβάθμιση του firefox;

apapakL

Δε νομίζω εφ' όσον το αρχείο /etc/firefox/pref/users.js δεν υπάρχει και το δημιουργείς εσύ... Κάτι που δεν αναφέρθηκε είναι ότι για να κόψουμε και τις https συνδέσεις είναι να κάνουμε υποχρεωτική την χρήση proxy και για το ssl. Απλά για ευκολία δηλώνουμε ότι ο proxy πρέπει να είναι ίδιος για όλα τα πρωτόκολλα. Μπορεί να γίνει μέσω του επεξεργαστή ρυθμίσεων:

για τους fat clients από τα sch-scripts ανοίγουμε κονσόλα στον εικονικό δίσκο και δίνουμε:

gconf-editor


πάμε Αρχείο ---> Νέο υποχρεωτικό παράθυρο. Στη συνέχεια πάμε στο κλειδί /system/http_proxy. Κάνουμε δεξί κλικ στο δεξί τμήμα του παραθύρου και πατάμε Νέο κλειδί. Δίνουμε Όνομα:use_same_proxy, Τύπος: Λογικό (Boolean), Τιμή: Αληθές

κλείνουμε τα παράθυρα και κάνουμε συμπίεση εικονικού δίσκου

Το ίδιο κάνουμε και για τους thin clients. Σε κανονικό τερματικό δίνουμε

sudo gconf-editor


και ακολουθούμε τις παραπάνω οδηγίες.

Σας επισυνάπτω σχετικές εικόνες για το πως είναι τα σχετικά κλειδιά στον εικονικό μου δίσκο (fat clients)
Στους thin-clients (στο server δηλαδή) όπου server  πρέπει να έχει localhost

apapakL

Παράθεση
Αν έχεις χρόνο μπορείς να γράψεις τις ρυθμίσεις του firefox στο wiki;

Ναι θα τις γράψω αυριο μεθαύριο...

tallis

Τελικά το υλοποίησα με squid + dansguardian , υποστηρίζει και ident οπότε μπορείς να κάνεις πολύ ωραία φίλτρα για κάθε χρήστη.

Το
gedit /etc/firefox/pref/users.js

με το οποίο κλειδώνεις τον proxy στον firefox λειτουργεί πάρα πολύ ωραία.

Δυστυχώς όμως οι υπόλοιπες οδηγείες δεν κλειδώνουν και το chromium, απλά βάζουν τον proxy σαν default.
Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

apapakL

Παράθεση από: tallis στις 05 Φεβ 2011, 06:22:52 ΜΜ
Δυστυχώς όμως οι υπόλοιπες οδηγείες δεν κλειδώνουν και το chromium, απλά βάζουν τον proxy σαν default.
Ναι αλλά ο chromium, αν δεν κάνω λάθος, δεν έχει δικές του ρυθμίσεις proxy χρησιμοποιεί αυτές του συστήματος. Οπότε αν κλειδώσεις αυτή κλειδώνεις και τις ρυθμίσεις του chromium. Μπορεί ο χρήστης να τις προσπελάσει, να φαίνεται ότι μπορεί να τις αλλάξει αλλά στο τέλος δεν θα γίνει εκ νέου ρύθμιση... 

tallis

apapaki ... Έχεις δίκιο, δεν το είχα ελέγξει.
Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

tallis

Στους FAT clients δεν λειτουργεί σωστά η αναγνώριση χρηστών μέσου ident, δεν αναγνωρίζει καθόλου τον χρήστη, παραθέτω τις γραμμές απο το logfile στις δύο πρώτες περιπτώσεις λειτουργεί σωστά, στην τελευταία όχι.

2011.2.5   17:14:48   10.20.25.7(epal-server.local)   apostolos   -   GET   0   text/html   -   0

2011.2.5   17:36:46   10.20.25.7(epal-server.local)   dokimos1   students   GET   0   -   -   0

2011.2.8   11:26:14   192.168.0.197   -   -   GET   1207   text/html   -   0
ltsp197.local teachers -


, υπάρχει κανένας τρόπος να το λύσω αυτό;
Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

apanagio


apapakL

Παράθεση από: apapakl στις 01 Φεβ 2011, 09:12:30 ΜΜ
update-rc.d -f openbsd-inetd remove
update-rc.d openbsd-inetd defaults 20

Το αναφέρω και στην αρχική μου απάντηση...

tallis

Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

tallis

Το πρόβλημα με το ident λύθηκε.

Καθώς όμως ο server εξυπηρετεί διαφορετικά δίκτυα ... ( το 10.x.y.z στο eth1 και το 192.168.0.χ στο eth2) έχω το εξής πρόβλημα

βάζοντας το

sudo gconftool-2 --config-source xml:readwrite: etc gconf gconf.xml.mandatory --type string --set ' system http_proxy host' 'epal-server'

στους FAT κανείς δεν έχει πρόσβαση στον proxy του server
(οταν κάνω ping epal-server μου απαντάει το 127.0.1.1)

όταν το αλλάζω σε

sudo gconftool-2 --config-source xml:readwrite: etc gconf gconf.xml.mandatory --type string --set ' system http_proxy host' '10.x.y.7'

(που είναι η ip του server)

συνδέονται στον proxy οι FAT που βρίσκονται στο eth1

καμία ιδέα;

παρατήρηση ... οι thin λειτουργούν παντού κανονικά με host = "epal-server"
Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

apapakL

#15
άλλαξε το

' system http_proxy host' 'epal-server' σε ' system http_proxy host' 'server'

Οι fat και οι thin ξέρουν τον ltsp εξυπηρετητή σαν server ανεξαρτήτως του ονόματος που θα δώσεις (είναι hardcoded στον κώδικα του ltsp).

Προτείνεται για τους fat 'server' και για τους thin 'localhost' για να μην έχεις πρόβλημα με πιθανή αλλαγή ip του ltsp εξυπηρετητή ή όνομα ltsp-εξυπηρετητή διάφορο του server  πχ. περίπτωση συναδέλφου που πάει σε δυο σχολεία και  ltsp εξυπηρετητή το προσωπικό του laptop το οποίο πιθανώς να μην ονομάζεται 'server'.

Επίσης πρέπει να βάλεις και στο /etc/hosts του  ltsp εξυπηρετητή (εφόσον δεν ονομάζεται server) το εξής

127.0.2.1 server


για να βγαίνει και ο ίδιος ο εξυπηρετητής αν δεν έχει όνομα server μέσω του proxy.

tallis

άλλαξα το όνομα του LTSP-server σε 'server' και λειτούργησε.

;D
Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

gidarakos

Αν δηλώσω στον firefox proxy «localhost» ο squid3 παίζει σωστά (και για banned_domain).
Όμως αν δηλώσω «server», σε όλες τις σελίδες παίρνω μήνυμα «ERROR The requested URL could not be retrieved. Απαγορεύεται η Πρόσβαση.» εκτός από τις banned_domain σελίδες που μου εμφανίζεται κανονικά το μήνυμα «...έχει απαγορευτεί από τον καθηγητή».
Στο hosts υπάρχει το «127.0.1.1 server». Δοκίμασα και 127.0.2.1 αλλά τίποτα.
Ενώ με την εγκατάσταση του server δημιουργείτε εγγραφή «127.0.1.1 server» εσείς γιατί προτείνετε «127.0.2.1 server»;

Ευχαριστώ για το χρόνο σας.

Υ.Γ. Ο server δεν έχει static ip. Τις δοκιμές τις κάνω από το server αν και από thin είχε την ίδια συμπεριφορά (αναμενόμενο).

tallis

Καλημέρα

Μάλλον δεν έχεις επιτρέψει την πρόσβαση στο squid απο το συγκεκριμένο δίκτυο.

Στο squid.conf έχεις βάλει
acl localnet src 10.x.y.0/24

(οπου x.y.z το δίκτυο του σχολείου σου)
και μετά
http_access allow localnet

?
Απόστολος Γιόκας
ΠΕ20 - ΕΠΑΛ Ορεστιάδας

gidarakos

Υπάρχουν αυτές οι εγγραφές!
Αν βάλω proxy localhost όλα παίζουν σωστά (και οι thin).
Με το όνομα server τι γίνεται!

alkisg

Δεν έχω δει καθόλου μα καθόλου το θέμα squid, αλλά λογικά κάπου θα έχει κάπου τέτοιες οδηγίες:
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
...
http_access allow localhost


...οι οποίες δεν περιλαμβάνουν το server, αν αυτός είναι 127.0.1.1.
Οπότε ίσως η πρώτη γραμμή πρέπει να αλλάξει σε:
acl localhost src 127.0.0.0/8 ::1

ή εναλλακτικά, αν το επιτρέπει η σύνταξη, να προστεθεί μόνο το dns name "server" στην acl "localhost".

apapakL

Παράθεση από: gidarakos στις 17 Μαρ 2011, 09:32:05 ΠΜ
Ενώ με την εγκατάσταση του server δημιουργείτε εγγραφή «127.0.1.1 server» εσείς γιατί προτείνετε «127.0.2.1 server»;

Το προτείνουμε μόνο στη περίπτωση που ο ltsp εξυπυρετητής δεν λέγεται server

apapakL

αν θέλεις τρέξε τη παρακάτω εντολή
cat /etc/squid3/squid.conf | egrep -v "^s*(#|$)"


και πόσταρε το αποτέλεσμα για να δούμε το squid.conf σου

gidarakos

teacher@server:~$ cat /etc/squid3/squid.conf | egrep -v "^s*(#|$)"
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
        error_directory /usr/share/squid3/errors/el   
	acl schoolnet src 10.84.75.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
http_access allow localhost
http_access deny all
icp_access deny all
htcp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid3/access.log squid
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern (cgi-bin|\?)	0	0%	0
refresh_pattern .		0	20%	4320
icp_port 3130
dns_nameservers 194.63.239.164 194.63.237.4 194.63.238.4
coredump_dir /var/spool/squid3
teacher@server:~$

apapakL

Άλλαξε τη γραμμή

acl localhost src 127.0.0.1/32


σε

acl localhost src 127.0.0.1/32 127.0.1.1/32

apapakL

Να και το squid.conf σου με τη παραπάνω προσθήκη χωρίς σχόλια, χωρίς κάποιες διπλές directives
acl manager proto cache_object
acl localhost src 127.0.0.1/32 127.0.1.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl SSL_ports port 443
acl Safe_ports port 80		# http
acl Safe_ports port 21		# ftp
acl Safe_ports port 443		# https
acl Safe_ports port 70		# gopher
acl Safe_ports port 210		# wais
acl Safe_ports port 1025-65535	# unregistered ports
acl Safe_ports port 280		# http-mgmt
acl Safe_ports port 488		# gss-http
acl Safe_ports port 591		# filemaker
acl Safe_ports port 777		# multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny to_localhost
        error_directory /usr/share/squid3/errors/el   
	acl schoolnet src 10.84.75.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
icp_access deny all
htcp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid3/access.log squid
refresh_pattern ^ftp:		1440	20%	10080
refresh_pattern ^gopher:	1440	0%	1440
refresh_pattern (cgi-bin|\?)	0	0%	0
refresh_pattern .		0	20%	4320
icp_port 3130
dns_nameservers 194.63.239.164 194.63.237.4 194.63.238.4
coredump_dir /var/spool/squid3


Υ.Γ. Αν το χρησιμοποιήσεις, για παν ενδεχόμενο πάρε back up το παλιό!!

gidarakos

Δούλεψε!  :) Σε ευχαριστώ!

Άρα αυτό είναι κάτι που πρέπει να προσθέτουμε σε μία εγκατάσταση squid3;
Στις οδηγίες αν δεν κάνω λάθος δεν είδα κάτι τέτοιο..

apapakL

Να σου πω την αλήθεια εμένα το configuration σου (με proxy στο firefox server) για τους thin δούλευε αλλά στο server όχι.

Οι οδηγίες που αναφέρονται στο συγκεκριμένο post περιλαμβάνουν και φιλτράρισμα ανά χρήστη, αλλά επειδή ο διαχειριστής του συστήματος είναι στους whitelist users, και το σχετικό directive προηγείται από τα υπόλοιπα, δεν εμφανιζόταν πρόβλημα αφού συνδέομαι στο server με χρήστη που ανήκει στους whitelist_users...

apapakL

#28
Παράθεση από: apapakl στις 17 Μαρ 2011, 02:07:34 ΜΜ
Να σου πω την αλήθεια εμένα το configuration σου (με proxy στο firefox server) για τους thin δούλευε αλλά στο server όχι.


fat client ήταν τελικά. Sorry! Τώρα που το σκέφτομαι το πρόβλημα το είχα δει και γι αυτό πρότεινα  για ltsp server και thin να χρησιμοποιείται localhost ενώ στους fat server. Επιπρόσθετα γλυτώνουμε από προβλήματα όπως αλλαγές ip λόγω μεταφοράς σε άλλα υποδίκτυα πχ laptop ltsp server, ή όνομα εξυπηρετητή διαφορετικό του hardcoded στο κώδικα του ltsp "server".

Επίσης δουλεύει και με αυτό που πρότεινε ο alkisg
Αντικατάσταση του

acl localhost src 127.0.0.1/32


με

acl localhost src 127.0.0.0/8


Οπότε ή κάνουμε την παραπάνω αλλαγή στο squid.conf και χρησιμοποιούμε παντού server ή χρησιμοποιούμε localhost για proxy στους thin και τον ίδιο τον ltsp server και server για proxy στους fat clients.

gidarakos

Οι mandatory ρυθμίσεις για thin τι νόημα έχουν αν δεν κλειδώσεις τις ρυθμίσεις του firefox;
Θέλω να πω ότι αν μας ενδιαφέρει ο proxy να είναι υποχρεωτικός μόνο για τον firefox χρειάζονται;
Οι mandatory ρυθμίσεις είναι γενικά για gnome εφαρμογές που «βγαίνουν» στο internet για να χρησιμοποιούν υποχρεωτικά τον proxy;

apapakL

Οι mandatory ρυθμίσεις για τον proxy γίνονται έτσι ώστε να μη μπορεί κανείς απλός χρήστης να τις αλλάξει. Έτσι κλειδώνοντας τις ρυθμίσεις δικτύου του firefox στο να χρησιμοποιεί τον proxy του συστήματος, εξασφαλίζεται ότι θα χρησιμοποιείται πάντοτε ο proxy άρα και το φιλτράρισμα ή ότι άλλο τον έχεις βάλει να κάνει. Η μέθοδος κλειδώματος του firefox αναφέρεται στο 2ο post αυτού του θέματος.

Ο chromium ακολουθεί τις ρυθμίσεις του συστήματος και δεν έχει ρυθμίσεις όπως ο firefox (τουλάχιστον στο gui του  ::))... Οπότε δε χρειάζεται να κλειδώσουμε (προς το παρόν  ::)) κάτι...

Για άλλους browsers δεν το έχω ψάξει για την ώρα... Άρα αν μείνουμε σε firefox και chromium (που είναι και καλύτερος για thin clients - sorry πύρινη αλεπού) είμαστε καλυμμένοι.

Οι mandatory λοιπόν ρυθμίσεις στα κλειδιά του gnome κλειδώνουν τη συμπεριφορά των στοιχείων στα οποία αναφέρονται έτσι ώστε να μη μπορεί να αλλάξει από τους χρήστες του.

gidarakos

#31
Με είχαν μπερδέψει οι mandatory ρυθμίσεις γιατί ενώ τις εφάρμοζα (sudo ...) ο firefox με τις ρυθμίσεις που είχε (Ρυθμίσεις σύνδεσης>Χρήση ρυθμίσεων διαμεσολαβητή συστήματος) τις αγνοούσε.
Μόνο όταν δήλωνα τον proxy στον firefox με «Χειροκίνητη ρύθμιση διαμεσολαβητή» δούλευε.
Όταν αποφάσισα να κάνω επανεκκίνηση τον LTSP (λογικά τότε εφαρμόστηκαν οι mandatory) δούλεψαν όλα σωστά! Δηλαδή με ρύθμιση «Χρήση ρυθμίσεων διαμεσολαβητή συστήματος» έπαιξε ο proxy και ο firefox έκοβε τα domains του banned_domains.

Άρα θέλει επανεκκίνηση το gnome για να παίξουν οι mandatory ή κάτι κάνω λάθος;

alkisg

Παράθεση από: gidarakos στις 18 Μαρ 2011, 08:46:46 ΜΜ
Άρα θέλει επανεκκίνηση το gnome για να παίξουν οι mandatory ή κάτι κάνω λάθος;

Οι mandatory (συνήθως) διαβάζονται/εφαρμόζονται όταν ο χρήστης κάνει login.

apapakL

Άρα μόλις κάνεις αλλαγές κάνε logout και μετά πάλι login...

gidarakos

1. Εφόσον σε στήσιμο ltsp+thin δηλώνουμε mandatory localhost χρειάζονται οι ακόλουθες δηλώσεις στο squid.conf;
acl schoolnet src 10.x.y.0/24 #όπου x, y τα αντίστοιχα νούμερα του υποδικτύου σου
http_access allow schoolnet

Δεν αρκεί η παρακάτώ που ήδη υπάρχει η οποία παίζει σε όλα τα network id;
http_access allow localhost


2. Έχω παρατηρήσει ότι αλλού βλέπουμε την εντολή
sudo service squid3 force-reload

και αλλού
sudo invoke-rc.d squid3 force-reload

Παίρνουμε το ίδιο αποτέλεσμα, αλλά είναι το ίδιο;
Παρατήρησα επίσης ότι είναι διαφορετικό αν όπου "force-reload" βάλουμε "restart".

3. Το ίδιο θα ρωτήσω για τον dnsmasq..
sudo invoke-rc.d dnsmasq restart

όπου "invoke-rc.d" μπορούμε να βάλουμε "service" και όπου "force-reload" να βάλουμε "restart";
Με όλους τους συνδιασμούς έχουμε το ίδιο αποτέλεσμα, αλλά είναι το ίδιο;

apapakL

1. Η οδηγία http_access allow localhost επιτρέπει το browsing από τον ίδιο το localhost. Άρα οι thin που λειτουργούν εντός του localhost δηλαδή του ltsp-εξυπηρετητή, θα βγαίνουν μέσω του proxy με το τρόπο που λες. Δε θα μπορείς όμως να χρησιμοποιήσεις τον proxy και για άλλα μηχανήματα του δικτύου ή fat clients.

2. Το force-reload αναγκάζει τον squid3 να ξαναδιαβάσει το squid.conf χωρίς να χρειάζεται επανεκκίνηση

3. Το θέμα είναι αρκετά τεχνικό και δεν το ξέρω καλά. Πρέπει να έχει να κάνει με τις υπηρεσίες που μπορεί να είναι απενεργοποιημένες, ενεργοποιημένες να ξεκινούν σε κάποιο run-level, να είναι upstart jobs, να ξεκινούν ανάλογα με το αν διαπιστωθεί κάποιο συμβάν πχ αν βάλουμε το καλώδιο στη κάρτα δικτύου ο network-manager εκκινεί όλες τις διαδικασίες δικτύωσης.... Σε γενικές γραμμές από το Ubuntu 9.10 και μετά χρησιμοποιούμε το service. Παλαιότερα χρησιμοποιούσαμε το
invoke-rc.d και το /etc/init.d/<ονομα υπηρεσίας>

gidarakos

Στις ρυμθίσεις που αναφέρονται σε αυτό το θέμα καλό δεν είναι να ενεργοποιούμε και την cache του squid μια που μιλάμε για ltsp-thin άρα επιβάρυνση του δικτύου;
Νομίζω από default η εντολή (μόνο αυτή δε χρειάζεται για να ενεργοποιηθεί η cache;)
cache_dir ufs /var/spool/squid3 15000 16 256

που αναφέρεται στον οδηγό της ts.sch.gr, είναι με σχόλιο (#)!

apapakL

H cache είναι ενεργοποιημένη αλλά by default έχει μικρό μέγεθος
Με την εντολή που περιγράφεις δεν την ενεργοποιείς αλλά της αλλάζεις το μέγεθος.
Καλό είναι το μέγεθος ειδικά αν χρησιμοποιείς το proxy ώστε να cachaρεις updates από standalone λινουξ ή windows ( :() μηχανάκια

gidarakos

Παράθεση από: apapakl στις 22 Μαρ 2011, 03:11:58 ΜΜ
H cache είναι ενεργοποιημένη
Γι' αυτό υπάρχει κάποιο TAG μέσα στο squid.conf ή είναι εξ' ορισμού;
Παράθεση από: apapakl στις 22 Μαρ 2011, 03:11:58 ΜΜ
αλλά by default έχει μικρό μέγεθος
Το μικρό αυτό μέγεθος περιγράφετε από αυτό (δηλαδή 100MB);
#Default:
# cache_dir ufs /var/spool/squid3 100 16 256

apapakL


gidarakos

Δηλαδή αν δε θέλεις να κάνει cache o proxy το μόνο που πρέπει να κάνεις είναι να τη μηδενίσεις στο squid.conf;
cache_dir ufs /var/spool/squid3 0 16 256

apapakL

Εξαρτάται από την έκδοση του squid που χρησιμοποιείς.

Για περισσότερες πληροφορίες
http://wiki.squid-cache.org/SquidFaq/ConfiguringSquid#Can_I_make_Squid_proxy_only.2C_without_caching_anything.3F

gidarakos

1. Για να ακυρώσουμε τις mandatory ρυθμίσεις τι εντολές χρειάζονται;
2. Για να ακυρώσουμε τα κλειδώματα του firefox ο σωστός τρόπος είναι να σβήσουμε το users.js;

Υ.Γ. Για LTSP+thin ρωτάω.

apapakL

1.
sudo gconf-editor


Πας αρχείο --> Νέο υποχρεωτικό παράθυρο και από κει σβήνεις τα υποχρεωτικά κλειδιά που έχεις ορίσει

Για να δεις την αλλαγή χρειάζεται logout και πάλι login

2. Μπορείς είτε να σβήσεις ή να μετονομάσεις το εν λόγω αρχείο ή να σχολιάσεις τις γραμμές που σε ενδιαφέρουν

gidarakos

#44
Μέσα από το gconf-editor είναι γνωστό και από τις οδηγίες (ts.sch.gr). Sorry! Δικό μου το λάθος που δεν το ανέφερα.

Ήθελα να ρωτήσω αν μπορούμε με αντίστοιχες εντολές (ίσως gconftool-2 ...) να καταργήσουμε τις mandatory για τον proxy (όχι μέσω gconf-editor).

apapakL

Για παράδειγμα:

sudo gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --unset '/system/http_proxy/use_http_proxy'


Μπορείς να δεις κάμποσα και με

man gconftool-2