|
SwiftSurf
Proxy web intelligent
|
|
Télécharger la dernière version (Change Log)
Compilation et utilisation
La compilation se fait tout simplement tapant "gmake" dans le
repertoire obtenu après décompression. Il est indispensable d'avoir un
compilateur ocaml correctement
installé. En cas de problème, par exemple si vous ne disposez pas de
compilateur natif pour ocaml, vous pouvez essayer "gmake byte", qui
construit un programme bytecode au lieu d'un programme natif.
Pour installer swiftsurf sur votre machine, passez root (avec su)
et tapez "gmake install".
Il ne vous reste plus qu'à lancer swiftsurf et à configurer votre
navigateur pour qu'il l'utilise. Avec Netscape ou Mozilla, allez dans
Edit->Preferences->Advanced->Proxies, sélectionner "Manual
proxy configuration" et indiquer localhost avec le port 8080 comme
proxy pour http et https.
Présentation
SwiftSurf est un proxy web qui peut être utilisé pour les protocoles
http (1.0 et 1.1) et https. Il permet de plus de filtrer les pages
acceptées et de limiter l'accès grâce à des mots de passe.
a. Vocabulaire
- Proxy : Intermédiaire entre votre browser (Netscape
par exemple) et Internet. Le browser demande au proxy les pages
qu'il veut récupérer, et ce dernier se charge
d'aller les chercher sur internet et renvoie la réponse au
browser.
- http : hyper text transfer protocol : langage utilisé sur
internet pour transferer les pages html.
- https : secure http : protocole sécurisé qui permet des
transmissions sûres sur internet.
- filtrant : Permet de censurer certaines pages ou de les modifier
avant qu'elle ne soit affichées dans le browser. Permet aussi
d'empêcher que certaines informations personnelles ne soit
diffusées sur internet.
b. Intérêt du filtrage
- Censure : il est possible de filtrer les urls contenant sex,
xxx ou autres.
- Accélération du chargement des pages : Les
pages html contiennent beaucoup d'informations inutiles
(publicités en particulier). Ne pas les
télécharger
permet de gagner un temps précieux, en particulier si l'on
a un accès internet par l'intermédiaire d'un modem,
dont le débit est généralement assez lent.
- Non diffusion d'informations personnelles. Il est possible de
filtrer toutes les informations envoyées par votre browser vers
les sites internet, pour éviter par exemple que celui-ci
n'envoie votre nom ou toute autre information personnelle.
- Afficher toutes les informations que votre browser échange avec
l'extérieur.
NB: le filtre agit ici sur l'url (nom de la page), mais pas sur son
contenu. Ceci cependant est suffisant dans un premier temps car
l'url reflete souvent le contenu de la page.
Configuration
Toute la configuration de SwiftSurf se fait au moyen du fichier de
configuration . Les commentaires commencent par
le symbole # et s'étendent jusqu'à la fin de la ligne.
Par défaut, swiftsurf cherche le fichier de configuration parmi
les fichiers suivants : $HOME/.swiftsurf, /etc/swiftsurf.conf,
./swiftsurf.conf, /dev/null. Pour spécifier un fichier, utiliser
l'option -c.
En principe, vous n'avez rien à modifier dans ce fichier. Pour
rajouter des urls que vous voulez supprimer, allez dans le fichier
"forbidden". Pour un exemple de fichier de configuration qui utilise
des profils, voyez swiftsurf.conf.school.
Configurations générales
Une première partie des options de configurations concerne toutes
les connexions avec les proxy (Tous les mots clefs peuvent
indifféremment être écrits en minuscules ou en majuscules) :
- port : port sur lequel le proxy tourne.
- logFile : nom du fichier dans lesquels seront écrits les log
(par défaut, ils sont affichés sur stdout)
- connectFrom : adresses depuis lesquelles il est autorisé de se
connecter (sous forme de redex).
- nextProxy : Si les requêtes doivent être
redirigées vers un autre proxy, donner son nom et le port sur
lequel on se connecte (ex : www 8080).
- noProxy : Utile seulement si useProxy est activé : indique une
liste de serveurs auxquels on peut accéder directement (ie sans
utiliser le proxy suivant). Un item de cette liste peut contenir des
caractères jokers (* ou ?). Cette liste peut (optionnellement) se
terminer par end (pour la clarté du fichier).
- mimeType : Permet de définir une association entre une extension
et un type mime, utile si votre navigateur ne reconnaît pas le type de
votre document de remplacement.
- forbiddenReqHeader : début de la liste des headers http qui
sont interdits pour la requête. Tout header qui coincide avec un élément
de cette liste est supprimé. Ceci est un moyen efficace de
s'assurer par exemple qu'aucun cookie n'est utilisé.
- forbiddenAnsHeader : idem pour les headers de la réponse.
- overrideUseragent : change le champ User-Agent des headers (ce
champ donne le nom du navigateur). Ceci peut-être utile pour
contourner les politiques d'accès de certains sites, comme msn.com (ex
: overrideUseragent Mozilla/4.76).
- timeout : timeout pour une connection inactive (defaut 30 :
sec). une valeur de 0 met un timeout infini.
- maxConns : nombre maximum de connections simultanées autorisées
(defaut : infini).
- stats : entier indiquant quel niveau de statistique est désiré :
0 signifie rien, 1 signifie afficher toute les urls demandées en
indiquant si elles sont acceptées ou refusées, 2 rajoute en plus la
date, l'heure et l'adresse ip du client de la requête.
- debug : indique le niveau de debug souhaité (entier
positif). 0 signifie qu'il ne faut afficher aucune information de
deboguage. Si vous voulez me signaler un bug, merci de m'indiquer
l'output du programme avec debug 2.
Utilisation de profil
Avec SwiftSurf, il est possible de définir plusieurs profils
d'utilisateurs (selon les accès autorisés par exemple). Pour ce faire
on définit un ou plusieurs profils de la façon suivante :
profile login:pass
profOpt1
profOpt2 ...
endProfile
Il est aussi possible de ne définir aucun profil (ce qui évite d'avoir
à donner un mot de passe pour se connecter).
Les options possibles pour un profile (profOpt dans l'exemple
ci-dessus) sont les suivantes :
- forbiddenFile : donne le nom d'un fichier qui contient une liste
d'urls interdites suivie du nom d'un fichier contenant une image à
utiliser pour remplacer les documents interdits. Si le nom de l'image
est "default" (ou n'est pas spécifié), swiftsurf utilise un petit
carré noir comme image. Si vous utilisez un document avec un type
esotérique, il peut etre utile de faire une association entre son
association et son type mime (avec l'option mimeType décrite
ci-dessus).
- forbiddenUrl : debut d'une liste d'urls à interdire : Un item de
cette liste peut contenir des caractères jokers (* ou ?). Ces urls
seront remplacées par une image de votre choix. Cette liste doit se
terminer par end et est suivie du nom d'un fichier contenant une image
à utiliser pour remplacer les documents interdits.
- allowedUrl : début de la liste des urls autorisées : si ce champ
existe dans le fichier de configuration, seules les urls qui
correspondent à l'un des éléments de la liste sont affichées. Les
autres sont traitées comme les "forbidden". Par défaut, toutes les
urls sont autorisées. Cette liste doit se terminer par end et est
suivie du nom d'un fichier contenant une image à utiliser pour
remplacer les documents interdits.
- allConnect : autorise les connections https sur tous les ports
(defaut : uniquement le port 443).
- noConnect : interdit https.
- noGET : interdit la méthode GET.
- noPOST : interdit la méthode POST.
- request : permet d'afficher tout ou partie de la requête
envoyée au serveur. Le nombre indiqué est la somme des
entiers suivants : 1 si l'on veut afficher les headers et 2 pour
afficher le contenu (method POST).
- answer : permet d'afficher tout ou partie de la réponse
renvoyée au browser. Le nombre indiqué est la somme des
entiers suivants : 1 pour afficher les headers et 2 pour
afficher le contenu (le document demandé).
A faire
- Comprendre les requête FTP
- Ajouter un cache pour les pages html
- Faire du prefetching