> Is there no way to do this securely and in such a way that squid is able > to log the IP address of the user? I mean, all I really want to do is > ask the same questions of the user, just in a slightly different way. It > seems hard to believe that this is so difficult in squid, every coffee > shop and airport in the U.S. has something similar to this in their wifi > hotspots. I am willing to accept that I may not know how it works, so I > will explain what I believe to be the proper authentication steps: You misunderstand the basic HTTP/HTTPS authentication behaviour of web browsers. Over which you have absolutely no control. > > 1) User connects to proxy server > 2) Squid sends an authentication request to the user with a method > similar to .htaccess in Apache (I am using basic ncsa_auth at the > moment, I realize that in digest and NTLM, this different and more secure) *nix that. Squid must check source of 'logged-in' users, redirecting any not found to the web server for 'authentication'. > 3) User submits his information ** to the 'authenticating' web server via the page POST. which gets handled by a out-of-band script which on success then redirects user back to original requested page. > 4) Squid uses ncsa_auth to compare the user's data with a password list > somewhere on the proxy server * nix this too. proxy CANNOT use HTTP authentication for this remember? browsers provide the login box. > 5) If the user is authorized, his IP address is added to a list of > authorized users. If no, he is rejected. ** by the 'authenticating' web server via the POST. Proxy MUST scan source of 'logged-in' users again.. repeat ad infinitum until success or failure blocks the users loop. > > If I am right about that, then all I really want to do can be done by > slightly modifying step 2, and send a complete webpage to the user. > Since I am using basic authentication, I realize that the user's > credentials are sent in plain text, so is it possible to use SSL in this > scenario? The data is only being sent to the proxy server, so there > shouldn't be a problem with any men-in-the-middle. Nope, the browsers behaviour on seeing browser-level credential request is to send credentials or show the box. There is no way you can use any of the *_auth and not have the box. In a way out-of-band authentication is much more secure for the proxy interaction part of the cycle and for all traffic once a user is authorized. But the authentication web server takes up all the usual security holes any other clear-text password mechanism has. Thus, I give away a secure code for the risky bit free, with advice available on it. While charging for the config part. Amos > > > Adrian Chadd wrote: >> You misunderstand how it works. >> >> The browser pops up that box to gather authentication credentials it >> then uses for all subsequent connections to the proxy server. >> >> Using a login page won't magically place authentication credentials >> in the web browser for it to then use for subsequent connections. >> The proxy has to track which IP addresses have had users log >> and then pass them through. >> >> This has security implications which noone really seems to care about... >> >> >> >> Adrian >> >> On Sun, Dec 02, 2007, Taylor Jones wrote: >>> Thanks for the offer, but I'm not looking for a way to login, I'm >>> looking for a way to change the way in which squid lets users log in. >>> As you know, the user authenticates himself via a little pop-up box in >>> his browser. This is fine for most people, but like I said, I'm >>> slightly obsessive, and I would like to design my own webpage through >>> which the users log in. I could write the actual login script myself >>> and implement it with LDAP or MySQL or something like that, but I >>> can't figure out how to make squid show a login page instead of a >>> login box. >>> >>> >>>> On Dec 1, 2007 10:08 PM, Amos Jeffries <squid3@xxxxxxxxxxxxx> wrote: >>>>> Taylor Jones wrote: >>>>>> Hello, >>>>>> >>>>>> I read the guidelines for this mailing list, and I really do hope >>>>>> I'm >>>>>> not asking a question you've all heard a million times. If I am, >>>>>> feel >>>>>> free to berate me, I probably deserve it. >>>>>> >>>>>> I am looking for a way to use a webpage with a GET/POST form to get >>>>>> the user's name and password for authentication instead of the >>>>>> pop-up >>>>>> that the user receives by default. I realize that this is just an >>>>>> aesthetic kind of thing, but I'm nothing if not obsessive, and I >>>>>> hate >>>>>> that I can't tell a user where he is and what he needs to do to gain >>>>>> access to our proxy server. Honestly, this shouldn't be that hard to >>>>>> implement, I just don't really know where I should start. Any help >>>>>> you >>>>>> guys could give me would be much appreciated! >>>>> I'm happy to supply a system. >>>>> http://treenet.co.nz/projects/ >>>>> >>>>> The web login code is freeware. The server and proxy integration is >>>>> not. >>>>> If you are interested get in touch off-list and we can discuss the >>>>> price >>>>> for that part. >>>>> >>>>> Amos Jeffries >>>>> -- >>>>> amos@xxxxxxxxxxxxx >>>>> Treehouse Networks Ltd. >>>>> +64 21 293 4049 >>>>> >> > >