Squid στο 12.04

Ξεκίνησε από ChrsMel, 17 Σεπ 2012, 10:07:52 ΠΜ

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

ChrsMel

Έκανα εγκατάσταση του squid στο ubuntu 12.04 LTSP. (apt-get install squid)
Έκανα τις απαραίτητες ρυθμίσεις στο squid.conf και δουλεύει
Έχω ρυθμίσει τον proxy του συστήματος (ρυθμίσεις συστήματος, Δίκτυο, Διαμεσολαβητής,Εφαρμογή σε όλο το σύστημα)

Ερώτηση : Ποια άλλη ενέργεια πρέπει να κάνω για παίρνουν όλοι ο χρήστες στα clients (14 thin και 1 fat) από τον proxy και όχι απ' ευθείας; 
Στο server δουλεύει έχοντας τις ρυθμίσεις του Firefox στο : Χρήση ρυθμίσεων διαμεσολαβητή συστήματος.

apanagio

Έκανες δημοσίευση του εικονικού δίσκου μετά τη ρύθμιση του proxy;

Δυστυχώς για εμάς, ο firefox επιτρέπει στους χρήστες να επιλέξουν πως θέλουν να συνδέονται στο δίκτυο (με ή χωρίς proxy).
Αν πιστεύεις ότι οι μαθητές σου θα μπορούν να βρουν τη ρύθμιση του proxy και να την παρακάμψουν μπορείς να δοκιμάσεις να επιβάλεις τη χρήση του proxy.

χρησιμοποιώντας iptables μπορείς να κόβεις την εξερχόμενη κυκλοφορία που πάει σε πόρτα 80 για όλους τους χρήστες εκτός από το διαχειριστή και τον proxy: http://askubuntu.com/questions/11957/iptables-rule-to-force-all-browsers-to-use-proxy

H λύση αυτή δεν είναι και η καλύτερη καθώς δεν ασχολείται με https αλλά είναι ένα βήμα

καλή αρχή σε όλους/ες

gidarakos

Υπάρχει και αυτό το θέμα Φιλτράρισμα σελίδων απο thin - fat client - server για ρυθμίσεις squid-mandatory-firefox.
Όμως δεν τα έχω δοκιμάσει σε 12.04!
@apanagio: δεν ισχύουν;

ChrsMel

Η καλύτερη λύση πιστεύω είναι η 2η κάρτα δικτύου ώστε να παίρνουν τα clients IP και proxy από τον server υποχρεωτικά, αλλιώς  οι μαθητές σχετικά εύκολα αλλάζουν τις ρυθμίσεις του firefox.

apanagio

Παράθεση από: vanitas στις 19 Σεπ 2012, 01:18:45 ΜΜ
Η καλύτερη λύση πιστεύω είναι η 2η κάρτα δικτύου ώστε να παίρνουν τα clients IP και proxy από τον server υποχρεωτικά, αλλιώς  οι μαθητές σχετικά εύκολα αλλάζουν τις ρυθμίσεις του firefox.

Δεν είμαι σίγουρος ότι έτσι θα λύναμε το πρόβλημα μας.
Με δεύτερη κάρτα μπορούμε να χρησιμοποιήσουμε transparent proxy αλλά και πάλι δεν μπορείς να κάνεις τίποτα για το https.

@vanitas: Άσχετα με το firefox, οι clients σου χρησιμοποιούν τον proxy; Αυτό το θέμα λύθηκε;

ChrsMel

Η δεύτερη κάρτα συνδέεται με το switch όπου συνδέονται τα client και της δίνουμε IP π.χ. 192.168.0.1  ενώ η πρώτη στο router και παίρνει IP από εκεί ή δίνoυμε 10.x.x.10
Το καλώδιο switch-router το βγάζουμε.
Έτσι ο server δίνει στα client IP π.χ. 192.168.0.x  οπότε αναγκαστικά η πρόσβαση στο internet γίνεται μέσω του proxy server. Απλά οι οδηγίες του ΠΣΔ λένε να αποφεύγουμε αυτή τη λύση για την περίπτωση βλάβης του server αλλά σε αυτή την περίπτωση έτσι και αλλιώς δεν παίζουν τα LTSP clients, δεν παίζει τίποτε.

alkisg

> για την περίπτωση βλάβης του server

...όπου οι clients έχουν και τοπικό OS, είτε Linux είτε Windows, οπότε θέλουμε να παίρνουν Internet χωρίς να αλλάζουμε την καλωδίωση. Καλά, λεπτομέρειες.

Btw ό,τι γίνεται με δύο κάρτες, μπορεί να γίνει και με μία. Αν μας βολεύει καλύτερα για το squid, μπορούμε να βάζουμε σε μία μόνο κάρτα δικτύου δύο IP, και έτσι οι clients να είναι απομονωμένοι τελείως από το τοπικό δίκτυο (gateway=ο server) ακόμα κι ας είναι στο ίδιο switch.

Δηλαδή π.χ. server ip1 = 10.160.31.10, server ip2 = 192.168.67.10, client ip = 192.168.67.123, client gateway = 192.168.67.10.
Οπότε οι clients δεν μπορούν να δουν τον router του εργαστηρίου, δεν μπορούν να βγουν στο internet αν δεν τους κάνει NAT ή proxy ο server.
Αν αυτό βολεύει καλύτερα στο squid, μπορούμε να αλλάξουμε τη default εγκατάσταση ώστε να χρησιμοποιεί 2 IP είτε μία κάρτα έχει ο server είτε δύο.

gidarakos

Άλκη ρώτησα κ τον apanagio.. αυτές οι ρυθμίσεις Φιλτράρισμα σελίδων απο thin - fat client - server ισχύουν στη 12.04;

alkisg

Από squid εγώ δηλώνω άσχετος! apanagio αν θες να τσεκάρεις το plugin αν παίζει στην 12.04 και να το ενσωματώσουμε στα sch-scripts, πολύ ευχαρίστως!
Προσωπικά θέλω να βρω ευκαιρία να διαβάσω για ip tables και proxies κτλ για να δούμε τι παίζει καλύτερα και είναι πιο σταθερό, διπλή IP σε μια κάρτα δικτύου ή όχι, transparent proxy ή όχι, κτλ, αλλά όλο και πιάνομαι με άλλα και το αναβάλλω... :-/

gidarakos

Είχα εφαρμόσει παλιότερα αυτή τη λύση Configuring a Transparent Proxy/Webcache in a Bridge using Squid and ebtables για Transparent Proxy και θυμάμαι μου είχε δουλέψει!

apanagio

Γεια σας,

Εγκατάσταση και ρύθμιση squid:
Δεν υπάρχει διαφορά από τη 10.04

Ρύθμιση clients να χρησιμοποιούν τον proxy:
Δεν έιμαι ακόμα σε εργαστήριο οπότε δεν έχω επιβεβαιώσει πειραματικά αυτά που γράφω, οπότε παρακαλώ διορθώστε με αν κάτι δεν ισχύει.
thin clients: ρυθμίζεις το server να χρησιμοποιεί τον proxy (κανεις και εφαρμογή σε όλο το σύστημα)
fat clients: Αφού ρυθμίσεις το server, δημοσιεύεις τον εικονικό δίσκο.
standalone: Ανάλογα με το λειτουργικό σύστημα κάνεις την κατάλληλη ρύθμιση (συνήθως είναι 2-3 κλίκ)

Επιβολή της χρήσης Proxy:
Το θέμα είναι αρκετά πολύπλοκο οπότε φαντάζομαι δεν θα το εξαντλήσουμε αλλά ίσως καταλήξουμε σε κάποια ικανοποιητική λύση
Χρήση του router:

  • Αν έχουμε πρόσβαση στο router μπορούμε να τον ρυθμίσουμε με τέτοιο τρόπο ώστε να δέχεται εξερχόμενες συνδέσεις μόνο απο την ip του proxy server. Έτσι όσοι χρησιμοποιούν proxy θα συνδέονται κανονικά, όσοι δεν χρησιμοποιούν θα μπλοκάρονται. Αν ο proxy server μας λειτουργεί και σαν ltsp server(συνήθως έτσι γίνεται) τότε με τους thin clients θα έχουμε πρόβλημα και θα πρέπει να τους μπλοκάρουμε με άλλο τρόπο. Επίσης πολύ συχνά δεν έχουμε πρόσβαση στο router.
    Αυτή η μέθοδος μας επιτρέπει να "μπλοκάρουμε" όλα τα μηχανήματα που θα μπουν στο δίκτυο (thin, fat, linux, windows, mac κτλ κτλ)
  • Χρήση transparent proxy
    Υποχρεώνουμε όλη την κίνηση του δικτύου να περνάει από συγκεκριμένο υπολογιστή. Εκεί εγκαθιστούμε τον proxy που "εν αγνοία" των clients φιλτράρει τα πακέτα. Είναι καλή λύση που δεν χρειάζεται καμία ρύθμιση στους clients. Έχει κάποια μειονεκτήματα: http://wiki.squid-cache.org/SquidFaq/InterceptionProxy (η πρώτη παράγραφος) που δεν είναι ιδιαίτερα σημαντικά αλλά πρέπει να τα λάβουμε υπόψη. Αν γίνει με 2 κάρτες δικτύου δεν μπορεί να παρακαμφθεί. Αν γίνει με 1 κάρτα δικτύου θα μπορούσε κάποιο μηχάνημα του δικτύου μας να βάλει άλλη IP και να συνδεθεί κατευθείαν στο router
  • Βάζουμε τον proxy "κανονικά" και με τη δύναμη του διαχειριστή, υποχρεώνουμε τους clients να χρησιμοποιούν τον proxy. Σχετικά απλή λύση, σε thin, fat clients και σε linux workstations μπορεί να δουλέψει. Για windows clients δουλεύει αρκεί να μην έιναι διαχειριστές και όλοι οι χρήστες.
    Μια παραλλαγή της λύσης αυτής είναι η ρύθμιση του proxy σε επίπεδο συστήματος, και μετά η ρύθμιση του firefox όπως γράφει στο link που λέει ο gidarakos
Αν έχουμε πρόσβαση στον router πιστεύω καλύτερη είναι η λύση 1
Αν έχουμε 2 κάρτες δικτύου στο server τότε ουσιαστικά κανουμε δουλειά router και μπορούμε να κάνουμε και τη λύση 1 και τη 2. Δίνοντας 2 ip στην ίδια κάρτα μπορούμε να κάνουμε το ίδιο άλλα δεν είναι τόσο ισχυρό γιατί δεν υπάρχει φυσικός διαχωρισμός μεταξύ των δικτύων οπότε παρακάμπτεται σχετικά εύκολα,
Αν έχουμε μόνο ltsp τότε πιστεύω η λύση 3 μας καλύπτει.

Το πράγμα περιπλέκεται αν θέλουμε να φιλτράρουμε και ασύρματες συσκευές που συνδέονται στο δίκτυο μας.

ChrsMel

#11
Παράθεση από: vanitas στις 20 Σεπ 2012, 01:58:20 ΜΜ
Η δεύτερη κάρτα συνδέεται με το switch όπου συνδέονται τα client και της δίνουμε IP π.χ. 192.168.0.1  ενώ η πρώτη στο router και παίρνει IP από εκεί ή δίνoυμε 10.x.x.10
Το καλώδιο switch-router το βγάζουμε.
Έτσι ο server δίνει στα client IP π.χ. 192.168.0.x  οπότε αναγκαστικά η πρόσβαση στο internet γίνεται μέσω του proxy server. Απλά οι οδηγίες του ΠΣΔ λένε να αποφεύγουμε αυτή τη λύση για την περίπτωση βλάβης του server αλλά σε αυτή την περίπτωση έτσι και αλλιώς δεν παίζουν τα LTSP clients, δεν παίζει τίποτε.
Παράθεση από: apanagio στις 19 Σεπ 2012, 02:26:09 ΜΜ
Δεν είμαι σίγουρος ότι έτσι θα λύναμε το πρόβλημα μας.
Με δεύτερη κάρτα μπορούμε να χρησιμοποιήσουμε transparent proxy αλλά και πάλι δεν μπορείς να κάνεις τίποτα για το https.

@vanitas: Άσχετα με το firefox, οι clients σου χρησιμοποιούν τον proxy; Αυτό το θέμα λύθηκε;

Οι clients όταν μπαίνουν στα  windows παίρνουν από router και χρησιμοποιούν τον proxy κανονικά .
Όταν μπαίνουν LTSP Clients παίρνουν απ'ευθείας, γι' αυτό άνοιξα αυτό το θέμα. Στο 10.04 έπαιρναν αμέσως τις ρυθμίσεις του συστήματος και είχαν internet μέσω proxy αλλά στο 12.04 κάτι έχει αλλάξει και παρόλο που στις ρυθμίσεις του συστήματος βάζω εφαρμογή σε όλο το σύστημα η εφαρμογή γίνεται μόνο στο server.

apanagio

Συγγνώμη αν άλλαξα θέμα στο thread. Για συνέχεια της κουβέντας για το πως να επιβάλλουμε τη χρήση proxy άνοιξα αυτό το θέμα:
https://alkisg.mysch.gr/steki/index.php?topic=4774.new#new

Για τη σύνδεση των client στον proxy:
Αν καταλαβαίνω σωστά:
Έχεις proxy που λειτουργεί σωστά.
ο server με το βασικό χρήστη συνδέεται και χρησιοποιεί τον proxy
οι thin/fat clients δεν τον χρησιμοποιούν
οι windows clients χρησιμοποιούν τον proxy κανονικά.

Αν ρυθμίσεις ένα client χειροκίνητα (πχ από τις ρυθμίσεις του firefox) να χρησιμοποιεί τον proxy δουλεύει οκ;
Αν από τον server μπεις ως άλλος χρήστης (πχ αυτός που μπαίνει από έναν client) τότε χρησιμοποιείται ο proxy;

ChrsMel

Παράθεση από: apanagio στις 21 Σεπ 2012, 02:03:42 ΜΜ
Συγγνώμη αν άλλαξα θέμα στο thread. Για συνέχεια της κουβέντας για το πως να επιβάλλουμε τη χρήση proxy άνοιξα αυτό το θέμα:
https://alkisg.mysch.gr/steki/index.php?topic=4774.new#new

Για τη σύνδεση των client στον proxy:
Αν καταλαβαίνω σωστά:
Έχεις proxy που λειτουργεί σωστά.
ο server με το βασικό χρήστη συνδέεται και χρησιοποιεί τον proxy
οι thin/fat clients δεν τον χρησιμοποιούν
οι windows clients χρησιμοποιούν τον proxy κανονικά.

Αν ρυθμίσεις ένα client χειροκίνητα (πχ από τις ρυθμίσεις του firefox) να χρησιμοποιεί τον proxy δουλεύει οκ;
Αν από τον server μπεις ως άλλος χρήστης (πχ αυτός που μπαίνει από έναν client) τότε χρησιμοποιείται ο proxy;


Αν αλλάξω τις ρυθμίσεις του χρήστη στο firefox και βάλω proxy ο χρήστης παίρνει proxy και εφαρμόζoνται οι ρυθμίσεις πρόσβασης  του squid. Αυτό συμβαίνει είτε ο χρήστης ,μπει από το τερματικό είτε από τον server.

Η αρχική ερώτηση ήτανε να εφαρμοσθούν σε  όλους  τους χρήστες οι ρυθμίσεις squid είτε έχουν δημιουργηθεί είτε όχι χωρίς να αλλαχθούν οι ρυθμίσεις στον firefox στον καθένα.

apanagio

Απ' ό,τι βλέπω,  όντως δεν εφαρμόζεται η ρύθμιση για κάθε χρήστη.
Δεν έχει σχέση με sch-scripts πρέπει να είναι bug του ubuntu.Το ανέφερα:
https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1055525
Αν αφορά και άλλον/η κλικάρετε το "also affects me" να γίνουμε πολλοί/ες

Για το δικο μας πρόβλημα:
Για να χρησιμοποιεί ο χρήστης τον proxy πρέπει να τρέξει τις εντολές:
gsettings set org.gnome.system.proxy.socks host 'PROXY_IP'
gsettings set org.gnome.system.proxy.socks port PROXY_PORT
gsettings set org.gnome.system.proxy mode 'manual'

όπου PROXY_IP και PROXY_PORT η ip και η πόρτα του proxy αντίστοιχα

Αυτό που θέλουμε να κάνουμε είναι να τρέχουμε αυτές τις εντολές κάθε φορά που συνδέεται ένας χρήστης. Οπότε πρέπει στο ~/.profile αρχείο κάθε χρήστη να μπουν αυτές οι εντολές. (καλύτερα στο τέλος του)

Μπορείς να το κάνεις για ένα χρήστη και με ένα scriptάκι να αντιγράψεις το .profile αρχείο του, στο home όλων των υπόλοιπων χρηστών.
Αν θέλουμε οι χρήστες που θα δημιουργηθούν στο μέλλον να έχουν το ίδιο .profile αρχείο, το αντιγράφουμε στο φάκελο: /etc/skel (Υπάρχει ήδη εκεί οπότε αρκεί να συμπληρώσουμε τις γραμμές που θέλουμε)




ChrsMel

Παράθεση από: apanagio στις 24 Σεπ 2012, 05:45:42 ΜΜ
Απ' ό,τι βλέπω,  όντως δεν εφαρμόζεται η ρύθμιση για κάθε χρήστη.
Δεν έχει σχέση με sch-scripts πρέπει να είναι bug του ubuntu.Το ανέφερα:
https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1055525
Αν αφορά και άλλον/η κλικάρετε το "also affects me" να γίνουμε πολλοί/ες

Για το δικο μας πρόβλημα:
Για να χρησιμοποιεί ο χρήστης τον proxy πρέπει να τρέξει τις εντολές:
gsettings set org.gnome.system.proxy.socks host 'PROXY_IP'
gsettings set org.gnome.system.proxy.socks port PROXY_PORT
gsettings set org.gnome.system.proxy mode 'manual'

όπου PROXY_IP και PROXY_PORT η ip και η πόρτα του proxy αντίστοιχα

Αυτό που θέλουμε να κάνουμε είναι να τρέχουμε αυτές τις εντολές κάθε φορά που συνδέεται ένας χρήστης. Οπότε πρέπει στο ~/.profile αρχείο κάθε χρήστη να μπουν αυτές οι εντολές. (καλύτερα στο τέλος του)

Μπορείς να το κάνεις για ένα χρήστη και με ένα scriptάκι να αντιγράψεις το .profile αρχείο του, στο home όλων των υπόλοιπων χρηστών.
Αν θέλουμε οι χρήστες που θα δημιουργηθούν στο μέλλον να έχουν το ίδιο .profile αρχείο, το αντιγράφουμε στο φάκελο: /etc/skel (Υπάρχει ήδη εκεί οπότε αρκεί να συμπληρώσουμε τις γραμμές που θέλουμε)




Αυτές τις 3 εντολές στο .profile του κάθε χρήστη τις έχεις δοκιμάσει;
γιατί σε εμένα δε δουλεύουνε :

gsettings set org.gnome.system.proxy.socks host '10.22.31.10'
gsettings set org.gnome.system.proxy.socks port 3128
gsettings set org.gnome.system.proxy mode 'manual'



apanagio

#17
Τις δοκίμασα και σε εμένα δουλεύουνε.
Αλλά ο πιο εύκολος τρόπος τελικά είναι να χρησιμοποιήσουμε το /etc/profile.d/

Φτιάχνουμε ένα αρχείο με τις 3 αυτές εντολές
gsettings set org.gnome.system.proxy.http host 'PROXY_IP'
gsettings set org.gnome.system.proxy.http port PROXY_PORT
gsettings set org.gnome.system.proxy mode 'manual'

και το βάζουμε στο φάκελο /etc/profile.d/
Αν έχουμε και fat clients κάνουμε δημοσίευση του δίσκου.

Οι εντολές αυτές θα εκτελούνται για κάθε χρήστη και έτσι θα χρησιμοποιούν τον Proxy όλοι.

apapakL

#18
Οδηγός εγκατάστασης - ρύθμισης squid3 με κλείδωμα ρυθμίσεων proxy συστήματος - firefox, web και user filtering.

1. Εγκαθιστούμε το squid3

sudo apt-get install squid3


2. Στη συνέχεια φτιάχνουμε 3 αρχεία

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

Έτσι το αρχείο θα μπορούσε να περιέχει τους χρήστες
administrator
teacher
daskalos



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

sudo gedit /etc/squid3/banned_users.acl

Έτσι το αρχείο θα μπορούσε να περιέχει τους χρήστες
user01
user02
a1a01


/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 --> (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

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



4. Στη συνέχεια πρέπει να επεξεργαστούμε το squid.conf
sudo gedit /etc/squid3/squid.conf


Αλλάζουμε τη γραμμή
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


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


αποθηκεύουμε και κλείνουμε το αρχείο
και επανοφορτώνουμε τη βάση δεδομένων dconf

sudo dconf update



Στη συνέχεια

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


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

sudo dconf update



Ιδιαίτερη προσοχή στις οδηγίες! Αν δεν εφαρμοστούν σωστά υπάρχει πιθανότητα να μην ξεκινήσει το
γραφικό περιβάλλον... αν συμβεί αυτό ctrl-alt-f1, συνδεθείτε με τα διαπιστευτήρια σας και σβήστε το φάκελο /etc/dconf

Προσοχή μη σβήσετε όλο το φάκελο /etc!!! Αν δεν είστε σίγουροι ζητήστε βοήθεια!

sudo rm -r /etc/dconf


και κάντε reboot

sudo shutdown -r now


6. Τέλος κλειδώνουμε τις ρυθμίσεις proxy του firefox ως εξής (πηγές: resource1, resource 2):

Φτιάχνουμε ένα αρχείο  με το όνομα 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...

Για να εφαρμοστεί η ρύθμιση και στους LTSP clients κάνουμε δημοσίευση εικονικού δίσκου από τα sch-scripts

Έτσι αν στο address bar ενός browser το url περιέχει μια από τις λέξεις ή τα domains του banned_domains.acl, το site κόβεται για όλους εκτός από τους χρήστες που υπάρχουν στο αρχείο whitelist_users.acl

Επί τη ευκαιρία παραθέτω συμπληρωματικά και κάποιες άλλες ρυθμίσεις κλειδώματος για τον firefox που μπορούν να φανούν χρήσιμες (μπαίνουν στο αρχείο mozilla.cfg):

////////////////////////////////////////////////////////////
// Ορισμός προτιμήσεων Firefox για όλους τους χρήστες.    //
// http://kb.mozillazine.org/Locking_preferences          //
////////////////////////////////////////////////////////////

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

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

// «Λήψεις αρχείων:»
// «[v] Προβολή του παραθύρου λήψης αρχείων στη λήψη ενός αρχείου»
//lockPref("browser.download.manager.showWhenStarting", true);
// «[ ] Κλείσιμο όταν ολοκληρωθούν όλες οι λήψεις»
//lockPref("browser.download.manager.closeWhenDone", false);
// «(*) Αποθήκευση αρχείων σε» - χρειάζονται όλα τα παρακάτω
//lockPref("browser.download.useDownloadDir", true);
//lockPref("browser.download.dir", "~/Επιφάνεια εργασίας");
//lockPref("browser.download.lastDir", "~/Επιφάνεια εργασίας");
//lockPref("browser.download.folderList", 2);
// «( ) Πάντα ερώτηση για την τοποθεσία αποθήκευσης»
//lockPref("browser.download.useDownloadDir", false);

////////////////////////
// Καρτέλα «Καρτέλες» //
////////////////////////

// Οι νέες σελίδες θα ανοίγουν σε:
// ( ) ένα νέο παράθυρο
//lockPref("browser.link.open_external", 2);
//lockPref("browser.link.open_newwindow", 2);
// (*) μια νέα καρτέλα
//lockPref("browser.link.open_external", 3);
//lockPref("browser.link.open_newwindow", 3);

// [v] Προειδοποίηση στο κλείσιμο πολλαπλών καρτελών
//lockPref("browser.tabs.warnOnClose", true);
// [v] Προειδοποίηση στο άνοιγμα πολλαπλών καρτελών που μπορεί να επιβραδύνουν τον Firefox
//lockPref("browser.tabs.warnOnOpen", true);
// [ ] Πάντα εμφάνιση της εργαλειοθήκης καρτελών
//lockPref("browser.tabs.autoHide", true);
// [ ] Άμεση εστίαση στο άνοιγμα ενός δεσμού σε μια νέα καρτέλα
//lockPref("browser.tabs.loadInBackground", true);

///////////////////////////
// Καρτέλα «Περιεχόμενο» //
///////////////////////////

// Φραγή αναδυόμενων παραθύρων
//lockPref("dom.disable_open_during_load", true);
// «Αυτόματη φόρτωση εικόνων»
//   1 = επιλεγμένο
//   2 = αποεπιλεγμένο
//lockPref("permissions.default.image", 1);

// «Ενεργοποίηση JavaScript»
//lockPref("javascript.enabled", true);
// «Για προχωρημένους...»
// Απενεργοποίηση του κουμπιού «Για προχωρημένους...»
//lockPref("pref.advanced.javascript.disable_button.advanced", true);
// [v] Μετακίνηση ή αλλαγή μεγέθους παραθύρων
//lockPref("dom.disable_window_move_resize", false);
// [ ] Ανασήκωμα ή χαμήλωμα παραθύρων
//lockPref("dom.disable_window_flip", true);
// [v] Απενεργοποίηση ή αντικατάσταση του μενού περιεχομένου
//lockPref("dom.event.contextmenu.enabled", true);
// [ ] Απόκρυψη της μπάρας κατάστασης
//lockPref("dom.disable_window_open_feature.status", true);
// [ ] Αλλαγή του κειμένου της μπάρας κατάστασης
//lockPref("dom.disable_window_status_change", true);

// «Ενεργοποίηση Java»
//lockPref("security.enable_java", true);

// «Γραμματοσειρές & Χρώματα»
// «Προεπιλεγμένη γραμματοσειρά:»
//lockPref("font.name.serif.el", "serif");
// «Μέγεθος:»
//lockPref("font.size.variable.el", "16");
// Στο κουμπί «Για προχωρημένους» έχει πάρα πολλά για να αναφερθούν εδώ,
// δείτε τα γράφοντας τη διεύθυνση about:config στο Firefox.
// Παρατίθενται μόνο δύο:
// «Προεπιλεγμένη κωδικοποίηση:»
//lockPref("intl.charset.default", "ISO-8859-7");
// «Γλώσσες»
//lockPref("intl.accept_languages", "el-gr, el, en-us. en");

/////////////////////////
// Καρτέλα «Εφαρμογές» //
/////////////////////////

// Οι ρυθμίσεις αυτής της καρτέλας αποθηκεύονται στον κατάλογο
// ~/.mozilla/firefox/user.profile/mimeTypes.rdf
// Για να εξαναγκάσετε το χρήστη να αποθηκεύει τα αρχεία στο δίσκο
// αντί να τα ανοίγει εντός του Firefox, μπορείτε να κάνετε κάτι σαν
// //lockPref("plugin.disable_full_page_plugin_for_types", "audio/x-ms-wma,application/pdf");

////////////////////////
// Καρτέλα «Απόρρητο» //
////////////////////////

// «[v] Διατήρηση του ιστορικού μου για τις τελευταίες [90] μέρες»
// Θέστε "browser.history_expire_days", 0  για να απενεργοποιήσετε τελείως το ιστορικό
//lockPref("browser.history_expire_days", 180);
//lockPref("browser.history_expire_days_min", 90);
// «Απομνημόνευση φορμών και ιστορικού μπάρας αναζήτησης
//lockPref("browser.formfill.enable", true);
// «Απομνημόνευση λήψεων»
//   0 = Απενεργοποίηση
//   2 = Ενεργοποίηση
//lockPref("browser.download.manager.retention", 2);

// «[v] Αποδοχή cookies από σελίδες»
// «[v] Αποδοχή cookies τρίτων»
//   0 = Ναι και στα δύο
//   1 = Αποδοχή cookies αλλά όχι τρίτων
//   2 = Όχι και στα δύο
//lockPref("network.cookie.cookieBehavior", 0);
// «Εξαιρέσεις...» - δυνατότητα απενεργοποίησης του κουμπιού δεξιά
//lockPref("pref.privacy.disable_button.cookie_exceptions", false);

// «Διατήρηση μέχρι:»
//   0 = να λήξουν
//   1 = ερώτηση κάθε φορά
//   2 = να κλείσει ο Firefox
//lockPref("network.cookie.lifetimePolicy", 0);

// «[ ] Πάντα εκκαθάριση των προσωπικών μου δεδομένων στο κλείσιμο του Firefox
//lockPref("privacy.sanitize.sanitizeOnShutdown", false);
// «Ρυθμίσεις...»
// «[v] Ιστορικό περιήγησης»
//lockPref("privacy.item.history", true);
// «[v] Ιστορικό λήψης αρχείων»
//lockPref("privacy.item.downloads", true);
// «[v] Αποθηκευμένες φόρμες και ιστορικό αναζήτησης»
//lockPref("privacy.item.formdata", true);
// «[v] Λανθάνουσα μνήμη»
//lockPref("privacy.item.cache", true);
// «[ ] Cookies»
//lockPref("privacy.item.cookies", false);
// TODO «[ ] Δεδομένα ιστοσελίδων για εργασία χωρίς σύνδεση»
// «[ ] Αποθηκευμένοι κωδικοί»
//lockPref("privacy.item.passwords", false);
// «[v] Συνεδρίες με σύνδεση»
//lockPref("privacy.item.sessions", true);
// «Ερώτηση πριν την εκκαθάριση προσωπικών δεδομένων»
//lockPref("privacy.sanitize.promptOnSanitize", true);

////////////////////////
// Καρτέλα «Ασφάλεια» //
////////////////////////

// «[v] Προειδοποίηση όταν οι σελίδες προσπαθούν να εγκαταστήσουν πρόσθετα»
//lockPref("xpinstall.whitelist.required", true);

// «[v] Προειδοποίηση αν η σελίδα είναι ύποπτη για κακόβουλες επιθέσεις»
//lockPref("browser.safebrowsing.malware.enabled", true);
// «[v] Προειδοποίηση για το αν η σελίδα ανήκεις στις ύποπτες για πλαστογραφία σελίδες»
//lockPref("browser.safebrowsing.enabled", true);

// «[v] Απομνημόνευση κωδικών για σελίδες»
//lockPref("signon.rememberSignons", true);
// «[ ] Χρήση ενός κύριου κωδικού»
// Δεν είναι δυνατή η επιβολή αυτής της ρύθμισης επειδή ο χρήστης
// πρέπει να εισάγει έναν κωδικό για την ενεργοποίησή της

// Απενεργοποίηση του κουμπιού «Αποθηκευμένοι κωδικοί...»
//lockPref("pref.privacy.disable_button.view_passwords", true);

// «Επιλέξτε για ποιες προειδοποιήσεις θέλετε να εμφανίζονται» -> «Ρυθμίσεις...»
// «[ ] Στην προβολή μιας κρυπτογραφημένης σελίδας.»
//lockPref("security.warn_entering_secure", false);
// «[v] Στην προβολή μιας σελίδας με χαμηλό βαθμό κρυπτογράφησης.»
//lockPref("security.warn_entering_weak", false);
// «[ ] Στη μετάβαση από μια κρυπτογραφημένη σε μια μη κρυπτογραφημένη σελίδα.»
//lockPref("security.warn_leaving_secure", false);
// «[ ] Στην υποβολή μη κρυπτογραφημένων πληροφοριών.»
//lockPref("security.warn_submit_insecure", false);
// «[v] Στην υποβολή κρυπτογραφημένης σελίδας που περιέχει και μερικές μη κρυπτογραφημένες πληροφορίες.»
//lockPref("security.warn_viewing_mixed", false);

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

// «[ ] Πάντα χρήση των πλήκτρων κίνησης δρομέα για την περιήγηση μέσα στις ιστοσελίδες»
//lockPref("accessibility.browsewithcaret", false);
// «[ ] Αναζήτηση για κείμενο μόλις ξεκινήσει η πληκτρολόγηση»
//lockPref("accessibility.typeaheadfind", false);
// «[ ] Προειδοποίηση όταν οι ιστοσελίδες προσπαθούν να ανακατευθύνουν ή να φορτώσουν ξανά τη σελίδα»
//lockPref("accessibility.blockautorefresh", false);

// «[ ] Χρήση αυτόματης κύλισης»
//lockPref("general.autoScroll", false);
// «[ ] Χρήση ομαλής κύλισης»
//lockPref("general.smoothScroll", true);
// «[v] Ορθογραφικός έλεγχος κατά την πληκτρολόγηση»
// 0 = Απενεργοποίηση
// 1 = Ενεργοποίηση
//lockPref("layout.spellcheckDefault", 1);
// «[ ] Πάντα έλεγχος στην εκκίνηση για το αν ο Firefox είναι ο προεπιλεγμένος περιηγητής»
//lockPref("browser.shell.checkDefaultBrowser", false);

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

// «Ρυθμίστε τον τρόπο με τον οποίο ο Firefox θα συνδέεται στο διαδίκτυο» -> «Ρυθμίσεις...»
// «Ρύθμιση διαμεσολαβητών για την πρόσβαση στο διαδίκτυο»
//  0 = «( ) Χωρίς διαμεσολαβητή»
//  4 = «( ) Αυτόματος εντοπισμός ρυθμίσεων διαμεσολαβητή για αυτό το δίκτυο»
//  5 = «(*) Χρήση ρυθμίσεων διαμεσολαβητή συστήματος»
//  1 = «( ) Χειροκίνητη ρύθμιση διαμεσολαβητή»
//  2 = «( ) URL αυτόματης ρύθμισης διαμεσολαβητή:»
lockPref("network.proxy.type", 5);

// «Διαμεσολαβητής HTTP:»
//lockPref("network.proxy.http", "");
// «Θύρα:»
//lockPref("network.proxy.http_port", 0);
// «Διαμεσολαβητής SSL:»
//lockPref("network.proxy.ssl", "");
// «Θύρα:»
//lockPref("network.proxy.ssl_port", 0);
// «Διαμεσολαβητής FTP:»
//lockPref("network.proxy.ftp", "");
// «Θύρα:»
//lockPref("network.proxy.ftp_port", 0);
// «Διαμεσολαβητής Gopher:»
//lockPref("network.proxy.gopher", "");
// «Θύρα:»
//lockPref("network.proxy.gopher_port", 0);
// «Διαμεσολαβητής SOCKS:»
//lockPref("network.proxy.socks", "");
// «Θύρα:»
//lockPref("network.proxy.socks_port", 0);
// «( ) Socks v4  (*) Socks v5»
// 4 = v4
// 5 = v5
//lockPref("network.proxy.socks_version", 5);
// «Χωρίς διαμεσολαβητή για:»
//lockPref("network.proxy.no_proxies_on", "localhost, 127.0.0.1");
// «URL αυτόματης ρύθμισης διαμεσολαβητή:»
//lockPref("network.proxy.autoconfig_url", "");

// «Χρήση μέχρι [50] MB χώρου για τη λανθάνουσα μνήμη» - σε Kb
//lockPref("browser.cache.disk.capacity", 50000);
// «[v] Ειδοποίηση όταν μια ιστοσελίδα αποθηκεύει δεδομένα για εργασία χωρίς σύνδεση:»
//lockPref("browser.offline-apps.notify", true);

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

// «Αυτόματος έλεγχος για ενημερώσεις για:»
// «[v] Τον Firefox»
//lockPref("app.update.enabled", true);
// «[v] Εγκατεστημένα πρόσθετα»
//lockPref("extensions.update.enabled", true);
// «[v] Μηχανές αναζήτησης»
//lockPref("browser.search.update", true);

// «Όταν βρίσκονται ενημερώσεις για το Firefox»
// «( ) Ερώτηση για το τι θέλω να κάνω»
//lockPref("app.update.auto", false);
// «(*) Να γίνεται αυτόματη λήψη και εγκατάσταση της ενημέρωσης»
// «[v] Προειδοποίηση αν αυτό απενεργοποιήσει κάποιο από τα πρόσθετα»
// 0 - Χωρίς προειδοποίηση
// 1 - Με προειδοποίηση
//lockPref("app.update.auto", true);
//lockPref("app.update.mode", 1);

////////////////////////////////////////////////////
// Καρτέλα «Για προχωρημένους» -> «Κρυπτογράφηση» //
////////////////////////////////////////////////////

// «[v] Χρήση SSL 3.0»
//lockPref("security.enable_ssl3", true);
// «[v] Χρήση TLS 1.0»
//lockPref("security.enable_tls", true);
// «Όταν ένας εξυπηρετητής απαιτεί ένα πιστοποιητικό:»
//   "Select Automatically" = «( ) Αυτόματη επιλογή ενός»
//   "Ask Every Time"       = «(*) Ερώτηση κάθε φορά»
//lockPref("security.default_personal_cert", "Ask Every Time");


// Να μη βγάζει την μπάρα "Know your rights"
lockPref("xxx.legal.rights.seen", "0.0");

// Να μη βγάζει το παράθυρο με τις νέες επεκτάσεις που προστέθηκαν
lockPref("extensions.update.notifyUser", false);

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




gidarakos

Ευχαριστούμε apapakL για τις αναλυτικές οδηγίες.
Επειδή στήνουμε έναν καινούργιο LTSP 12.04 θα δοκιμάσω άμεσα τις οδηγίες σου και θα ενημερώσω αν όλα πήγαν οκ!

Τις οδηγίες με τα gsettings που αναφέρει ο apanagio τις ακολουθούμε; Απλά δεσμεύουμε όλες τις εφαρμογές του gnome να "περνάνε" μέσα από το squid;
Είναι κάτι που θέλουμε τελικά;

apanagio

Με τις παραπάνω οδηγίες ρυθμίζονται οι firefox των client να χρησιμοποιούν τον proxy.
Αν θελετε να τον χρησιμοποιούν και άλλες εφαρμογές (πχ chromium) χρειάζεται και η ρύθμιση με τα gsettings

gidarakos

Αν έχουν δοκιμαστεί οι οδηγίες του apapakL και apanagio δε θα μπορούσαν να προστεθούν στο wiki να τις βρίσκουν εύκολα οι συνάδελφοι;

apapakL

Παράθεση από: apanagio στις 10 Οκτ 2012, 01:26:10 ΜΜ
Αλλά ο πιο εύκολος τρόπος τελικά είναι να χρησιμοποιήσουμε το /etc/profile.d/
Φτιάχνουμε ένα αρχείο με τις 3 αυτές εντολές
gsettings set org.gnome.system.proxy.socks host 'PROXY_IP'
gsettings set org.gnome.system.proxy.socks port PROXY_PORT
gsettings set org.gnome.system.proxy mode 'manual'

και το βάζουμε στο φάκελο /etc/profile.d/
Αν έχουμε και fat clients κάνουμε δημοσίευση του δίσκου.

Οι εντολές αυτές θα εκτελούνται για κάθε χρήστη και έτσι θα χρησιμοποιούν τον Proxy όλοι.

Πρέπει να δώσουμε στο αρχείο κάποιο συγκεκριμένο όνομα ή δεν έχει σημασία;

Παράθεση από: gidarakos στις 19 Οκτ 2012, 02:25:29 ΜΜ
Αν έχουν δοκιμαστεί οι οδηγίες του apapakL και apanagio δε θα μπορούσαν να προστεθούν στο wiki να τις βρίσκουν εύκολα οι συνάδελφοι;

Όντως μόλις σιγουρευτούμε οτι δουλεύουν καλό θα ήταν να μπει και στο wiki...

apanagio

Παράθεση από: apapakL στις 20 Οκτ 2012, 09:42:07 ΠΜ
Πρέπει να δώσουμε στο αρχείο κάποιο συγκεκριμένο όνομα ή δεν έχει σημασία;

Όντως μόλις σιγουρευτούμε οτι δουλεύουν καλό θα ήταν να μπει και στο wiki...

Α ναι παράληψη:
Πρέπει να έχουν κατάληξη .sh

gidarakos

apanagio για το όνομα ενός αρχείου που θα τοποθετηθεί στο /etc/profile.d/ δε μιλάμε;
Το ρωτάω γιατί απάντησες να έχουν κατάληξη .sh
Δηλαδή το όνομα του αρχείου μας είναι αδιάφορο; Αρκεί να βρίσκεται στο /etc/profile.d/ και να έχει κατάληξη .sh;

apanagio

Παράθεση από: gidarakos στις 21 Οκτ 2012, 09:46:22 ΜΜ
Δηλαδή το όνομα του αρχείου μας είναι αδιάφορο; Αρκεί να βρίσκεται στο /etc/profile.d/ και να έχει κατάληξη .sh;

Ναι, ακριβώς

gidarakos

Οι οδηγίες του apapakL μου δούλεψαν!

Τις οδηγίες του apanagio όταν τις εφάρμοσα ο chromium δε μου άνοιγε καμιά σελίδα! Καθυστερούσε πολύ κ στο τέλος το μήνυμα "Η ιστοσελίδα δεν είναι διαθέσιμη". Ιδια συμπεριφορά και για τα banned_domains.

apanagio μήπως κατά λάθος χρησιμοποίησες το .socks αντί για .http;
Αντί για .socks χρησιμοποίησα .http και δούλεψε ο proxy στον chromium.

Στη συνέχεια, δημιούργησα το ακόλουθο αρχείο
sudo gedit /etc/profile.d/gsetproxy.sh

με το ακόλουθο περιεχόμενο
gsettings set org.gnome.system.proxy.http host 'server'
gsettings set org.gnome.system.proxy.http port 3128
gsettings set org.gnome.system.proxy mode 'manual'

αλλά το αρχείο gsetproxy.sh δεν "έτρεξε" σε login χρήστη - thin client - γιατί με το dconf-editor είδα ότι δεν έχουν αλλάξει οι ρυθμίσεις.
Είναι και το θέμα να είναι mandatory οι ρυθμίσεις, δηλαδή να μην μπορούν οι χρήστες να τις αλλάζουν.

Το όνομα gsetproxy είναι αυθαίρετη επιλογή με .sh όμως στο τέλος.

apanagio

Παράθεσηapanagio μήπως κατά λάθος χρησιμοποίησες το .socks αντί για .http;
Αντί για .socks χρησιμοποίησα .http και δούλεψε ο proxy στον chromium.
Έχεις δίκιο, οι σωστές οδηγίες είναι αυτές που έστειλες.
gsettings set org.gnome.system.proxy.http host 'server'
gsettings set org.gnome.system.proxy.http port 3128
gsettings set org.gnome.system.proxy mode 'manual'

Άλλαξα και το δικό μου post μην το δει κανείς και μπερδευτεί

Παράθεσηαλλά το αρχείο gsetproxy.sh δεν "έτρεξε" σε login χρήστη - thin client - γιατί με το dconf-editor είδα ότι δεν έχουν αλλάξει οι ρυθμίσεις.
Μπορείς να βεβαιωθείς ότι δεν λειτουργούν οι ρυθμίσεις; (Ο browser τι κάνει, χρησιμοποιεί τον proxy;)
Επίσης βάλε στο αρχείο σου μια άλλη εντολή πχ
mkdir /home/[username]/testtest
και δες αν εκτελέστηκε


gidarakos

Ο χρήστης administrator τρέχει το αρχείο .sh στο φάκελο /etc/profile.d/
Δηλαδή αν αλλάξεις τις ρυθμίσεις με το dconf-editor (βγάλεις τον proxy) στο επόμενο login θα τρέξει το .sh και θα ξαναδηλωθεί ο proxy.
Άρα ο administrator κάνει χρήση proxy (Περνάει απο τον proxy o chromium). Δούλεψε και η δοκιμή με το mkdir.

Όταν κάνεις login (thin client) σαν μαθητής (π.χ. user01a1) δεν τρέχει το αρχείο .sh
Βέβαια αν ανοίξει ο απλός χρήστης το dconf-editor μπορεί να δηλώσει τον proxy (αυτή τη δυνατότητα δε θέλουμε να την έχει ο μαθητής!). Σε αυτή την περίπτωση και ο μαθητής κάνει χρήση του proxy (Περνάει απο τον proxy o chromium). Αυτή η δήλωση δε χάνεται μετά από restart.

apanagio

Σύμφωνα με τις δικές μου δοκιμές, το etc/profile (συνεπώς και τα .sh αρχεία στο /etc/profile.d) εκτελείται για όλους τους χρήστες.  Επομένως οι ρυθμίσεις τίθενται για όλους τους χρήστες (σε thin και fat).

Για το ότι οι μαθητές μπορούν να τις παρακάμψουν έχεις δίκιο.
H σωστή λύση είναι να θέσουμε τη ρύθμιση στο dconf και να χρησιμοποιήσουμε locks για να ειναι υποχρεωτική η ρύθμιση.
Έστειλε ο Άλκης ένα link
Παράθεση από: alkisg στις 24 Σεπ 2012, 10:33:29 ΜΜ
@apanagio: Για mandatory dconf/gsettings, ένα how-to είναι εδώ:
https://lists.ubuntu.com/archives/edubuntu-users/2012-August/007069.html

περισσότερες λεπτομέριες έχει εδώ:
https://live.gnome.org/dconf/SystemAdministrators


gidarakos

#30
Έστησα "καθαρό" LTSP 12.04.1 lyk (virtual box) και αφού "έτρεξα" sch-scripts, squid3, gsettings (.sh --> /etc/profile.d/), δημοσίευση εικονικού δίσκου, παρατήρησα τα εξής:

Όταν ένας καινούργιος χρήστης κάνει login από θέση εργασίας,

1) fat, proxy/chromium όλα ΟΚ!

2) thin, για να "παίξει" proxy/chromium θα πρέπει πριν ο χρήστης να έχει κάνει ένα login/logout από θέση εργασίας fat ή από τη θέση εργασίας του server. Έτσι αν στη συνέχεια πάει σε ένα thin και κάνει με τα ίδια στοιχεία login θα λειτουργεί και ο proxy/chromium.

Δηλαδή υπάρχει θέμα με τους χρήστες που κάνουν login από thin θέσεις εργασίας!

alkisg

Ναι ο LDM δεν εκτελεί το /etc/profile, δεν ξέρω γιατί δεν έχει φτιαχτεί ακόμα αυτό το bug, φαίνεται εντελώς απλή η λύση του... θα του ρίξω μια ματιά με την πρώτη ευκαιρία.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542270

Αλλά πάντως για squid, mandatory settings, transparent proxy, iptables κτλ αναμείνατε (δυστυχώς κάποιους μήνες αργότερα) μια λύση αυτοματοποιημένη + ενσωματωμένη στον Επόπτη. :)

apapakL

#32
Παράθεση από: apanagio στις 24 Οκτ 2012, 10:33:08 ΠΜ
...
περισσότερες λεπτομέριες έχει εδώ:
https://live.gnome.org/dconf/SystemAdministrators

