Κόψιμο σελίδων με Squid σε Ubuntu 10.04

Ξεκίνησε από Δημήτρης Δαλαγιώργος, 18 Νοε 2010, 01:13:44 ΜΜ

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

Δημήτρης Δαλαγιώργος

Ακολούθησα τις οδηγίες που υπάρχουν στο

"Οδηγίες εγκατάστασης και ρύθμισης διακομιστή μεσολάβησης Squid" Έκδοση: 1.1

για να κόψω π.χ. το facebook αλλά όταν πήγα να τρέξω την εντολή

sudo invoke-rc.d squid3 force-reload

μου αντιγύρισε

invoke-rc.d: unknown initscript, /etc/init.d/squid3 not found.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

odysseas

Πρόεδρε, δεν ξέρω αν έχει σχέση με το πρόβλημα (μάλλον κάποιο λάθος έχεις κάνει νωρίτερα) αλλά υπάρχει και νεώτερη έκδοση του οδηγού:
http://ts.sch.gr/ts/downloadsDetails.do?action=downloadsDetails&itemId=351990
Επίσης, υπάρχουν και οδηγίες στο wiki των sch-scripts:
http://wiki.ubuntu-gr.org/sch-scripts/squid
Τέλος, υπάρχει και το scriptάκι του apanagio:
https://alkisg.mysch.gr/steki/index.php?topic=3383.0

apanagio

Με πρόλαβε ο odysseas.

Αν θες έλα και από το irc να το δούμε επιτόπου (μενού βοήθεια των sch-scripts) ή:
http://webchat.freenode.net/?channels=linux.sch.gr

Δημήτρης Δαλαγιώργος

Απ' ότι φαίνεται δεν είχα εγκατεστημένο το squid3.

Το εργαστήριο αποτελείται από standalone υπολογιστές. Έτρεξα το script και μετά προσπαθώ μέσω cssh να τρέξω τις ρυθμίσεις του squid για τους clinets και μου βγάζει λάθος:

sudo gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set '/system/proxy/mode' 'manual'
Αποτυχία πρόσβασης στην πηγή ή τις πηγές ρυθμίσεων: Αποτυχία επικοινωνίας με τον εξυπηρετητή ρυθμίσεων. Μπορεί να είναι απενεργοποιημένη η δικτύωση TCP/IP για το ORBit, ή να παραμένουν παλαιά κλειδώματα NFS λόγω κατάρρευσης του συστήματος. Για πληροφορίες δείτε το  http://project.gnome.org/gconf/. (Λεπτομέρειες -  1: Δεν εκτελείται εντός ενεργής συνεδρίας)
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

apanagio

Για αρχή για να σιγουρευτείς ότι ο squid μπήκε σωστά, πήγαινε σε έναν client και ρύθμισε χειροκίνητα τον proxy. Σύστημα--> προτιμήσεις--> διαμεσολαβητής δικτύου

Επίσης στους clients θα χρειαστείς και το πακέτο ident2 για να λειτουργήσει η ανά χρήστη ρύθμιση των δικαιωμάτων.

Για να ρυθμίσεις από την κονσόλα νομίζω θα χρειαστείς και --direct δηλαδή θα πρέπει να δώσεις:
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


και αντί για "server" να βάλεις την πραγματική ip του server σου
Με το --direct δεν απαιτείται η ύπαρξη κάποιου δαίμονα ρυθμίσεων (gconfd) αλλά οι ρυθμίσεις γράφονται κατευθείαν στη βάση

Δημήτρης Δαλαγιώργος

Προφανώς κάτι δεν κάνω καλά. Πριν πάμε στους clients, ας δούμε γιατί δεν δουλεύει ούτε στον server.

Η ρύθμιση του διαμεσολαβητή δικτύου είναι:

Χειροκίνητη ρύθμιση διαμεσολαβητή, 127.0.0.1 port 3128

Η ρύθμιση του firefox είναι να χρησιμοποιεί τις ρυθμίσεις του διαμεσολαβητή του συστήματος.

Στο squid.conf έχει φτιαχτεί απ' το script ο παρακάτω κανόνας:

# 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.142.66.10/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


Και παρόλα αυτά, εγώ εξακολουθώ να συνδέομαι στο facebook. Γιατί;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

odysseas

