199 lines
14 KiB
Plaintext
199 lines
14 KiB
Plaintext
|
|
Episode: 227
|
||
|
|
Title: HPR0227: Local Squid
|
||
|
|
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr0227/hpr0227.mp3
|
||
|
|
Transcribed: 2025-10-07 14:22:29
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
So
|
||
|
|
Hello there ladies and gentlemen, my name is Ken Fallon and today we will be talking
|
||
|
|
about Squid Proxy for local use.
|
||
|
|
Now first of all what is Squid, it's a free open source proxy server, what's a proxy
|
||
|
|
server, well that's nothing more than a server that clients and an internal network will
|
||
|
|
go through to have their request forwarded out onto the internet and the reason you might
|
||
|
|
want to do that is in a corporate IT environment you typically will block access to the internet
|
||
|
|
so that worms and viruses and all that sort of good stuff can get out if a PC is infected,
|
||
|
|
they can get straight out to the internet.
|
||
|
|
So they go through a proxy server that may or may not require a username and password
|
||
|
|
to get out and then on the proxy server, dangerous URLs can be blocked or more than likely
|
||
|
|
has been used for in the past is to monitor employee access so that they're not waste
|
||
|
|
in time on the internet.
|
||
|
|
That of course is illegal in some countries specifically Germany so you want to check
|
||
|
|
the licensing laws in your country when applying a proxy server, however that is not why
|
||
|
|
I would use a proxy or why what spawned me to install an proxy in the first place.
|
||
|
|
There's really two reasons, so first of all is getting a secure connection to the internet
|
||
|
|
when you're at a hostile location and the other one is getting around URL obfuscation
|
||
|
|
or hiking of URL, well let's talk about the first one first.
|
||
|
|
So say for example you've got a laptop and you're at an internet cafe and you want to
|
||
|
|
securely check your email or you want to do some banking.
|
||
|
|
Now there's no idea who you have no idea who's listening on that connection.
|
||
|
|
So what you typically do, excuse me, what you would typically do is you would set up a
|
||
|
|
proxy server on your home server, you would set up a secure shell tunnel into that server
|
||
|
|
and then you would redirect your browser to use your local host and you would forward
|
||
|
|
a port over the SSH tunnel into your browser, into your server at home.
|
||
|
|
There's been a few episodes on that but a few podcasts on that, I don't think there's
|
||
|
|
been any on the HPR network but I'll give you all what you need to do.
|
||
|
|
First of all you need to install it and that is get install squid.
|
||
|
|
So then you would create, once you've done that you've got a squid proxy listening on
|
||
|
|
the default port of 3128 and I think by default and most distributions it allows the local
|
||
|
|
host to connect out specifically for this reason but I won't let anything else.
|
||
|
|
So then you drop to a shell and you would type SSH space minus capital L, space 3128
|
||
|
|
colon local host colon 3128 and then use the name add server and whatever other options
|
||
|
|
that you have.
|
||
|
|
What that will do is it will open a SSH shell to your home server and it will say anything
|
||
|
|
coming in on port 13128 on this piece in my laptop, PC in the hostel environment, you
|
||
|
|
encrypt all the traffic and you pump it out the other side of the tunnel and you dump
|
||
|
|
it up to the local local port of 3128 on your server.
|
||
|
|
So then you open up a browser and you go into your browser settings and you set the
|
||
|
|
proxy server to be local host and the port to be 3128 and in Firefox you'll set all
|
||
|
|
the, use this for all the other ports.
|
||
|
|
There's a nice little add-on called quick proxy I think for Firefox that will allow you
|
||
|
|
just quickly turn on and turn off the proxy server.
|
||
|
|
Okay, so that's handy.
|
||
|
|
You could also use that theoretically if your company blocks, blocks access to the internet
|
||
|
|
but they do allow SSH out, I would strongly advise you not to do them that because the
|
||
|
|
traffic on an SSH tunnel can be examined with deep packet analysis and also it's kind
|
||
|
|
of unprofessional so I would recommend do your work at home unless if your company has
|
||
|
|
specific exemptions that allow you to do that, do your work at home, otherwise just don't
|
||
|
|
do it, there's no point but near job at risk.
|
||
|
|
Now the other reason, the real reason that I installed this was to get around URL upsthucations
|
||
|
|
so word that I don't like so we're referring that to that as URL hiding.
|
||
|
|
So what they tried to do is to try to make it very difficult for you to work out what
|
||
|
|
the links are on the page.
|
||
|
|
So they kind of do that too is, first of all they'll use a whole go of tricks so if you
|
||
|
|
go to www.pchelp.pc-help.org you'll forward such upscure.htm you'll get a list of tricks
|
||
|
|
but it's also very common now to use javascript to do that so they'll have several include
|
||
|
|
files and some functions and they'll generate the URL based on different parts of the
|
||
|
|
in different locations of the file and then they'll put it all together and they also quite
|
||
|
|
common to use things like timed URLs where the URLs only remain valid for a certain period
|
||
|
|
of time and the logic is that by the time you figured out, by the time you figured out
|
||
|
|
what the URL is, the URL is no longer valid.
|
||
|
|
So all that does matter amount of hill beans because if you pipe your redirect your browser
|
||
|
|
to use a local host on either on a remote machine or use the squid proxy either on a local
|
||
|
|
machine or on a remote machine you can just tail the squid logs and your browser will
|
||
|
|
have done all the hard work for you and that will simply give you a list of guest commands
|
||
|
|
or posts or whatever typically to get commands with the URLs all reconstructed for you and
|
||
|
|
you can copy and use a copy them and use wget to get whatever you want.
|
||
|
|
Now why would somebody be bothered to do that?
|
||
|
|
First of all, most common one reason is to prevent the loss of their intellectual property
|
||
|
|
and the other reason I have seen is to do restrictions on streaming servers.
|
||
|
|
So let's deal with the first one first.
|
||
|
|
An example of that would be a cycle like called marked platz.nl, doesn't know, which
|
||
|
|
is a Dutch version of eBay, they're actually owned by eBay but they were bought over.
|
||
|
|
And what they do is they put a, for some reason they don't want you to take while they
|
||
|
|
don't want people to create databases of stuff on marked platz.
|
||
|
|
So what they do is they hide the URLs and they put a transparent gif file over all the
|
||
|
|
images.
|
||
|
|
So if you're looking to create a scraper or something that would go out and you know check
|
||
|
|
the website for you know new deals or whatever.
|
||
|
|
So they have it so that they, if you right click on the image, it, they have a transparent
|
||
|
|
gif over the image of say, you know, somebody selling a telephone or whatever.
|
||
|
|
They have a transparent gif over the image itself and when you right click on that and go
|
||
|
|
follow save as you get the transparent gif because that's over.
|
||
|
|
You can, it's also on YouTube but for a different reason and that is that YouTube uses a nice
|
||
|
|
trick where they have all the graphics on the page are sent down as one single image.
|
||
|
|
So the YouTube logo, the up arrow down arrow keys, the stars, all the stuff that you
|
||
|
|
see in a typical YouTube page is generated and sent down as one image.
|
||
|
|
And then they use CSS to show certain parts of that image on the web page.
|
||
|
|
I thought that was pretty cool.
|
||
|
|
To get on to the other reason why they would use stream, they would you hide the URLs
|
||
|
|
is for streaming servers.
|
||
|
|
So you have regional licenses in place where TV traditionally has been broken off onto
|
||
|
|
regions.
|
||
|
|
And for example, if you want the latest episode of desperate housewives, for instance,
|
||
|
|
the Republic of Ireland would have a different deal done than with the island of England.
|
||
|
|
And they would have a different deal done with the Netherlands.
|
||
|
|
So they would release it at different times and the charge different amounts depending
|
||
|
|
on where you are and where you live and your market segment, bloody, bloody, bloody.
|
||
|
|
However, that doesn't hold up any water in this internet age where people can connect
|
||
|
|
into machines and where people can connect from anywhere in the world to your streaming
|
||
|
|
service.
|
||
|
|
So to get around that, they use a service called GOIP and that's at www.maxmind.com and if
|
||
|
|
you go to slash app for slash support, you'll see that they actually provide free, and
|
||
|
|
I don't know what the license is.
|
||
|
|
I don't think it's GPL, but they provide modules for, let me have a look here.
|
||
|
|
Various different, various different programming languages that provide a module for Apache.
|
||
|
|
They provide a C-Lower, Bridge, Java, Class, Pascal, Per module, PHP module, Python and Ruby.
|
||
|
|
They also provide Windows APIs, Pascal and various different things.
|
||
|
|
And they also supply the GOIP country database in various different formats, CBS, MySQL,
|
||
|
|
Oracle and that sort of thing.
|
||
|
|
And they allow you to use the country data for free.
|
||
|
|
They won't catch you that you need to automate the downloading of it yourself and they don't
|
||
|
|
provide city or regional level or company name level, which they do do for, you know,
|
||
|
|
to sign up to the service button.
|
||
|
|
This is used by a lot of TV streaming people to block access to the playlists for the
|
||
|
|
streaming service.
|
||
|
|
Interesting side note is that quite often the streaming service themselves are proprietary
|
||
|
|
blobs and they don't support GOIP and to put in firewall rules on firewalls or whatever
|
||
|
|
slows down the streaming service.
|
||
|
|
So quite often if you get the URL somehow, for example, having a proxy server hypothetically
|
||
|
|
in your brother's house and you can use the Squid proxy over there to get the real audio
|
||
|
|
file and you can look at that to get what the real audio stream actually is and hypothetically
|
||
|
|
purely for research and reference purposes.
|
||
|
|
You open up a player from say another country, for example, the Netherlands, you could hypothetically
|
||
|
|
stream directly from the hypothetical servers that might hypothetically be in RTE.i.e.
|
||
|
|
However, that of course would probably be illegal.
|
||
|
|
Well, you're moral.
|
||
|
|
Anyway, to install Squid, we did aptitude install Squid and here's a quick technical tip
|
||
|
|
for working with config files.
|
||
|
|
Now the Squid config file is very much like the traditional Unix or Linux config file
|
||
|
|
in that it's got a lot of commons in it.
|
||
|
|
It explains that the config file itself is self-documenting in that the documentation
|
||
|
|
and on the values are in the config file and the documentation is typically commented
|
||
|
|
out with the oct-torp hash character.
|
||
|
|
And a quick tip that I've used here is how to filter out the common files and filter
|
||
|
|
out the blank line files so that if you know the configuration of a config file rather
|
||
|
|
than it would be in 16 pages long, you can cut it down to just the meeting bit it was
|
||
|
|
over and get the very essence of all commands that are actually been run.
|
||
|
|
So for the Squid config file, which is kept on ETCSquidSquid.conf, what you would do is you
|
||
|
|
would run the command grip, space minus v and the v says rather than displaying all the
|
||
|
|
files that you've found, it says don't display these files that don't display the lines
|
||
|
|
that correspond to the this search entry, excuse me.
|
||
|
|
So we have grip, space minus v, double quotes and we have the shark character which is the
|
||
|
|
circumflex accent and it's typically over the six in the US keyboard, I'll include a link
|
||
|
|
to that.
|
||
|
|
Some people have referred to it as a Chinese hat before.
|
||
|
|
Then you have the octetork character and what that is is the tic-tac-toe, what incorrectly
|
||
|
|
is called the pound sign and the double quotes space ETCS for slash ETC for slash squid for
|
||
|
|
slash squid.conf and then pipe that into grip, space min v, space double quotes, the Chinese
|
||
|
|
hat again and the dollar sign and the double quotes and what that does, the first one says
|
||
|
|
look for any hash marks that are at the beginning of the line and the second one says look for
|
||
|
|
any beginning in the line and the end of the line where there's no space between them,
|
||
|
|
essentially a carriage return line and don't show those.
|
||
|
|
So essentially then you get a nice list of just the comments in the file.
|
||
|
|
So I'll include links in the show notes to that and what actually if anyone is looking
|
||
|
|
for an idea to do a hacker public radio episode, deviate and doesn't want to do a LPI certification
|
||
|
|
module, although I don't know why because all the documentation is there all you have
|
||
|
|
to do is do it and then a topic on regular expressions would be very cool because while
|
||
|
|
the syntax changes more or less a little bit between Pearl and different websites and
|
||
|
|
bash and whatever, sorry, Pearl and bash and the syntax changes between programs and the
|
||
|
|
ideas more or less remain the same.
|
||
|
|
Okay, the important config changes that you need to make in that file are ACL local holes
|
||
|
|
source 172.0.0.1 for such 32.
|
||
|
|
More than likely that will be allowed and to allow access from the local holes you need
|
||
|
|
to have the line HTTP underscore access allow space local host also uncommented.
|
||
|
|
Now if you want to have a proxy server on serving the machines on your local network and
|
||
|
|
use private net networking, private subnets, you also need to have the line's ACL local
|
||
|
|
net space source space and then you have 3 10.0.0.0 for such as 172.16.0.0 for such 12 192.168.0.0.0 for such 16,
|
||
|
|
whichever one of those you're using uncommented probably already is, then you need to scroll
|
||
|
|
down to the little bit further in your file and look for another line which says HTTP underscore
|
||
|
|
access space allow space local net and once you do that save that file,
|
||
|
|
you can restart squid by calling ETC forward slash in a D forward slash squid space restart and
|
||
|
|
then you will be able to proxy out from the internal network. Now one good thing about squid is
|
||
|
|
for some reason you're not allowed out, you will still see a squid error message coming up
|
||
|
|
in your browser so you'll know that that part is working. If you don't see anything then your tunnel
|
||
|
|
is probably not working correctly or you can't communicate with your proxy server. So
|
||
|
|
that's a good good way to know where they are lies. If you don't see anything,
|
||
|
|
it's a tunnel issue communication with the proxy server. If you see or on the proxy server,
|
||
|
|
you know it's a permissions issue on the proxy server. Another thing that you can do is go to
|
||
|
|
whatismyip.com or ipchicken.com or moremyip.com and you will be able to see that your IP address has
|
||
|
|
changed to the IP address of your machine at all. Okay ladies and gentlemen, well that's been
|
||
|
|
another episode of Hacker Public Radio. It's actually the fourth time that I've recorded. I tried
|
||
|
|
to record it this morning on the train platform. I'm going to work on my bicycle and on the train
|
||
|
|
following advice from Davids and that did not work out at all. Okay, I hope you found something
|
||
|
|
interesting on that. I am available as always. The email address can.fanon at gmail.com. You can also
|
||
|
|
see comments on Hacker Public Radio.org for this episode or it should also be available on my blog
|
||
|
|
canfanon.com. Feel free to send me your comments and suggestions and that's all I have to say for now
|
||
|
|
and I wish you all a very good day. Thank you for listening to Hacker Public Radio.
|
||
|
|
HPR is sponsored by caro.net so head on over to C-A-R-O-DOT-E-C for all of us in the
|