και εδώ --> http://help.gnome.org/admin/system-admin-guide/stable/lockdown.html

ένα παράδειγμα για το πως κλειδώνουμε το wallpaper (άσχετο) αλλά λογικά κάπως έτσι θα κλειδώνουν και τα proxy settings

apapakL

#33
Κλείδωμα ρυθμίσεων proxy συστήματος

Το δοκίμασα σε virtual box και παίζει...

Μέθοδος:
sudo apt-get install dconf-tools


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


αποθηκεύουμε και κλείνουμε το αρχείο
και επανοφορτώνουμε τη βάση δεδομένων dconf

sudo dconf update



Στη συνέχεια

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


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

sudo dconf update



Έπειτα κάνουμε δημοσίευση εικονικού δίσκου.

Σε συνδυασμό με το κλείδωμα και του firefox που περιγράφηκε προηγούμενα θα έλεγα οτι έχουμε μια πιο ολοκληρωμένη λύση.

Σε περίπτωση που κλειδώσουμε τις ρυθμίσεις του proxy τότε κατά το κλείδωμα του firefox (βλέπε σχετικά)  χρειάζεται μόνο το εξής
στο αρχείο mozilla.cfg:
//
 lockPref("network.proxy.type", 5); 

//  όπου 5 =  Χρήση ρυθμίσεων διαμεσολαβητή συστήματος


Παρατηρείστε ότι τα κλειδιά που χρησιμοποιούνται για τα κλειδώματα μπορείτε να τα δείτε και στο Εφαρμογές - Εργαλεία συστήματος- dconf Editor οπότε μπορούμε με αυτό το τρόπο να κλειδώσουμε διάφορες ρυθμίσεις...

Σημειώνεται ότι οι ρυθμίσεις κλειδώνονται και για τον administrator αλλά αν μπει στις whitelists του squid δε νομίζω ότι θα έχει πρόβλημα...

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

update 22-02-2013:

Ιδιαίτερη προσοχή στις οδηγίες! Αν δεν εφαρμοστούν σωστά υπάρχει πιθανότητα να μην ξεκινήσει το
γραφικό περιβάλλον... αν συμβεί αυτό ctrl-alt-f1, συνδεθείτε με τα διαπιστευτήρια σας και σβήστε το φάκελο /etc/dconf

Προσοχή μη σβήσετε όλο το φάκελο /etc!!! Αν δεν είστε σίγουροι ζητήστε βοήθεια!

sudo rm -r /etc/dconf


και κάντε reboot

sudo shutdown -r now



bobptz

apapakL

Παράθεση από: apapakL στις 12 Φεβ 2013, 02:25:34 ΠΜ
sudo gedit /etc/dconf/db/local.d/locks/00_proxy_locksettings


Όταν το κάνω αυτό, μου βγάζει error:
** (gedit:19186): ERROR **: Unable to open '/etc/dconf/db/local', specified in dconf profile


Υπάρχει το path "/etc/dconf/db/local.d", το οποίο όμως είναι άδειο, δηλ δε βλέπω το directory  "locks".

bobptz

apapakL

Παράθεση από: apapakL στις 18 Οκτ 2012, 09:03:35 ΜΜ
3. Κατεβάζουε τα αρχεία 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

Δε μου επιτρέπει να τα αντιγράψω.  Στο drag+drop μου λέει πχ "Άρνηση Πρόσβασης".

apapakL

#36
1.
Παράθεση από: bobptz στις 21 Φεβ 2013, 11:17:25 ΠΜ
apapakL

Δε μου επιτρέπει να τα αντιγράψω.  Στο drag+drop μου λέει πχ "Άρνηση Πρόσβασης".

Πρέπει να έχεις δικαιώματα διαχειριστή για να τα μεταφέρεις.

δοκίμασε

sudo mv /etc/home/administrator/directory_sto_opoio_ta_exeis_katebasei/ERR_SCH-SCRIPTS_BANNED_DOMAINS /usr/share/squid3/errors/el/ERR_SCH-SCRIPTS_BANNED_DOMAINS


ανάλογα και για το ERR_SCH-SCRIPTS_BANNED_USERS

2. Δημιούργησε πρώτα το directory locks

sudo mkdir -p /etc/dconf/db/local.d/locks


και μετά το αρχείο

sudo gksu /etc/dconf/db/local.d/locks/00_proxy_locksettings



bobptz

Παράθεση από: apapakL στις 21 Φεβ 2013, 12:07:51 ΜΜ
Πρέπει να έχεις δικαιώματα διαχειριστή για να τα μεταφέρεις.
Μα είμαι στον server και έχω συνδεθεί σα pliroforikos, δηλαδή ο super-user.  Δεν έχω πλήρη δικαιώματα?

Θα δοκιμάσω πάλι αύριο.

apapakL

#38
'Οπως πολλές φορές φορές λέει και ο alkisg "λίγο θεωρία"  ;):

Στο Linux σε γενικές γραμμές οι διαχειριστές του συστήματος έχουν τη δυνατότητα να κάνουν διάφορες ενέργειες όπως εγκατάσταση προγραμμάτων, "πείραγμα" αρχείων που δεν βρίσκονται στον home φάκελο τους κτλ. ΔΕΝ μπορούν όμως να το κάνουν άμεσα όπως π.χ. να μεταφέρουν ένα αρχείο με drag & drop από το home φακελό τους σε ένα άλλο φάκελο που δεν βρίσκεται στο home τους.

Επίσης, θα έχεις παρατηρήσει ότι πάντοτε όταν κάνεις διαχειριστικές ενέργειες, όπως εγκατάσταση ή ακόμα και εκτέλεση των sch-scripts, σου ζητείται password... Ακόμα, θα έχεις διαπιστώσει (και από τις οδηγίες που μπορείς να δεις σε πολλά νήματα του forum) ότι όταν είσαι σε τερματικό και θέλεις να κάνεις, για παράδειγμα, μια εγκατάσταση ενός προγράμματος, χρησιμοποιείς την εντολή sudo! Με την εντολή αυτή, αν ο χρήστης σου (π.χ. administrator, pliroforikos, teacher) ανήκει  στην ομάδα των sudoers, έχει το δικαίωμα να χρησιμοποιήσει τα δικαιώματα του πραγματικού και μόνου super user του συστήματος, δηλαδή του root.

Γενικά, όταν φτιάχνεις ένα χρήστη από την αντίστοιχη λειτουργία του Ubuntu και τον ορίζεις σαν διαχειρστή συστήματος αυτός στην ουσία προστίθεται και στην ομάδα sudoers του συστήματος... Ωστόσο, η χρήση εντολών με δικαιώματα του root πρέπει να γίνονται με μεγάλη προσοχή γιατί μπορεί εύκολα να καταστρέψει κανείς το σύστημα...

Αν θέλεις μπορείς να διαβάσεις περισσότερα εδώ

bobptz

Παράθεση από: apapakL στις 21 Φεβ 2013, 12:07:51 ΜΜ
2. Δημιούργησε πρώτα το directory locks
sudo mkdir -p /etc/dconf/db/local.d/locks

Ίσως να παρέλειψα να το κάνω.  Ίσως να έδωσα την εντολή και να μου έβγαλε κάποιο error που το παράβλεψα.  Επειδή όμως η αποτυχημένη αυτή προσπάθεια μου μπλόκαρε το server και έχασα 2 ημέρες, προτιμώ να περιμένω να βγει κάποιο εύχρηστο εργαλείο που να κάνει αυτή τη δουλειά.