Για να διαγνώσεις ότι πράγματι χρησιμοποιείται το squid για την πρόσβαση στο web (είτε από τους clients, είτε από τον ίδιο τον server), μπορείς να φορτώσεις οποιαδήποτε ιστοσελίδα από τον browser της αρεσκείας σου και μετά να κοιτάξεις το /var/log/squid/access.log  Αν δε χρησιμοποιείται το squid, τότε προφανώς και δε θα κόβεται καμία σελίδα.

Επίσης, δοκίμασε να δώσεις manually την ip και τη θύρα του squid server στον firefox αντί να χρησιμοποιείς τον "διαμεσολαβητή του συστήματος", τουλάχιστον για τα διαγνωστικά σου.

Δημήτρης Δαλαγιώργος

Το access log καταγράφει για τον server 127.0.0.1 πολλές γραμμές TCP_MISS. Δεν ξέρω πώς να το ερμηνεύσω αυτό.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

odysseas

Παράθεση από: Δημήτρης Δαλαγιώργος στις 22 Νοε 2010, 04:49:58 ΜΜ
Το access log καταγράφει για τον server 127.0.0.1 πολλές γραμμές TCP_MISS. Δεν ξέρω πώς να το ερμηνεύσω αυτό.

Όταν έχεις μια οποιαδήποτε cache (διορθώστε με αν κάνω λάθος) τα hits είναι όταν αυτό που ζητάς βρίσκεται στην cache και τα misses όταν δε βρίσκεται και χρειάζεται να το φορτώσει. Αν ξαναζητήσεις την ίδια σελίδα θα πρέπει να αναφέρει ότι τη βρήκε στην cache.

Δημήτρης Δαλαγιώργος

Άρα ο squid όντως παρεμβάλλεται. Γιατί τότε δεν κόβει το facebook παρ' ότι βρίσκεται στο banned_domains.acl;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

apanagio

Αν δεις την ιεράρχηση των κανόνων (ο πιο πάνω έχει μεγαλύτερη προτεραιότητα) ο πρώτος κανόνας που ισχύει έιναι:
        http_access allow whitelist_users       

επομένως υπάρχει περίπτωση ο χρήστης που χρησιμοποιείς να είναι στους whitelist_users (αρχείο: /etc/squid3/whitelist_users.acl )  οπότε να μην κόβεται κανένα site για το συγκεκριμένο χρήστη.

Είναι αυτή η περίπτωσή σου;

Δημήτρης Δαλαγιώργος

Δυστυχώς όχι. Η whitelist έχει μόνο ένα χρήστη, τον teacher που δεν υπάρχει καν στο σύστημά μου! :(
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

apanagio

Παράθεση από: odysseas στις 22 Νοε 2010, 02:40:55 ΜΜ
Για να διαγνώσεις ότι πράγματι χρησιμοποιείται το squid για την πρόσβαση στο web (είτε από τους clients, είτε από τον ίδιο τον server), μπορείς να φορτώσεις οποιαδήποτε ιστοσελίδα από τον browser της αρεσκείας σου και μετά να κοιτάξεις το /var/log/squid/access.log  Αν δε χρησιμοποιείται το squid, τότε προφανώς και δε θα κόβεται καμία σελίδα.

Προσοχή μην μπερδεύετε το squid με το squid3. Αυτό που μας απασχολεί εμάς είναι το squid3.
Οπότε πρέπει να κοιτάξεις το /var/log/squid3/access.log
Το σκέτο squid μπορείς να το απομακρύνεις άφοβα.
sudo apt-get remove squid

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

Ένας άλλος τρόπος για να δεις αν χρησιμοποιείς το squid είναι να το σταματήσεις
sudo service squid3 stop
και να δεις αν ακόμα έχεις πρόσβαση στο internet

odysseas

Παράθεση από: apanagio στις 23 Νοε 2010, 12:33:05 ΜΜ
Προσοχή μην μπερδεύετε το squid με το squid3. Αυτό που μας απασχολεί εμάς είναι το squid3.
Οπότε πρέπει να κοιτάξεις το /var/log/squid3/access.log

Σωστό! Κεκτημένη ταχύτητα.

Δημήτρης Δαλαγιώργος

Απεγκατέστησα το squid και όλα άρχισαν να αντιδρούν κατά τα αναμενόμενα! Ευχαριστώ για τη βοήθεια!
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller