Transparent Proxy με Squid

Ξεκίνησε από gidarakos, 19 Φεβ 2010, 09:36:44 ΠΜ

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

gidarakos

Μια λύση για να ελέγχεις το που θα έχουν πρόσβαση οι χρήστες στο internet είναι η χρήση του γνωστού μας squid ως transparent proxy. Το μόνο που χρειάζεσαι είναι ένα pc με linux, squid και δύο κάρτες δικτύου, το οποίο τοποθετείς ανάμεσα σε router και switch χωρίς να χρειαστούν ρυθμίσεις στον server (αν υπάρχει) αλλά και στα υπόλοιπα pc του δικτύου. Μία τέτοια υλοποίηση περιγράφεται εδώ http://freshmeat.net/articles/configuring-a-transparent-proxywebcache-in-a-bridge-using-squid-and-ebtables
ΕΡΩΤΗΜΑ: Μπορεί να υλοποιηθεί μια τέτοια λύση με windows αντί linux; Η λύση με linux χρησιμοποιεί τις εντολές ebtables και iptables. Υπάρχουν αντίστοιχες σε windows λειτουργικό;
Υ.Γ. Τα βήματα Setting up Squid και Configuring the bridge υλοποιήθηκαν σε windows αλλά με το βήμα Configuring transparent redirection τι μπορούμε να κάνουμε -αν μπορούμε- στα windows;

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

Με εκτίμηση

Κώστας Γιδαράκος

apapakL

Ο Squid σίγουρα μπορεί να ρυθμιστεί σαν transparent proxy σε windows
Δες εδώ http://markus.revti.com/2009/01/squid-transparent-proxy-server-on-windows-server-2003/.
Πριγράφεται η λύση του προβλήματος με το port forwarding στα windows που δεν έχουν το ενσωματωμένο firewall (iptables) του linux.

Θα σου πρότεινα όμως να δεις και αυτό: http://www.smoothwall.org/get/.

gidarakos

Παράθεση από: apapakl στις 19 Φεβ 2010, 04:04:46 ΜΜ
Ο Squid σίγουρα μπορεί να ρυθμιστεί σαν transparent proxy σε windows
Δες εδώ http://markus.revti.com/2009/01/squid-transparent-proxy-server-on-windows-server-2003/.
Πριγράφεται η λύση του προβλήματος με το port forwarding στα windows που δεν έχουν το ενσωματωμένο firewall (iptables) του linux.

Θα σου πρότεινα όμως να δεις και αυτό: http://www.smoothwall.org/get/.

Σε ευχαριστώ για τη βοήθεια αλλά η λύση που μου προτείνεις έχω την εντύπωση ότι δεν λαμβάνει υπόψη της την ύπαρξη bridge connection.
Δηλαδή το pc με τις 2 κάρτες δικτύου και τον proxy μπαίνει ανάμεσα σε router και switch. Πάνω στο switch μπορεί να είναι συνδεδεμένα clients αλλά και server.
Το ρόλο του DHCP τον έχει αποκλειστικά ο router (δίνει ip μέσω της bridge connection).
Δηλαδή όπως είναι η δομή ενός σχολικού εργαστηρίου αν έχεις υπ' όψιν σου: Server με static ip και clients με dynamic ip μέσω του DHCP του router.

Καμία ιδέα;

Με εκτίμηση

Κώστας Γιδαράκος

apapakL

#3
Να σου πω την αλήθεια, συνάδελφε, για να υλοποιήσω τέτοια πράγματα χρησιμοποιώ gnu/linux. To smoothwall (βασίζεται στο gnu/linux) είναι καταπληκτικό και χρησιμοποιείται ακριβώς για τέτοιες περιπτώσεις. Firewall ανάμεσα στο router και το switch. Έχει καλό οδηγό εγκατάστασης και διαχείρισης. Μη σε φοβίζει η διαχείρισή του. Γίνεται μέσα απο web interface. Ούτως ή άλλως είναι φτιαγμένο για να χρησιμοποιείται από χρήστες ακόμα και αν δεν έχουν εμπειρία στο linux. Αξίζει τον κόπο να του ρίξεις μια ματιά.

Τώρα για windows θα δοκίμαζα το εξής:
1. Κάνε τον squid να ακούει στην πόρτα 80. Για να δούμε αν πιάσει τα requests από τους browsers των dhcp clients και τα κάνει αυτός forward στο router.
2. Αν δεν πιάσει δοκίμασε να αλλάξεις το default gateway που τους δίνει ο dhcp του router. Το gateway πρέπει να είναι το μηχάνημα που τρέχει ο Squid. Άρα πρέπει να ορίσεις χειροκίνητη ip σε έναν client για δοκιμή.
4. Αν αυτό πετύχει τότε πρέπει να πειράξεις τον dhcp του router (για να δίνει σαν gateway το μηχανημα squid). Άρα παίρνεις τηλ το παν.σχολ.δικτ.
5. Αν ο squid τρέχει σε σύστημα windows server μπορείς να σπάσεις το bridge των δυο καρτών, να ενεργοποιήσεις τον dhcp server που διαθέτουν οι windows domain controllers και να τον ρυθμίσεις να δίνει αυτός ip διευθύνσεις. Διάλεξε ένα διαφορετικό υποδίκτυο από αυτό που δίνει ο router (πχ 192.168.18.20 έως 192.168.18.120, 255.255.255.0 με gateway 192.168.18.1 και dns αυτούς του παν. σχολ. δικτ.). Το gateway θα πρέπει να είναι η ip του μηχανήματος που τρέχει ο Squid. Άρα η ip που θα δώσεις στη 2η κάρτα δικτύου που συνδέεται στο switch θα πρέπει να είναι η 192.168.18.1, 255.255.255.0, χωρίς gateway. Ρύθμισε ανάλογα και ένα acl στο squid.conf για το καινούργιο υποδίκτυο. Εννοείται οτι η κάρτα που συνδέεται στο router θα έχει τη σταθερή 10.x.y.10 (ή11) ip που έχουν servers των σχολικών εργαστηρίων με gateway τον router δηλ. τη 10.χ.y.1. Ο Squid o οποίος θα παίρνει τα http requests από το 2ο υποδίκτυο (ακούει στην πόρτα 80 και είναι και gateway) ελπίζω ότι θα τα προωθεί σωστά στον router και μάλιστα χωρίς να δηλώσεις κάτι στους browsers.

apapakL

#4
Και κάτι άλλο! Στην ιστοσελίδα του ΚΕΠΛΗΝΕΤ Γ Αθήνας έχουμε ένα αρθράκι για το πως μπορεί κανείς να χρησιμοποιήσει το Squid, για να κόψει ιστοσελίδες. Το squid.conf έχει ρυθμιστεί από εμάς, και έχουν φτιαχτεί και ένα δυο απλά scriptάκια για να τον σταματάς - ξεκινάς, όταν αλλάζεις τη λίστα με τα κομμένα sites. www.keplinet.info