Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/02/2007, 12h57   #1
Membre à l'essai
 
Inscription : avril 2004
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 103
Points : 20
Points : 20
Par défaut Problème de redirection

Bonjour tout le monde,
Je voudrais utiliser 1 programme de redirection écrit en perl avec squid 2.5.STABLE5. En effet c'est un test pour rediriger toutes les premières connexions http à la passerelle vers une interface web informatrice puis, redirection vers l'url demandé. Toutefois lorsque je mets les paramètres dans mon squid, il me signale un ERR_ACCESS_DENIED. Sans ce paramètre tout va bien.
J'ai ici les paramètres de configration de squid:
Citation:
redirect_program /usr/lib/squid/redirect.pl
redirect_children 5
redirect_rewrites_host_header off
acl we src 0.0.0.0/0.0.0.0
redirector_access allow we
Le script redirect.pl est:
Code perl :
1
2
3
4
5
6
7
8
9
 
#!/usr/bin/perl -w
$!=1;
while(<>){
  @X = split;
  $url= $X[0];
  $ident=$X[2];
 print "$url\n";
}
Excusez-moi si 1 sujet de ce genre a été déjà posté. J'ai fait des recherches sans succès . Merci d'avance pour vos avis.
Dosseh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 09h14   #2
Membre à l'essai
 
Inscription : avril 2004
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 103
Points : 20
Points : 20

Salut,
Personne ne répond ou faudrait-il que je m'éclaircisse d'avantage?
Dosseh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2007, 10h07   #3
Membre à l'essai
 
Inscription : avril 2004
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 103
Points : 20
Points : 20
Mon problème était ici:

Code perl :
1
2
3
4
5
6
7
 
while(<>){
  @X = split;
  $url= $X[0];
  $ident=$X[2];
 print "$url\n";
}

je ne retournais pas à squid tout ce qu'il fallait. Et donc après modification du code j'ai un premier succès. J'ai plutôt ceci:

Code perl :
1
2
3
4
5
6
7
8
9
10
 
#!/usr/bin/perl -w
$localhost="http://localhost/perl/proxy/webinterface1.pl";
 
$|=1;
while (<>) {   
   ($url, $addr, $fqdn, $ident, $method)=split;
   $url=~s@$url@$localhost\?url=$url@;
   print "$url $addr/$fqdn $ident $method\n";
}
En effet l'objectif est de faire passer toute première connexion par rapport aux utilisateurs par le script de redirection. De là toutes les autres requêtes demandé doivent s'exécuter sans passer par le programme de redirection. J'ai pensé aux règles acl à combiner avec redirector_access.
J'ai donc fait ceci:
Code :
1
2
3
4
5
6
 
acl users proxy_auth  REQUIRED
acl beforcon maxconn 0
redirector_access deny !beforcon
redirector_access allow beforcon users
redirector_access deny all
Et pourtant ceci ne marche pas. J'ai déjà posé la question sur la liste des squid-users mais je n'ai obtenu aucune réponse. J'attends donc vos suggestions même s'il faudrait changer de méthodes.
Dosseh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 22h18   #4
Invité de passage
 
Inscription : mai 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 1
Points : 1
Points : 1
Bonjour Dosseh,

J'ai vu que tes messages sont assez ancien, mais le sujet m'interesse puisque c'est justement ce que l'on me demande de réaliser.

En fait j'ai besoin d'afficher une page par défaut lors de la première connexion de des utilisateurs et ensuite de les laisser faire ce qu'ils veulent.

J'ai essayé d'utiliser maxconn comme toi, mais ça ne semble pas répondre à cela.
Sinon j'arrive bien à accéder à ma page par défaut quelque soit l'url entrée par l'utilisateur.

As tu trouvé une solution à ton problème ?
xsamson est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 17h08   #5
Membre à l'essai
 
Inscription : avril 2004
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 103
Points : 20
Points : 20
Citation:
Envoyé par xsamson
As tu trouvé une solution à ton problème ?

Eh bien pas vraiment.
J'ai revu mon code de redirection. J'enregistre un premier passage de l'url dans un fichier de log. Ensuite je vérifie si les autres urls correspondent à ce dernier. si oui, il n'y a plus de redirection. sinon il y a.
Citation:
#!/usr/bin/perl -w
$localhost="http://192.168.210.3/perl/proxy/webinterface1.pl";


$|=1;
while (<>) {
($url, $addr, $fqdn, $ident, $method)=split;

$found=0;
# Vérification d'une entrée précédente dans le fichier
open (FILE, "/var/log/ulnet/test.log");
@lines=<FILE>;
close FILE;
if (@lines != 0){
chomp(@lines);
foreach(@lines){
if(/$url/){
$found = 1;
next;
}else{
open (FILE, ">>/var/log/ulnet/test.log");
print FILE $url."\n";
close FILE;
$found = 0;
}#Fin de else
}#Fin de foreach
}
if ($found == 0){$url=~s@$url@$localhost\?url=$url@;}
}continue{
print "$url $addr/$fqdn $ident $method\n";
}

Mais cette solution est trop lourde en temps d'exécution du moment où tous les accès passent par ce programme de redirection.
A cause d'un autre projet plus urgent je l'ai laissé pour un temps.
Mais tes progrès m'interesseront assurément.
Du courage!
Dosseh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 17h15   #6
Membre à l'essai
 
Inscription : avril 2004
Messages : 103
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 103
Points : 20
Points : 20
Citation:
Envoyé par xsamson
As tu trouvé une solution à ton problème ?

Eh bien pas vraiment.
J'ai revu mon code de redirection. J'enregistre un premier passage de l'url dans un fichier de log. Ensuite je vérifie si les autres urls correspondent à ce dernier. si oui, il n'y a plus de redirection. sinon il y a.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/perl -w
$localhost="http://192.168.210.3/perl/proxy/webinterface1.pl";
 
 
$|=1;
while (<>) {
   ($url, $addr, $fqdn, $ident, $method)=split;
 
$found=0;
#  Vérification d'une entrée précédente dans le fichier
   open (FILE, "/var/log/ulnet/test.log");
   @lines=<FILE>;
   close FILE;
   if (@lines != 0){
     chomp(@lines);
     foreach(@lines){
      if(/$url/){
        $found = 1;
        next;
      }else{
        open (FILE, ">>/var/log/ulnet/test.log");
        print FILE $url."\n";
        close FILE;
        $found = 0;
      }#Fin de else
    }#Fin de foreach
  }
   if ($found == 0){$url=~s@$url@$localhost\?url=$url@;}
}continue{
    print "$url $addr/$fqdn $ident $method\n";
}

Mais cette solution est trop lourde en temps d'exécution du moment où tous les accès passent par ce programme de redirection.
A cause d'un autre projet plus urgent je l'ai laissé pour un temps.
Mais tes progrès m'interesseront assurément.
Du courage!
Dosseh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h25.


 
 
 
 
Partenaires

Hébergement Web