Αλήθεια, το ΠΣΔ μπλοκάρει τα porn-sites.  Γιατί δε μπλοκάρει και το facebook να τελειώνουμε?

bobptz

#40
Τελικά ποιές είναι οι σωστές οδηγίες?  Αυτές (« Απάντηση #33 στις: 12 Φεβ 2013, 02:25:34 am ») ή αυτές (« Απάντηση #18 στις: 18 Οκτ 2012, 09:03:35 pm »)?

Ενώ είχα οδηγίες να χρησιμοποιήσω αυτές (« Απάντηση #18 στις: 18 Οκτ 2012, 09:03:35 pm »), μάλλον μπέρδεψα τις οθόνες και εκτέλεσα εντολές και από τις δύο.


apapakL

Πρώτα εγκαθιστάς το Squid 3 και κάνεις τις απαραίτητες ρυθμίσεις ακολουθώντας τις οδηγίες ---> αυτές (« Απάντηση #18 στις: 18 Οκτ 2012, 09:03:35 pm »)

Στη συνέχεια εφαρμόζοντας τις οδηγίες --> (« Απάντηση #33 στις: 12 Φεβ 2013, 02:25:34 am ») κλειδώνεις τις ρυθμίσεις proxy έτσι ώστε να μη μπορούν να αλλαχθούν από τους μαθητές...

aspd

Δεν είχα ασχοληθεί με το squid στη 12.04. Το είχα στήσει στη 10.04 και δούλευε κανονικά.
Τώρα που υπάρχει περισσότερος χρόνος είπα να το εγκαταστήσω.
Αυτό που με ενδιαφέρει είναι να εξοικονομίσω bandwidth και μην μπορούν να μπαίνουν σε κάποιες ιστοσελίδες (π.χ. Facebook) οι μαθητές, ενώ να μπορούν να μπαίνουν κάποιοι λογαριασμοί (π.χ. teacher).  Δεν με ενδιαφέρει να κλειδώσω ρυθμίσεις, για ώστε να μην βρίσκουν οι μαθητές δρόμους παράκαμψης.
Αυτά που έκανα είναι τα ακόλουθα:

1. sudo apt-get install squid3
2 Έφτιαξα τα τρία αρχεία  /etc/squid3/whitelist_users.acl με περιεχόμενο
administrator
teacher

/etc/squid3/banned_users.acl με περιεχόμενο
user12

και /etc/squid3/banned_domains.acl με περιεχόμενο
facebook
myspace.com

3. Εκτέλεσα:   sudo apt-get install ident2

4. Κατέβασα τα αρχεία ERR_SCH-SCRIPTS_BANNED_DOMAINS και ERR_SCH-SCRIPTS_BANNED_USERS και τα αντέγραψα στο /usr/share/squid3/errors/el

5. Μετά στο /etc/squid3/squid.conf  άλλαξα  τη γραμμή
acl localhost src 127.0.0.1/32 ::1   σε
acl localhost src 127.0.0.0/8 ::1
6. Στη συνέχεια (νόμιζα ότι είχα ονομάσει το μηχάνημα server), αλλά είδα με την εντολή localhost ότι το μηχάνημα λέγεται:   administrator-G31M-ES2L
Οπότε στο τέλος του /etc/hosts    πρόσθεσα τη γραμμή 
server 127.0.2.1
7. Στη συνέχεια στο /etc/squid3/squid.conf   κάτω από τη γραμμή
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 192.168.1.0/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

8. Έδωσα την εντολή sudo service squid3 force-reload και εμφάνισε μήνυμα
reload: Unknown instance:

Δεν έκανα τίποτα με κλειδώματα στις ρυθμίσεις proxy του firefox. Είναι απαραίτητα;

Τι πρέπει να κάνω;
Δεν έχουμε cisco router. Έχουμε διευθύνσεις της μορφής 192.168.1.x
Γιατί έβγαλε μήνυμα uknown instance;


apapakL

Μήπως δεν έχει ξεκινήσει το squid3;

sudo service squid3 status


Αν θέλεις πόσταρε το αποτέλεσμα της εντολής

cat /etc/squid3/squid.conf | egrep -v "^s*(#|$)"


για να δούμε το configuration του squid3

aspd

Σήμερα στο sudo service squid3 force-reload  δεν έβγαλε μήνυμα λάθους.
Έκανα δημοσίευση του εικονικού δίσκου, αλλά δεν κόβεται π.χ. το facebook.

Πρέπει να κάνω και τα σχετικά με το  mozilla.cfg στο /usr/lib/firefox ..... και τα σχετικά με το sudo apt-get install dconf-tools ........;

apapakL

Μπορείς να ακολουθήσεις τις οδηγίες για το κλείδωμα των ρυθμίσεων proxy για τον firefox όπως αναφέρεται στο βήμα 5 αυτού του post. Έτσι όμως θα εφαρμοστούν οι ρυθμίσεις proxy μόνο για τον firefox και όχι για τον chrome (αν έχεις) αφού ο chrome παίρνει τις ρυθμίσεις proxy του συστήματος....

aspd

Μετά από τα παραπάνω οι clients δεν έχουν καθόλου internet στο mozilla. Λέει ότι ο διαμεσολαβητής δεν βρέθηκε.
Στις ρυθμίσεις του Mozilla τι πρέπει να βάλω; (δεν έχω αλλάξει τίποτα)
π.χ. χρήση ρυθμίσεων διαμεσολαβητή συστήματος;

apapakL

#47
Για στείλε

1. το περιεχόμενο του αρχείου /usr/lib/firefox/mozilla.cfg

cat /usr/lib/firefox/mozilla.cfg


2. το περιεχόμενο του αρχείου /usr/lib/firefox/defaults/pref/local-settings.js

cat /usr/lib/firefox/defaults/pref/local-settings.js


3. το περιεχόμενο του αρχείου /etc/hosts ενός fat client

cat /etc/hosts


4. Το αποτέλεσμα των εντολών από ένα fat client

ping server


και

ping <ip_tou_server>



aspd

Στέλνω τα αποτελέσματα των εντολών.
Δεν έχω internet ούτε στο server ούτε σε clients και στο server είναι κλειδωμένες οι ρυθμίσεις στο mozilla.

apapakL

Επειδή έχεις thin clients αντί για "server" βάλε "localhost" στις ρυθμίσεις του mozilla... To Squid τρέχει;

aspd

#50
το squid τρέχει.
Έβαλα localhost αντί για server στο mozilla.cfg

Σήμερα έχω συνδέσει σα fat και ένα laptop.

Στα thins έχω internet και κόβεται το facebook κτλ.

Δεν έχει internet ο server και ο fat

aspd

Μετά από επικοινωνία με τον apapakL τα προβλήματα λύθηκαν, το squid δουλεύει και έχω internet και στο server και σε thin και fat clients. Η βασική πηγή των προβλημάτων φάνηκε να είναι το όνομα του server που δεν ήταν server. Τελικά το αλλάξαμε σε server και μετά από κάποιες ρυθμίσεις και δημοσίευση του εικονικού δίσκου δουλεύουν όλα.
Ευχαριστώ πολύ.


yiannis

Υπάρχει τρόπος να αποκλείσω μέσω squid όλες τις σελίδες, εκτός από 2-3 που θα χρειάζομαι κάθε φορά στο μάθημα;
Κάτι σαν whitelist των ιστοσελίδων δηλαδή; Όπως έχω και για τους χρήστες;

apapakL

#53
Ένας τρόπος είναι:

Κώδικας: bash
sudo gedit /etc/squid3/whitelist_domains.acl


Βάζεις εκεί τα domains που θέλεις

πχ.
.wikipedia.org

Στη συνέχεια διαμορφώνεις το σχετικό block εντολών στο squid.conf κάπως έτσι
#SCH-SCRIPTS begin
        error_directory /usr/share/squid3/errors/el   
        acl schoolnet src 192.168.67.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"
	acl whitelist_domains url_regex -i "/etc/squid3/whitelist_domains.acl"   #νέα acl για whitelist domains
	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 !whitelist_domains  #οδηγία που κόβει τα πάντα εκτός από τα domains στην  acl για τα whitelist domains
	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


Για να επεξεργαστείς το squid.conf
sudo gedit /etc/squid3/squid.conf


Στη συνέχεια κάνε restart τον squid3

sudo service squid3 restart


Για να επανέλθεις στην προηγούμενη κατάσταση απλά άνοιξε το squid.conf σχολίασε τις δυο νέες γραμμές, αποθήκευσε και επανεκκίνησέ το squid.

yiannis

Απλό και εύκολο!
Ευχαριστώ, θα το δοκιμάσω αύριο κιόλας ;)

yiannis

#55
Το δοκίμασα, αλλά κόβει την πρόσβαση σε όλες τις σελίδες!
Δοκίμασα ακόμα και με
http_access allow whitelist_domains
αλλά και πάλι, κόβει την πρόσβαση παντού!
Κάνω κάτι λάθος;

apapakL

#56
Μήπως προηγείται η directive  http_access deny all? Έχει σημασία η σειρά των access lists (acs). Εφαρμόζεται η λογική "what comes first".

Αν θες να δούμε λίγο το squid.conf σου. Πόσταρε το αποτέλεσμα αυτής της εντολής:

Κώδικας: bash
cat /etc/squid3/squid.conf | egrep -v "^s*(#|$)"

yiannis

Όχι, δεν προηγείται. Είδα αναλυτικά μία-μία τις εντολές με το δικό σου conf και είναι οι ίδιες ακριβώς (εκτός φυσικά από την ΙΡ) και με την ίδια σειρά. Δεν έχω πρόσβαση αυτή τη στιγμή, αλλά αύριο θα τρέξω την εντολή και θα δώσω το αποτέλεσμα. Πάντως είμαι σίγουρος ότι η http_access deny all είναι τελευταία.

yiannis

Έτρεξα την εντολή και εμφανίζει τα παρακάτω:

administrator@server:~$ cat /etc/squid3/squid.conf | egrep -v "^s*(#|$)"
acl manager proto cache_object
acl localhost src 127.0.0.0/8 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
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.65.36.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"
   #acl whitelist_domains url_regex -i "/etc/squid3/whitelist_domains.acl"   #νέα acl για whitelist domains
        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 !whitelist_domains  # κόβει τα πάντα εκτός από τα domains στην acl whitelist_domains
        http_access deny banned_users       
        http_access deny banned_domains
        http_access allow localhost 
        http_access allow schoolnet
        http_access deny all
acl accountant src 10.65.36.0/24
acl fb dstdomain .freemail.gr
http_reply_access deny  fb accountant
http_access deny CONNECT fb accountant
http_port 3128
coredump_dir /var/spool/squid3
refresh_pattern ^ftp:      1440   20%   10080
refresh_pattern ^gopher:   1440   0%   1440
refresh_pattern -i (/cgi-bin/|\?) 0   0%   0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .      0   20%   4320
administrator@server:~$

Το μόνο που κάνω είναι να αφαιρώ τα 2 σχόλια στις γραμμές με το whitelist_domains. Μετά, τρέχω την εντολή "sudo service squid3 restart" και η πρόσβαση κόβεται σε όλες τις σελίδες!

apapakL

Τελικά υπήρχε συντακτικό λάθος σε ένα σημείο του squid.conf που απέτρεπε την επανεκκίνηση του squid. Με τη βοήθεια της εντολής

tail -f /var/log/syslog


εντοπίσαμε τη γραμμή και το διορθώσαμε...

yiannis

Ευχαριστώ πολύ! Δουλεύει θαυμάσια! :)

yiannis

Παράθεση από: apapakL στις 27 Νοε 2013, 05:55:58 ΜΜ
...
Για να επανέλθεις στην προηγούμενη κατάσταση απλά άνοιξε το squid.conf σχολίασε τις δυο νέες γραμμές, αποθήκευσε και επανεκκίνησέ το squid.

Μια μικρή παρατήρηση: για να επανέλθουμε στην προηγούμενη κατάσταση, αρκεί να βάλουμε σε σχόλιο τη 2η εντολή "http_access deny !whitelist_domains".

Επίσης, σήμερα το πρωί, είχα πρόβλημα με τις ενημερώσεις. Μου έβγαζε σφάλμα ότι δεν υπήρχε σύνδεση! Απενεργοποίησα τη 2η γραμμή και όλα δούλεψαν κανονικά. Ήταν σύμπτωση; Ή πρέπει κάπως να βάλουμε κάποια εξαίρεση γι' αυτό;

apapakL

Αν προσθέσεις στους whitelist users και τον root;

yiannis

Παράθεση από: apapakL στις 02 Δεκ 2013, 12:33:07 ΜΜ
Αν προσθέσεις στους whitelist users και τον root;

Τώρα το whitelist_users.acl έχει μόνο μια γραμμή:
administrator

Δεν είναι ΟΚ; Πρέπει να προσθέσω και μια ακόμα γραμμή με το "root";

apapakL

Ναι ώστε και αυτός να συμπεριλαμβάνεται στη λίστα με τους whitelist users αφού η σχετική access list προηγείται της access list για τα whitelist_domains. Αν οι ρυθμίσεις proxy έχουν ρυθμιστεί ακόμα και για το apt τότε αυτό λογικά θα πρέπει να είναι απαραίτητο.

yiannis

Παράθεση από: apapakL στις 02 Δεκ 2013, 12:49:59 ΜΜ
Ναι ώστε και αυτός να συμπεριλαμβάνεται στη λίστα με τους whitelist users αφού η σχετική access list προηγείται της access list για τα whitelist_domains.

To έβαλα. Τώρα δεν μπορώ να το δοκιμάσω, μόλις έχουμε νέες ενημερώσεις ;)

ΠαράθεσηΑν οι ρυθμίσεις proxy έχουν ρυθμιστεί ακόμα και για το apt τότε αυτό λογικά θα πρέπει να είναι απαραίτητο.

Έκανα τα βήματα όπως περιγράφονται εδώ. Λογικά όλα μέσω proxy δεν έχουν πρόσβαση;

Ευχαριστώ και πάλι!

yiannis

Μια ακόμα απορία: :)
Υπάρχει κάποιο log file που κρατάει το squid για το ποιες διευθύνσεις έχουν επισκεφθεί οι χρήστες; Θα μου ήταν πολύ χρήσιμο για να κόψω κάποιες διεθύνσεις με παιχνίδια κλπ.
Ευχαριστώ!

apapakL

Φίλε yiannis τα logs του squid είναι στο directory /var/log/squid3 ενώ το αρχείο με τη πληροφορία που θέλεις είναι το access.log.

Επίσης δες και αυτό το post ---> https://alkisg.mysch.gr/steki/index.php?topic=3769.0

Κάτι στο οποίο έπεσα χθες και δείχνει ενδιαφέρον αλλά δεν το έχω δοκιμάσει είναι αυτό --> http://squidanalyzer.darold.net/

yiannis

Γιατί έχω πάντα πρόβλημα στη διεύθυνση www.adslgr.com; Τι είναι η απάντηση μηδενικού μεγέθους;
Μου βγάζει το παρακάτω μήνυμα:

"The following error was encountered while trying to retrieve the URL: http://www.adslgr.com/
    Απάντηση Μηδενικού Μεγέθους
Squid did not receive any data for this request.
Ο διαχειριστής του μεσολαβητή σας είναι ο webmaster."

apapakL

#69
Στο επίσημο site του squid για troubleshooting υπάρχει μια επεξήγηση επί του θέματος καθώς και κάποιοι τρόποι αντιμετώπισης -->
http://wiki.squid-cache.org/SquidFaq/TroubleShooting#Why_do_I_sometimes_get_.22Zero_Sized_Reply.22.3F

Θα ξεκινούσα με αυτό:

"Disable HTTP persistent connections with the server_persistent_connections and client_persistent_connections directives."

Δηλαδή στο /etc/squid3/squid.conf

Προσθέτουμε

server_persistent_connections off
client_persistent_connections off


Αυτά by default είναι on...

apapakL

Το ίδιο πρόβλημα για το ίδιο site και σε δοκιμές που έκανα και εδώ (ωστόσο εντός ΠΣΔ)... Τουλάχιστο φαίνεται ότι δεν είναι πρόβλημα που οφείλεται στο τοπικό σου δίκτυο... 

yiannis

Δοκίμασα να σβήσω όλα τα cookies. Μετά έκανα και τις δύο ρυθμίσεις με off (ήταν σε σχόλιο και έσβησα και το #). Έκανα και restart το squid, αλλά δεν είδα καμία διαφορά... :(

yiannis

#72
Εγώ δοκίμασα από το server, σε virtual pc (virtual box) με windows xp και firefox και δουλεύει κανονικά!!!!!!!!!!!!!
Tι διαφορετικό μπορεί να γίνεται σε αυτό το περιβάλλον;
Δεν ξέρω αν είναι θέμα του τοπικού δικτύου ή του squid ή του ubuntu!

yiannis

Σήμερα δουλεύει κανονικά :)
Τι να πω...

Yannis Siahos

Έχουμε περάσει στο http://ts.sch.gr/wiki/Linux/Προχωρημένα/Squid τις οδηγίες για την εγκατάσταση squid καθώς και κλείδωμα των επιλογών για proxy των χρηστών.
Θα ήθελα να κάνετε τα σχόλιά σας.

Ειδικά από apapakL   :)

apapakL

#75
Καλησπέρα! Πολύ καλή δουλειά. Ένα ανάλογο how to που χρησιμοποιούμε έδω στη Γ' Αθήνας για squid σε ubuntu LTSP έχω δημοσιεύσει εδώ. Το εμπλούτισα και με μερικά στοιχεία από τις οδηγίες που περάσατε στο wiki.

Όσον αφορά στις οδηγίες στο wiki μια παρατήρηση έχω σχετικά με το κλείδωμα των ρυθμίσεων του firefox. Ο σωστός τρόπος για το κλείδωμα του 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");


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

Ο τρόπος που περιγράφεται στο wiki δε φαίνεται να κλειδώνει τις ρυθμίσεις proxy του firefox (τουλάχιστο σε δοκιμές που έκανα).

Συνεχίστε την καλή δουλειά!