Διαμεσολαβητές Διαδικτύου

dimitris | Κυρ, 01/29/2012 - 10:45 | 14'

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

Του Βαγγέλη Μπαλάσκα

Η περιήγηση μας στο διαδίκτυο αποτελεί πλέον αγαθό που μπορεί οποιοσδήποτε να κάνει χρήση εύκολα κι ελεύθερα. Οι ιστοσελίδες όμως στις μέρες μας είναι μεγάλες σε μέγεθος, με πλήθος διαφημίσεων κι αρκετές φορές κρύβουν κινδύνους για τους νέους κι άπειρους χρήστες. Υπάρχει κάποιος εύκολος τρόπος ώστε να περιηγηθούμε με ταχύτητα κι ασφάλεια;

Φυσικά και υπάρχει. Στο παρόν κείμενο θα μιλήσουμε για διαμεσολαβητές. Αποτελούν λογισμικό που παρεμβάλλεται μεταξύ του web browser μας και των ιστοσελίδων. Ως ενδιάμεσοι κάνουν έναν πλήρη έλεγχο των σελίδων που βλέπουμε και φιλτράρουν το περιεχόμενο. Πριν συνεχίσουμε όμως, να διευκρινίσουμε ότι θα αναφερθούμε σε http proxies. Για περαιτέρω πληροφορίες δείτε το άρθρο της wikipedia [1].

Πιο συγκεκριμένα θα αναφερθούμε στα εξής προγράμματα:

Polipo [2] (web cache proxy)
HAVP [3] (HTTP Antivirus Proxy)
Privoxy [4] (non-caching web proxy with advanced filtering capabilities)
Ziproxy[5] (non-caching compressing HTTP proxy server)

Εγκατάσταση

Ο προτεινόμενος τρόπος είναι να αναζητήσετε το πρόγραμμα μέσω του διαχειριστή προγραμμάτων της διανομής σας. Εάν αντιμετωπίσετε πρόβλημα, τότε μπορείτε να επικοινωνήσετε μαζί μου ή να ρωτήσετε το forum του περιοδικού. Κατά την συγγραφή αυτού του άρθρου οι τελευταίες σταθερές εκδόσεις των προγραμμάτων που θα περιγράψουμε είναι ως εξής:

Polipo 1.0.4.1
HAVP 0.92a
Privoxy 3.0.17
Ziproxy 3.2.0
ClamAV 0.96.5

Χρήση

Μία πολύ σημαντική απόφαση που χρειάζεται να πάρουμε πριν ξεκινήσουμε, είναι η σειρά με την οποία θα επικοινωνούν οι διαμεσολαβητές μεταξύ τους. Ανάλογα με το τι θέλουμε να επιτύχουμε και που θέλουμε να δώσουμε βάρος, θα πρέπει να επιλέξουμε και την σειρά. Η σύνδεση των http proxies ονομάζεται chain, ή forward όπως έχει επικρατήσει. Στο δικό μας παράδειγμα η σειρά είναι η σειρά παρουσίασης.

Polipo

Ο polipo είναι ένας web cache proxy. Αναλαμβάνει να κατεβάσει τοπικά το περιεχόμενο των ιστοσελίδων που επισκεπτόμαστε και να το αποθηκεύσει στην cache του. Με αυτό τον τρόπο επιτυγχάνουμε ταχύτητα στην προβολή ενός site όταν θέλουμε να το ξαναδούμε ή όταν κάποιος άλλο στο τοπικό μας δίκτυο θέλει να δει την ίδια σελίδα που είδαμε κι εμείς.

Το αρχείο ρυθμίσεων του συνήθως είναι το εξής: /etc/polipo/config. Η προκαθορισμένη πόρτα στην οποία ακούει όταν ξεκινάει είναι η 8123. Για να δούμε όλες τις ρυθμίσεις του, αρκεί να πληκτρολογήσουμε:

polipo -v

Τα περισσότερα είναι προκαθορισμένα. Μία αλλαγή που προτείνω είναι η ρύθμιση του diskCacheRoot που ορίζει τον κατάλογο στον οποίο θα αποθηκεύονται οι σελίδες και το περιεχόμενο των ιστότοπων που θέλουμε να δούμε. Είναι επίσης γνωστός γιατί μπορεί να συνδεθεί με το Tor [10].

HAVP

Ο HTTP Antivirus Proxy (havp) αναλαμβάνει να ελέγξει το περιεχόμενο της ιστοσελίδας που θέλουμε να επισκεφτούμε. Διαμεσολαβεί με τον ClamAv [6] (antivirus server) ώστε να κάνει έναν πλήρη έλεγχο για ιούς. Είναι η ασφάλειά μας στο διαδίκτυο. Φυσικά εάν χρησιμοποιούμε κάποια Linux διανομή για περιβάλλον εργασίας, ίσως μας φανεί περιττό.

Για να χρησιμοποιήσουμε τον HAVP θα πρέπει να έχουμε ήδη εγκατεστημένο το clamav και φυσικά να τρέχει ήδη. Σε αυτό το άρθρο δεν θα μιλήσουμε ούτε για την εγκατάσταση, ούτε για την ρύθμιση του clamav. Μα για να προχωρήσουμε, θα πρέπει να γνωρίζουμε ο δαίμονας του clamav τρέχει πάνω από το TCP/IP ή μέσω socket. Και για αυτό θα πρέπει να το ψάξουμε λίγο.

Το βασικό αρχείο ρυθμίσεων του havp, είναι το εξής αρχείο: /etc/havp/havp.config εάν φυσικά έχουμε εγκαταστήσει το πρόγραμμα μέσω του διαχειριστή προγραμμάτων της διανομής μας. Εάν πάλι έχουμε προχωρήσει με την εγκατάσταση από τον πηγαίο κώδικα, τότε θα το βρούμε στην εξής διαδρομή: /usr/local/etc/havp/havp.config

Για να δούμε όλες τις ρυθμίσεις του havp, πληκτρολογούμε την παρακάτω εντολή:

havp -s

REMOVETHISLINE deleteme
PARENTPROXY localhost
PARENTPORT 8123
BIND_ADDRESS 127.0.0.1
DISABLELOCKINGFOR None
ENABLECLAMD true
CLAMDSOCKET /var/run/clamd.socket

Οι παραπάνω ρυθμίσεις φυσικά αφορούν την δική μου εγκατάσταση και μόνο. Σε εσάς μπορεί (και μάλλον πρέπει) να είναι λίγο διαφορετικές. Η προκαθορισμένη πόρτα του havp είναι η 8080

Privoxy

Ίσως ο σημαντικότερος διαμεσολαβητής σε αυτό το άρθρο. Είναι κυρίως γνωστός για την δυνατότητα να φιλτράρει την κίνηση μα και την εύκολη παραμετροποίησή του. Εμποδίζει κυρίως διαφημίσεις (εικόνες και flash). Σκεφτεί το κάτι σαν το AdBlock Plus[7] αλλά πλέον το block γίνεται στον server μας (απομακρυσμένα) κι όχι τοπικά. Γεγονός που κάνει την περιήγησή μας ακόμα ταχύτερη.

Στο τρέχον παράδειγμα μας, θα συνδέσουμε τον privoxy με τον havp! Με αυτόν τον τρόπο οι σελίδες και το περιεχόμενό τους θα έχουν ήδη ελεγχθεί και τυχόν σελίδες με κακόβουλο περιεχόμενο θα έχει εμποδιστεί.

Το βασικό αρχείο ρυθμίσεων του privoxy είναι το εξής: /etc/privoxy/config, μα εάν έχει κάνει την εγκατάσταση από τον πηγαίο κώδικα πιθανά να βρίσκεται κι εδώ: /usr/local/etc/privoxy/config.

Δεν πρέπει να ξεχάσουμε ότι χρειάζεται να έχουμε δημιουργήσει έναν νέο χρήστη για να μεταβιβάσουμε τα δικαιώματα όταν ξεκινήσει ο διαμεσολαβητής μας! Η προκαθορισμένη πόρτα στην οποία ακούει τα διάφορα αιτήματα ο privoxy είναι η 8118. Μερικές χρήσιμες ρυθμίσεις είναι οι εξής:

forward / 127.0.0.1:8080
keep-alive-timeout 300
default-server-timeout 300
socket-timeout 600

Η 1η γραμμή είναι για να προωθούμε όλα τα αιτήματα του client στον havp, ενώ οι υπόλοιπες 3 είναι για βελτιστοποίηση (ταχύτητα) του privoxy. Εάν στην υποδομή μας ΔΕΝ έχουμε καν havp/clamav τότε θα πρέπει να προωθούμε τα αιτήματα στον polipo web cache proxy στην πόρτα 8123.

Πριν προχωρήσουμε στον επόμενο και τελευταίο διαμεσολαβητή σε αυτό το άρθρο, θα πρέπει να κάνουμε μια ειδική αναφορά στο privoxy-blocklist.sh [8]. Είναι ένα shell script με το οποίο μπορούμε να μετατρέψουμε τους κανόνες του AdBlock Plus [7] σε φίλτρο του privoxy.

ziproxy

Με τον ziproxy ολοκληρώνουμε αυτό το άρθρο. Συμπιέζει την http κίνησή μας μα και τις εικόνες από ένα site σε πραγματικό χρόνο! Γεγονός που βοηθάει ακόμα πιο πολύ στην ταχύτητα της περιήγησής μας και την μείωση του bandwidth. Ίσως φανεί υπερβολικό, ειδικά με τις ταχύτητες που έχουμε πλέον, μα σκεφτείτε ότι αρκετοί χρησιμοποιούν 3g πρόσβαση σε κάποιο κινητό ή φορητή συσκευή και κάνουμε χρήση ενός data plan με ογκοχρέωση!

