RE: aurtorizace uživatele ve squidu - nefunkčnost v IE 7

IPetr ipetr na email.cz
Čtvrtek Listopad 1 08:51:34 CET 2007


Opravdu nikdo neporadi? :-(

> 
> 
> Autorizace na přihlášeného uživatele mi nevyhovuje, na těch 
> PC na kterých se tato autorizace používá pracuje skoro 60-sat 
> uživatelů, kteří se různě střídají. Proto ta autorizace až 
> při přístupu na www mimo intranet. Stačí se přihlásit pouze 
> jednou, a do doby než uživatel zavře všechna okna brouseru se 
> spojení drží. Jak jsem psal, na všech brouserech krom IE7 mi 
> to funguje.
>   
> 
> Používám ve squidu tuto část auth_param
> 
> V této konfiguraci
> auth_param basic children 5
> auth_param basic realm Squid proxy-caching. Zadejte 
> uzivatelske jmeno a heslo auth_param basic credentialsttl 2 
> hours auth_param basic casesensitive off auth_param basic 
> program /usr/sbin/ncsa_auth /etc/squid/squid.passwd 
> auth_param digest program /usr/sbin/ncsa_auth /etc/squid/squid.passwd
> 
> 
> IPetr
>  
> 
> 
> > 
> > > Používám squid autorizaci uživatele pro přístup na net. V
> > ...
> > O jakou autorizaci (nebo spis autentikaci) se jedna ? Je to 
> ntlm_auth 
> > ?
> > S tim bohuzel neporadim, mam ale jiny tip - vykaslat se na 
> autentikaci 
> > proverovanim jmeno/heslo a pouzit pouze informaci o prave 
> prihlasenem 
> > uzivateli Windouz, podobne jako muse byt pouzita sluzba ident na 
> > jinych operacnich systemech.
> > K tomu jsem pouzil dotaz na jmena registrovana na jeho Wind. 
> > stanici. Pokud tam totiz bezi sluzba Messenger (v XP cesky Kuryrni 
> > sluzba), pripadne to jsou jeste Win9x, vraci stanice mezi 
> jmeny take 
> > username<03>. Napsal jsem si jednoduchy Perl skriptik, ktery se pak 
> > vola ze Squidu jako external_acl_type.
> > Tady je:
> > 
> > ====
> > #!/usr/bin/perl
> > 
> > use Socket;
> > use IO::Handle;
> > 
> > STDOUT->autoflush(1);
> > main:
> > while (<>) {
> >   chomp;
> >   $ip=$_;
> >   $trnid=int(rand(65536));
> >   $query=" CK".("A"x30)."\0";
> >   $data=pack("nnnnnna34nn",$trnid,0,1,0,0,0,$query,0x21,1);
> >   close(S);
> >   socket(S, PF_INET, SOCK_DGRAM, getprotobyname("udp")) or die 
> > "socket: $!";
> >   $ipaddr=inet_aton($ip);
> >   $portaddr=sockaddr_in(137,$ipaddr);
> >   send(S,$data,0,$portaddr)==length($data) or die "send";
> >   vec($mask,fileno(S),1)=1;
> >   unless (select($mask,undef,undef,0.1)) {
> >     print "ERR\n";
> >     next;
> >   }
> >   $portaddr=recv(S,$buf,1500,0) or die "recv";
> >   
> ($id,$flg,$q,$ans,$aut,$add,$datar,$type,$class,$ttl,$len,$n,$buf)=
> >     unpack("nnnnnna34nnNnCa*",$buf);
> >   @names=();
> >   for ($i=0;$i<$n;$i++) {
> >     ($name,$type,$flags,$buf)=unpack("a15Cna*",$buf);
> >     next if ($flags&0x8000 or ($type!=0 and $type!=3));
> >     $name=~s/ +$//;
> >     $name=lc($name);
> >     if ($type==3) {
> >       push @names,$name;
> >     } else {
> >       $wkst=$name;
> >     }
> >   }
> >   if ($#names<=1) {
> >     while ($name=pop @names) {
> >       next if ($name eq $wkst);
> >       print "OK user=$name\n";
> >       next main;
> >     }
> >   }
> >   print "ERR\n";
> > }
> > ====
> > 
> > Vracene jmeno uzivatele se pak da ve Squidu pouzit stejne 
> jako jmeno 
> > prihlaseneho uzivatele nebo jmeno ziskane pomoci sluzby ident (tcp 
> > 113), kterou Win systemy nemaji.
> > 
> > M. Vancl
> 




Další informace o konferenci Linux