Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We have need for certain computers to have their Internet access limited to a list of sites, denying access to all others (white-listing).

Some of these sites use HTTPS, so the solution needs to support both HTTP and HTTPS.

I'm not super concerned about people bypassing the filter mechanism, as this is not really for malicious behavior but more for blocking the accidental malware click that has happened in the past.

I'd rather this be something that is installed centrally, rather than the list having to be maintained on each computer. We currently have a Linux Server that can be used.

I'm not opposed to buying another box, like some sort of firewall, given two conditions:

  1. It doesn't require a large annual subscription fee -- since we are creating the white list ourselves we don't care about a provider's list of appropriate websites.
  2. It allows for a reasonably high list of white-listed sites. I read the manual for one such box but realized they only allowed 64 sites in the white list, which is pretty small considering some sites have several domains associated with them.

I started setting up squid for this purpose and it seems decent, although a web interface would be nice for adding to the white list. Is there a better solution?

share|improve this question
    
Do you not have a proxy already in place? How are your users getting out to the internet? not directly surely? –  Chopper3 Jan 1 '12 at 21:17
    
No proxy currently -- outbound through the router. –  Nick Jan 1 '12 at 21:54

5 Answers 5

Have you tried a specialised/custom version of Linux/BSD? pfSense would be one example. Endian firewall would be another. Since they rely on Squid as their backend theoretically everything that you are currently doing should be supported. Else have you invesitagated frontends for Squid such as Webmin or DansGuardian?

share|improve this answer

You just need a proxy for everyone to go through, one that allows for rules such as you mention. You should also look for one that caches too as it'll help your users and optimise bandwidth. I'd suggest Squid.

share|improve this answer
up vote 1 down vote accepted

I ended up using DNSMasq to create a whitelist. The advantage of this is that it works fine with both HTTP and HTTPS, and requires minimal configuration on each computer -- just setting their DNS server to that of the server running DNSMasq. DNSMasq is configured to reject all DNS requests except ones that have been whitelisted -- those it forwards on to the router which has its own DNS server.

The downside of this approach is that this filter could easily be overridden by someone changing the DNS server address, using a proxy, or going directly to an IP address. In my application, this is of low risk.

I followed this guide to configuring DNSMasq as a whitelist.

share|improve this answer

You can use "WFilter free" free web filter(windows freeware). It supports website white list for both http and https websites.

Two steps:

  1. Setup a mirroring port in your switch.

  2. Connect the WFilter computer to the mirroring port.

share|improve this answer

Squid is the easy option - as other also suggested.

ufdbGuard is the easist option for a URL filter. It is Open Source Software and can be downloaded from ufdbGuard on SourceForge and ufdbGuard on URLfilterDB.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.