Proxy non configuré dans le navigateur : redirection ou page d'information

Redirection transparente HTTP sur Amon

Sur le module Amon, les flux HTTP provenant des réseaux internes sont redirigés vers le proxy.

Attention

La redirection transparente ne fonctionne pas avec le protocole HTTPS car il s'agit d'un mode connecté qui ne supporte pas ce genre de manipulation sur les paquets. La redirection est faite uniquement pour obliger les postes à utiliser le proxy.

Attention

La redirection transparente n'est pas mise en place sur le module AmonEcole et ses variantes.

Attention

Si l'authentification du proxy est activée sur l'interface, la redirection fonctionnera mais pas l'authentification et l'utilisateur obtiendra une page d'erreur explicite provenant du logiciel Squid.

Page d'erreur renvoyée par Squid en cas d'erreur d'authentification
Page d'erreur renvoyée par Squid en cas d'erreur d'authentification

En mode expert, les variables Exceptions de type nom de domaine pour eth1 (proxy_bypass_domain_eth1)et Exceptions de type nom de domaine pour eth2 (proxy_bypass_domain_eth2) apparaissent dans l'onglet Exceptions proxy de l'interface de configuration du module. Elles permettent d'ajouter des exclusions dans la configuration automatique du proxy.

Elles permettent de saisir des adresses de destination pour lesquelles il est possible de ne pas passer par le proxy.

Remarque

De par ses spécificités, ces variables ne sont pas disponibles sur le module AmonEcole+.

Il est possible de faire des exceptions sur :

  • une adresse IP ou une plage d'adresses IP (exception commune à ERA et à WPAD) : Ne pas passer par le proxy pour l'adresse IP ;

Le bouton Exceptions de type réseau pour eth-n permet d'ajouter plusieurs exceptions sur une même interface.

  • un domaine (exception commune à ERA et à WPAD) : Ne pas passer par le proxy pour le domaine ;

Il est possible d'ajouter plusieurs exceptions sur une même interface.

Page d'information renvoyée par Nginx

Sur les modules Amon et AmonEcole, la configuration du logiciel Nginx a été adaptée afin de détecter le cas où le navigateur du client n'a pas été configuré correctement et lui renvoyer un message d'erreur suffisamment explicite.

Page d'erreur renvoyée par Nginx en cas de proxy non configuré
Page d'erreur renvoyée par Nginx en cas de proxy non configuré

Truc & astuce

La page d'erreur affichée dans le navigateur peut être personnalisée.

Personnaliser la page renvoyée par Nginx à l'aide d'un patch

La page d'erreur affichée dans le navigateur est un template Creole  : /usr/share/eole/creole/distrib/nginx.no_proxy.html

Il est possible de le modifier de façon pérenne en utilisant un patch pour Creole.

Il faut copier le template d'origine dans le répertoire /usr/share/eole/creole/modif/

root@amon:~# cp /usr/share/eole/creole/distrib/nginx.no_proxy.html /usr/share/eole/creole/modif/nginx.no_proxy.html

Il faut éditer, modifier et enregistrer le fichier copié

root@amon:~# vim /usr/share/eole/creole/modif/nginx.no_proxy.html

Puis il faut générer le patch à l'aide de la commande gen_patch

root@amon:~# gen_patch

Le fichier contenant les différences est créé dans le répertoire /usr/share/eole/creole/patch/

Attention

Les changements prennent effet après la reconfiguration du serveur à l'aide de la commande reconfigure

root@amon:~# reconfigure

La page servie par Nginx contient les modifications :

root@amon:~# vim /var/www/index.html

Exemple

1
root@amon:~# cp /usr/share/eole/creole/distrib/nginx.no_proxy.html /usr/share/eole/creole/modif/nginx.no_proxy.html
2
root@amon:~# vim /usr/share/eole/creole/modif/nginx.no_proxy.html
3
[...]
4
root@amon:~# gen_patch
5
6
** Génération des patches à partir de modif **
7
8
Génération du patch nginx.no_proxy.html.patch
9
10
** Fin de la génération des patch **
11
12
root@amon:~# ls /usr/share/eole/creole/patch/
13
nginx.no_proxy.html.patch  variante
14
root@amon:~# reconfigure
15
[...]
16
root@amon:~# vim /var/www/index.html

Il est possible d'appeler des variables Creole comme par exemple %%libelle_etab et aussi d'ajouter des images en les ajoutant par exemple dans un dossier /img dans /var/www/.

Exemple

1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
<html>
3
    <META http-equiv="Content-Type" content="text/html; charset=utf-8;">
4
    <head>
5
<title>Veuillez configurer le proxy de votre navigateur</title>
6
<style>
7
.main {
8
        background:#bbbbbb;
9
        text-align:center;
10
}
11
h1 {
12
    /* text-shadow: 0px 0px 7px rgba(0, 0, 0, 0.75);*/
13
    color: #91e842;
14
    font-size: 50px;
15
    text-align:center;
16
    text-shadow: 0 1px 0 #eee,
17
             0 2px 0 #e5e5e5,
18
             -1px 3px 0 #C8C8C8,
19
             -1px 4px 0 #C1C1C1,
20
             -2px 5px 0 #B9B9B9,
21
             -2px 6px 0 #B2B2B2,
22
             -2px 7px 2px rgba(0,0,0, 0.6),
23
             -2px 7px 8px rgba(0,0,0, 0.2),
24
             -2px 7px 45px rgba(0,0,0, 0.4);
25
}
26
.message {
27
    top:25%;
28
    text-align:center;
29
    margin-left: 50px;
30
    margin-right: 50px;
31
32
    padding: 40px;
33
    background: #d2ff52;
34
    border: 1px solid #000000;
35
36
    border-radius: 10px;
37
    -moz-border-radius: 10px;
38
    -webkit-border-radius: 10px;
39
40
    box-shadow: 5px 7px 10px 6px rgba(119, 119, 119, 0.75);
41
    -moz-box-shadow: 5px 7px 10px 6px rgba(119, 119, 119, 0.75);
42
    -webkit-box-shadow: 5px 7px 10px 6px rgba(119, 119, 119, 0.75);
43
}
44
</style>
45
    </head>
46
    <body class='main'>
47
    <img src="./img/logoEolePt.png">
48
    <h1>%%libelle_etab</h1>
49
    <h2>Votre navigateur n'est pas correctement configuré !!</h2>
50
    <div class="message">Pour naviguer sur internet, un proxy doit être déclaré dans votre navigateur.<br />
51
Si vous accédez à la présente page, c'est que votre navigateur n'est pas configuré pour utiliser le proxy. Veuillez contacter le service informatique de l'établissement.</div>
52
    </body>
53
</html>
54
Page d'erreur renvoyée par Nginx en cas de proxy non configuré
Page d'erreur renvoyée par Nginx en cas de proxy non configuré