Η προκαθορισμένη πόρτα στην οποία ακούει είναι η 8080. Προσοχή: εάν έχουμε ήδη κάποια άλλη υπηρεσία ή κάποιον άλλο διαμεσολαβητή να ακούει στην παραπάνω πόρτα, θα πρέπει να την αλλάξουμε σε κάτι άλλο. Η αναφορά γίνεται γιατί και ο havp ακούει στην ίδια πόρτα.

Επίσης, θα πρέπει να δημιουργήσουμε έναν νέο χρήστη, στον οποίο θα μεταβούν τα δικαιώματα της λειτουργίας κατά την εκκίνηση του προγράμματος. Μπορείτε φυσικά απλά να αλλάξετε το αρχείο ρυθμίσεων σε nobody:nogroup. Το βασικό αρχείο ρυθμίσεων είναι το εξής: /etc/ziproxy/ziproxy.conf και μερικές βασικές ρυθμίσεις είναι οι παρακάτω:

NextProxy="127.0.0.1"
NextPort=8118
ImageQuality = {25,25,25,25}

Οι δύο πρώτες γραμμές είναι για να δηλώσουμε τον privoxy, ενώ η τελευταία για να δηλώσουμε την ποιότητα της συμπίεσης των εικόνων. Εάν θέλουμε να ενεργοποιήσουμε την επαλήθευση, τότε θα πρέπει να ρίξουμε μια ματιά στο Authentication mode στο αρχείο ρυθμίσεων. Να μην ξεχάσω να αναφέρω ότι ο ziproxy έχει κι αυτός filtering δυνατότητα μέσω regular expressions. Μα καλύτερα ας αφήσουμε στον privoxy αυτή την δουλειά. Μπορεί επίσης να παρέχει επαλήθευση, δείτε το Authentication mode για περαιτέρω.

Επίλογος

Εκτός όμως από πλεονεκτήματα, θα πρέπει να αναφέρουμε και τα μειονεκτήματα στην παραπάνω υποδομή. Το πρώτο είναι η ταχύτητα. Όσο πιο περίπλοκη αρχιτεκτονική χρησιμοποιούμε, τόσο πιο πολλές καθυστερήσεις έχουμε. Προφανώς όμως τα πλεονεκτήματα είναι περισσότερα και η καθυστέρηση αμελητέα. Το δεύτερο μειονέκτημα είναι η χρήση ενός απομακρυσμένου διακομιστή. Εάν δεν έχουμε πρόσβαση σε ένα τέτοιο μηχάνημα το κόστος υλοποίησης τοπικά στο δικό μας είναι πολύ μεγάλο και δεν κερδίσουμε τίποτα. Κι ο λόγος γιατί τότε όλη η κίνηση θα κατεβαίνει τοπικά στον υπολογιστή μας και μετά θα φιλτράρουμε το περιεχόμενο. Το τρίτο και τελευταίο μειονέκτημα είναι η συμπίεση/διαμόρφωση των εικόνων. Εάν θέλουμε να δούμε με πλήρη λεπτομέρεια μία εικόνα, θα πρέπει να αφαιρέσουμε από το browser μας, τις ρυθμίσεις του διαμεσολαβητή μας και να ξαναφορτώσουμε την σελίδα!

Τέλος, θα πρέπει να επισημάνω ότι αρκετοί web browsers παίρνουν τις ρυθμίσεις του διαμεσολαβητή από τις μεταβλητές του profile μας. Οι δύο μεταβλητές του συστήματός μας, δεν είναι άλλες από τις παρακάτω:

http_proxy
ftp_proxy

ένα πλήρες παράδειγμα χρήσης:

http_proxy='http://username:[email protected]:8080'

Happy browsing ! 

Χρήσιμες εντολές

* Για να δούμε τις πόρτες στις οποίες ακούει το μηχάνημά μας:

netstat -natlp

* Η πλήρης σύνταξη για τον ορισμό ενός http proxy στο σύστημά μας:

http_proxy='http://username:[email protected]:8080'  

Σύνδεσμοι

[01] http://en.wikipedia.org/wiki/Proxy_server
[02] http://www.pps.jussieu.fr/~jch/software/polipo/
[03] http://www.server-side.de/
[04] http://www.privoxy.org/
[05] http://ziproxy.sourceforge.net/
[06] http://www.clamav.net/lang/en/
[07] http://adblockplus.org/en/
[08] http://andrwe.org/doku.php/blog/scripting/bash/privoxy-blocklist
[09] http://proxychains.sf.net
[10] http://www.torproject.org  

Δώσε αστέρια!

MO: (ψήφοι: 0)