Search squid archive

Problem with Single Sign-On & NTLM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

following some howtos/tutorials on the net I managed to get SSO with
NTLM to work ... anyway, there are some significant delay during
authentication ...
I see the two failed 407 requests, then there's some 5-10 second delay
before the successful requests follow.

I've did some strace on the processes and found that the ntlm helper
seems to be causing the delay, specifically the one with the
squid-2.5-ntlmssp
helper protocol. Here's an excerpt from the strace run:

7289  14:14:15 _llseek(2, 0, [809868], SEEK_CUR) = 0
7289  14:14:15 write(2, "NTLMSSP Sign/Seal - Initialising"..., 45) = 45
7289  14:14:15 munmap(0xb775d000, 4096) = 0
7289  14:14:15 fstat64(2, {st_mode=S_IFREG|0640, st_size=809913, ...}) = 0
7289  14:14:15 mmap2(NULL, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb775d000
7289  14:14:15 _llseek(2, 0, [809913], SEEK_CUR) = 0
7289  14:14:15 write(2, "Got NTLMSSP neg_flags=0xa2088205"..., 33) = 33
7289  14:14:15 munmap(0xb775d000, 4096) = 0
7289  14:14:15 write(1, "AF administrator\n", 17) = 17
7289  14:14:15 read(0, "YR TlRMTVNTUAABAAAAB4IIogAAAAAAA"..., 4096) = 60
7289  14:14:24 uname({sys="Linux", node="BSSVR03", ...}) = 0
7289  14:14:24 socket(PF_NETLINK, SOCK_RAW, 0) = 5

The system call that delays the processing above is actually the
"read(0," call at 14:14:15, which _starts_ at :15, but doesn't finish
until :24 ... I've combined tracing both the Squid process and the auth
helper, but can't discern any routing that in itself would cause the
delay (see below).

I also noticed a post on the Net that talked about M$ deprecating NTLM
(now they do?) in favor of Kerberos, and that Squid 3.2 would have the
direct Kerberos auth available. Does this mean I can use 3.2 with direct
Kerberos for SSO instead of this POS NTLM auth?

Thanks, Garry

----------strace of squid3 (7231) and ntlm_auth helper
(7289)------------------------->

7289  14:29:08 write(1, "AF administrator\n", 17) = 17
7289  14:29:08 read(0,  <unfinished ...>
7231  14:29:08 <... gettimeofday resumed> {1339590548, 337498}, NULL) = 0
7231  14:29:08 epoll_ctl(4, EPOLL_CTL_MOD, 8,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=8, u64=12532559950905352}}) = 0
7231  14:29:08 gettimeofday({1339590548, 342113}, NULL) = 0
7231  14:29:08 epoll_wait(4, {{EPOLLIN, {u32=8,
u64=12532559950905352}}}, 65536, 477) = 1
7231  14:29:08 gettimeofday({1339590548, 342521}, NULL) = 0
7231  14:29:08 read(8, "AF administrator\n", 8191) = 17
7231  14:29:08 gettimeofday({1339590548, 343014}, NULL) = 0
7231  14:29:08 socket(PF_INET6, SOCK_STREAM, IPPROTO_TCP) = 42
7231  14:29:08 setsockopt(42, SOL_IPV6, IPV6_V6ONLY, [0], 4) = 0
7231  14:29:08 fcntl64(42, F_GETFD)     = 0
7231  14:29:08 fcntl64(42, F_SETFD, FD_CLOEXEC) = 0
7231  14:29:08 fcntl64(42, F_GETFL)     = 0x2 (flags O_RDWR)
7231  14:29:08 fcntl64(42, F_SETFL, O_RDWR|O_NONBLOCK) = 0
7231  14:29:08 setsockopt(42, SOL_TCP, TCP_NODELAY, [1], 4) = 0
7231  14:29:08 getsockname(42, {sa_family=AF_INET6, sin6_port=htons(0),
inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, [28]) = 0
7231  14:29:08 epoll_wait(4, {{EPOLLIN, {u32=27,
u64=12532559950905371}}}, 65536, 476) = 1
7231  14:29:08 gettimeofday({1339590548, 664719}, NULL) = 0
7231  14:29:08 read(27,
"\25\3\1\0\26\343\277\t\7\177n\355\211\220[\212aE\3\340\310\230.8\7\252\364",
65535) = 27
7231  14:29:08 gettimeofday({1339590548, 665169}, NULL) = 0
7231  14:29:08 epoll_ctl(4, EPOLL_CTL_MOD, 25,
{EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP, {u32=25, u64=25}}) = 0
7231  14:29:08 epoll_wait(4, {{EPOLLIN, {u32=27,
u64=12532559950905371}}, {EPOLLOUT, {u32=25, u64=25}}}, 65536, 154) = 2
7231  14:29:08 gettimeofday({1339590548, 665811}, NULL) = 0
7231  14:29:08 epoll_ctl(4, EPOLL_CTL_DEL, 27, {0, {u32=27,
u64=12532559950905371}}) = 0
7231  14:29:08 write(25,
"\25\3\1\0\26\343\277\t\7\177n\355\211\220[\212aE\3\340\310\230.8\7\252\364",
27) = 27
7231  14:29:08 gettimeofday({1339590548, 667005}, NULL) = 0
7231  14:29:08 epoll_ctl(4, EPOLL_CTL_ADD, 27,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=27, u64=27}}) = 0
7231  14:29:08 epoll_wait(4, {{EPOLLOUT, {u32=25, u64=25}}, {EPOLLIN,
{u32=27, u64=27}}}, 65536, 152) = 2
7231  14:29:08 gettimeofday({1339590548, 667681}, NULL) = 0
7231  14:29:08 epoll_ctl(4, EPOLL_CTL_MOD, 25,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=25, u64=12532559950905369}}) = 0
7231  14:29:08 read(27, "", 65535)      = 0
7231  14:29:08 gettimeofday({1339590548, 668253}, NULL) = 0
7231  14:29:08 read(27, "", 65535)      = 0
7231  14:29:08 read(25, 0xbfdf18ed, 65535) = -1 EAGAIN (Resource
temporarily unavailable)
7231  14:29:08 epoll_ctl(4, EPOLL_CTL_DEL, 27, {0, {u32=27, u64=27}}) = 0
7231  14:29:08 close(27)                = 0
7231  14:29:08 write(5, "1339590548.668  20394 10.40.1.25"..., 113) = 113
7231  14:29:08 epoll_ctl(4, EPOLL_CTL_DEL, 25, {0, {u32=25,
u64=16371771087257625}}) = 0
7231  14:29:08 close(25)                = 0
7231  14:29:08 epoll_wait(4, {}, 65536, 151) = 0
7231  14:29:08 gettimeofday({1339590548, 823082}, NULL) = 0
7231  14:29:08 gettimeofday({1339590548, 823352}, NULL) = 0
7231  14:29:08 gettimeofday({1339590548, 823352}, NULL) = 0
7231  14:29:08 epoll_wait(4, {}, 65536, 324) = 0
7231  14:29:09 gettimeofday({1339590549, 149170}, NULL) = 0
7231  14:29:09 gettimeofday({1339590549, 149392}, NULL) = 0
7231  14:29:09 epoll_wait(4, {}, 65536, 673) = 0
7231  14:29:09 gettimeofday({1339590549, 824896}, NULL) = 0
7231  14:29:09 gettimeofday({1339590549, 825120}, NULL) = 0
7231  14:29:09 epoll_wait(4, {}, 65536, 324) = 0
7231  14:29:10 gettimeofday({1339590550, 151083}, NULL) = 0
7231  14:29:10 gettimeofday({1339590550, 151341}, NULL) = 0
7231  14:29:10 epoll_wait(4, {}, 65536, 673) = 0
7231  14:29:10 gettimeofday({1339590550, 826905}, NULL) = 0
7231  14:29:10 gettimeofday({1339590550, 827216}, NULL) = 0
7231  14:29:10 sendto(7,
"\327\342\1\0\0\1\0\0\0\0\0\0\3www\7antifan\2de\0\0\34\0\1", 32, 0,
{sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("10.40.1.12")}, 16) = 32
7231  14:29:10 epoll_wait(4, {}, 65536, 324) = 0
7231  14:29:11 gettimeofday({1339590551, 154941}, NULL) = 0
7231  14:29:11 gettimeofday({1339590551, 155171}, NULL) = 0
7231  14:29:11 epoll_wait(4, {}, 65536, 672) = 0
7231  14:29:11 gettimeofday({1339590551, 830189}, NULL) = 0
7231  14:29:11 gettimeofday({1339590551, 830423}, NULL) = 0
7231  14:29:11 epoll_wait(4, {}, 65536, 62) = 0
7231  14:29:11 gettimeofday({1339590551, 893171}, NULL) = 0
7231  14:29:11 gettimeofday({1339590551, 893391}, NULL) = 0
7231  14:29:11 epoll_wait(4, {}, 65536, 261) = 0
7231  14:29:12 gettimeofday({1339590552, 156806}, NULL) = 0
7231  14:29:12 gettimeofday({1339590552, 157023}, NULL) = 0
7231  14:29:12 epoll_wait(4, {{EPOLLIN, {u32=32,
u64=12532559950905376}}}, 65536, 673) = 1
7231  14:29:12 gettimeofday({1339590552, 684278}, NULL) = 0
7231  14:29:12 read(32, "\25\3\1\0
\367)\1\217OH\320\\|\0\211u\210\22\264\360\343\21\357\270WJ\362Y\353\366y"...,
65535) = 37
7231  14:29:12 gettimeofday({1339590552, 684730}, NULL) = 0
7231  14:29:12 epoll_ctl(4, EPOLL_CTL_MOD, 30,
{EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP, {u32=30, u64=30}}) = 0
7231  14:29:12 epoll_wait(4, {{EPOLLIN, {u32=32,
u64=12532559950905376}}, {EPOLLOUT, {u32=30, u64=30}}}, 65536, 145) = 2
7231  14:29:12 gettimeofday({1339590552, 685370}, NULL) = 0
7231  14:29:12 epoll_ctl(4, EPOLL_CTL_DEL, 32, {0, {u32=32,
u64=12532559950905376}}) = 0
7231  14:29:12 write(30, "\25\3\1\0
\367)\1\217OH\320\\|\0\211u\210\22\264\360\343\21\357\270WJ\362Y\353\366y"...,
37) = 37
7231  14:29:12 gettimeofday({1339590552, 686337}, NULL) = 0
7231  14:29:12 epoll_ctl(4, EPOLL_CTL_ADD, 32,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=32, u64=32}}) = 0
7231  14:29:12 epoll_wait(4, {{EPOLLOUT, {u32=30, u64=30}}, {EPOLLIN,
{u32=32, u64=32}}}, 65536, 144) = 2
7231  14:29:12 gettimeofday({1339590552, 686967}, NULL) = 0
7231  14:29:12 epoll_ctl(4, EPOLL_CTL_MOD, 30,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=30, u64=12532559950905374}}) = 0
7231  14:29:12 read(32, "", 65535)      = 0
7231  14:29:12 epoll_ctl(4, EPOLL_CTL_MOD, 30,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=30, u64=12532559950905374}}) = 0
7231  14:29:12 read(32, "", 65535)      = 0
7231  14:29:12 gettimeofday({1339590552, 687567}, NULL) = 0
7231  14:29:12 read(32, "", 65535)      = 0
7231  14:29:12 read(30, 0xbfdf18ed, 65535) = -1 EAGAIN (Resource
temporarily unavailable)
7231  14:29:12 brk(0x20fc9000)          = 0x20fc9000
7231  14:29:12 brk(0x20fa9000)          = 0x20fa9000
7231  14:29:12 epoll_ctl(4, EPOLL_CTL_DEL, 32, {0, {u32=32, u64=32}}) = 0
7231  14:29:12 close(32)                = 0
7231  14:29:12 write(5, "1339590552.687  15472 10.40.1.25"..., 122) = 122
7231  14:29:12 epoll_ctl(4, EPOLL_CTL_DEL, 30, {0, {u32=30,
u64=16371771087257630}}) = 0
7231  14:29:12 close(30)                = 0
7231  14:29:12 epoll_wait(4, {}, 65536, 142) = 0
7231  14:29:12 gettimeofday({1339590552, 832771}, NULL) = 0
7231  14:29:12 gettimeofday({1339590552, 832999}, NULL) = 0
7231  14:29:12 epoll_wait(4, {}, 65536, 324) = 0
7231  14:29:13 gettimeofday({1339590553, 158730}, NULL) = 0
7231  14:29:13 gettimeofday({1339590553, 158955}, NULL) = 0
7231  14:29:13 epoll_wait(4, {}, 65536, 674) = 0
7231  14:29:13 gettimeofday({1339590553, 834534}, NULL) = 0
7231  14:29:13 gettimeofday({1339590553, 834756}, NULL) = 0
7231  14:29:13 epoll_wait(4, {{EPOLLIN, {u32=7,
u64=38984572037234695}}}, 65536, 324) = 1
7231  14:29:14 gettimeofday({1339590554, 46919}, NULL) = 0
7231  14:29:14 recvfrom(7,
"\327\342\201\200\0\1\0\1\0\0\0\0\3www\7antifan\2de\0\0\34\0\1"...,
16384, 0, {sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("10.40.1.11")}, [16]) = 46
7231  14:29:14 sendto(7,
"\230\323\1\0\0\1\0\0\0\0\0\0\3www\7antifan\2de\0\0\1\0\1", 32, 0,
{sa_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("10.40.1.11")}, 16) = 32
7231  14:29:14 recvfrom(7, 0x45af80, 16384, 0, 0x20f24490, 0x20d9db18) =
-1 EAGAIN (Resource temporarily unavailable)
7231  14:29:14 gettimeofday({1339590554, 48507}, NULL) = 0
7231  14:29:14 epoll_wait(4, {}, 65536, 110) = 0
7231  14:29:14 gettimeofday({1339590554, 160587}, NULL) = 0
7231  14:29:14 gettimeofday({1339590554, 160799}, NULL) = 0
7231  14:29:14 epoll_wait(4, {}, 65536, 132) = 0
7231  14:29:14 gettimeofday({1339590554, 295383}, NULL) = 0
7231  14:29:14 gettimeofday({1339590554, 295599}, NULL) = 0
7231  14:29:14 getrusage(RUSAGE_SELF, {ru_utime={0, 184011},
ru_stime={4, 780298}, ...}) = 0
7231  14:29:14 epoll_wait(4, {{EPOLLIN, {u32=29,
u64=13446202573979677}}}, 65536, 539) = 1
7231  14:29:14 gettimeofday({1339590554, 777295}, NULL) = 0
7231  14:29:14 accept(29, {sa_family=AF_INET6, sin6_port=htons(40214),
inet_pton(AF_INET6, "::ffff:10.40.1.254", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, [28]) = 25
7231  14:29:14 getsockname(25, {sa_family=AF_INET6,
sin6_port=htons(8080), inet_pton(AF_INET6, "::ffff:10.40.1.42",
&sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
7231  14:29:14 fcntl64(25, F_GETFD)     = 0
7231  14:29:14 fcntl64(25, F_SETFD, FD_CLOEXEC) = 0
7231  14:29:14 fcntl64(25, F_GETFL)     = 0x2 (flags O_RDWR)
7231  14:29:14 fcntl64(25, F_SETFL, O_RDWR|O_NONBLOCK) = 0
7231  14:29:14 gettimeofday({1339590554, 779842}, NULL) = 0
7231  14:29:14 accept(29, 0x20f0d910, [28]) = -1 EAGAIN (Resource
temporarily unavailable)
7231  14:29:14 epoll_ctl(4, EPOLL_CTL_ADD, 25,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=25, u64=25}}) = 0
7231  14:29:14 epoll_wait(4, {}, 65536, 54) = 0
7231  14:29:14 gettimeofday({1339590554, 836364}, NULL) = 0
7231  14:29:14 gettimeofday({1339590554, 836589}, NULL) = 0
7231  14:29:14 epoll_wait(4, {{EPOLLIN, {u32=25, u64=25}}}, 65536, 324) = 1
7231  14:29:14 gettimeofday({1339590554, 854376}, NULL) = 0
7231  14:29:14 read(25, "CONNECT api.twitter.com:443 HTTP"..., 4095) = 179
7231  14:29:14 gettimeofday({1339590554, 854801}, NULL) = 0
7231  14:29:14 setsockopt(25, SOL_IP, IP_TOS, [0], 4) = 0
7231  14:29:14 epoll_ctl(4, EPOLL_CTL_MOD, 25,
{EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP, {u32=25, u64=25}}) = 0
7231  14:29:14 epoll_wait(4, {{EPOLLOUT, {u32=25, u64=25}}}, 65536, 305) = 1
7231  14:29:14 gettimeofday({1339590554, 862590}, NULL) = 0
7231  14:29:14 write(25, "HTTP/1.0 407 Proxy Authenticatio"..., 3723) = 3723
7231  14:29:14 gettimeofday({1339590554, 868053}, NULL) = 0
7231  14:29:14 read(25, 0xbfdf194d, 65535) = -1 EAGAIN (Resource
temporarily unavailable)
7231  14:29:14 write(5, "1339590554.868     13 10.40.1.25"..., 101) = 101
7231  14:29:14 epoll_ctl(4, EPOLL_CTL_MOD, 25,
{EPOLLOUT|EPOLLERR|EPOLLHUP, {u32=25, u64=9187888528883737}}) = 0
7231  14:29:14 epoll_ctl(4, EPOLL_CTL_DEL, 25, {0, {u32=25,
u64=9187888528883737}}) = 0
7231  14:29:14 close(25)                = 0
7231  14:29:14 epoll_wait(4, {{EPOLLIN, {u32=29,
u64=13446202573979677}}}, 65536, 292) = 1
7231  14:29:15 gettimeofday({1339590555, 99535}, NULL) = 0
7231  14:29:15 accept(29, {sa_family=AF_INET6, sin6_port=htons(40215),
inet_pton(AF_INET6, "::ffff:10.40.1.254", &sin6_addr), sin6_flowinfo=0,
sin6_scope_id=0}, [28]) = 25
7231  14:29:15 getsockname(25, {sa_family=AF_INET6,
sin6_port=htons(8080), inet_pton(AF_INET6, "::ffff:10.40.1.42",
&sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0
7231  14:29:15 fcntl64(25, F_GETFD)     = 0
7231  14:29:15 fcntl64(25, F_SETFD, FD_CLOEXEC) = 0
7231  14:29:15 fcntl64(25, F_GETFL)     = 0x2 (flags O_RDWR)
7231  14:29:15 fcntl64(25, F_SETFL, O_RDWR|O_NONBLOCK) = 0
7231  14:29:15 gettimeofday({1339590555, 101080}, NULL) = 0
7231  14:29:15 accept(29, 0x20f0d910, [28]) = -1 EAGAIN (Resource
temporarily unavailable)
7231  14:29:15 epoll_ctl(4, EPOLL_CTL_ADD, 25,
{EPOLLIN|EPOLLERR|EPOLLHUP, {u32=25, u64=25}}) = 0
7231  14:29:15 epoll_wait(4, {{EPOLLIN, {u32=25, u64=25}}}, 65536, 59) = 1
7231  14:29:15 gettimeofday({1339590555, 160195}, NULL) = 0
7231  14:29:15 read(25, "CONNECT api.twitter.com:443 HTTP"..., 4095) = 263
7231  14:29:15 gettimeofday({1339590555, 160759}, NULL) = 0
7231  14:29:15 epoll_ctl(4, EPOLL_CTL_MOD, 8,
{EPOLLIN|EPOLLOUT|EPOLLERR|EPOLLHUP, {u32=8, u64=8}}) = 0
7231  14:29:15 epoll_wait(4, {{EPOLLOUT, {u32=8, u64=8}}}, 65536, 0) = 1
7231  14:29:15 gettimeofday({1339590555, 161520}, NULL) = 0
7231  14:29:15 write(8, "YR TlRMTVNTUAABAAAAB4IIogAAAAAAA"..., 60
<unfinished ...>
7289  14:29:15 <... read resumed> "YR TlRMTVNTUAABAAAAB4IIogAAAAAAA"...,
4096) = 60
7289  14:29:15 uname({sys="Linux", node="BSSVR03", ...}) = 0



[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux