aurtorizace uživatele ve squidu - nefunkčnost v IE 7
"Petr \"Qaxi\" Klíma"
qaxi na seznam.cz
Čtvrtek Listopad 1 11:00:03 CET 2007
IPetr napsal(a):
> Opravdu nikdo neporadi? :-(
>
Ne, protože to asi nikdo neřešil ...
musíte trochu pátrat sám ...
Co říkají soubory ve /var/log/squid ?
Vyčtete něco z tohoto?
tcpdump host ${IP_STROJE_S_IE7} port ${SQUID_PORT:3128}
Máte zkušenost s Wireshark/Ethereal ?
Vyčtete něco z tohoto
tcpdump -s 0 -w squid_IE7.pap host ${IP_STROJE_S_IE7} port
${SQUID_PORT:3128}
wireshark squid_IE7.pap
Pokude ne, máte dost odvahy/riskerství abyste výstup z tcpdumpu někde
vystavil abysme se na něj mohli kouknout?
>
>> 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
>>>
>
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux
>
--
Petr Klíma
e-mail: qaxi na seznam.cz
Další informace o konferenci Linux