SquidTL

Introduction

SquidTL is a software created for administrators that want to limit usage of particular web sites. Because HTTP is a stateless protocol, it's very difficulty to calculate the right amount of visits by an user, so SquidTL check the amount of connections originated by each proxy user.
For example, if you own a library internet point and don't want guests spend all your time on Facebook, you can limit all facebook domains to 'n' connections per hour. And, if an user go over, he will be redirect to a 'blocked' page and his attempt will be recorded for statistical pourposes (that let administrator to fine-tune triggers).
Moreover you can define time range validity for rules, so you can specify different profiles per-week based.
To sum up, you can safely try SquidTL to regulate your public internet point usage !

Rules syntax

All rules use PCRE (since v0.0.7) to match IP, IP ranges and domains: you can define IP ranges or domains with the semplicity and flexibility of regular expressions !

Requirements

SquidTL require a MySQL DB, with developers headers and libraries for compiling. Also libXML2 is required for configuration parsing and, if you want to use the fantastic PHP web gui, you need also a web server (like Apache) and PHP.
Since version 0.0.7 you also need PCRE library (SquidTL works fine with v8.02) and XMLRPC-C if you want Domain categorizing and other funny features.
With Domain Categoryzing you can share rules with other SquidTL installations around the world and, since v0.0.9, you can manage your own xmlrpc server. Simply, SquidTL ask the XML-RPC server if know something about a domain and expect CATEGORIES that belongs (ie. google.com belongs to SEARCHENGINE, facebook.com to SOCIALNETWORK and so on). With this method you can define a rule about all SOCIALNETWORKS that will be dinamically updated !

Flow

To understand how SquidTL work, take a look to the workflow (obsolete, since 0.0.7 there are some sightly differences) and how contexts works:

All actions will be done using the powerfull of MySQL DB. SquidTL was written in C for performances and stability so you can expect high throughput with low system resources.

GUI Screenshots

Installation

Get sources squidtl-0.1.0.tar.gz and follow the instructions inside INSTALL file.
If you are upgrading from 0.0.x to 0.0.7 OR 0.0.8 YOU NEED TO DROP YOUR DB (sorry, you will loose all you rules...) AND RECREATE FROM squidtl.sql ! If you have 0.0.7 and want to try 0.0.8, there's no need to upgrade DB.

Changelist

Wish List
0.1.0 - 07 May 2010
0.0.9 - 04 May 2010
0.0.8 - 30 Apr 2010
0.0.7 - 28 Apr 2010
0.0.6 - 21 Dec 2009
0.0.5 - 15 Dec 2009
0.0.4 - 9 Dec 2009
0.0.3 - 4 Dec 2009
0.0.2.1 - 2 Dec 2009
0.0.2 - 1 Dec 2009
0.0.1 - 24 Nov 2009
First public release. BETA.

Support

Send me an e-mail or become our Fan on Facebook: http://www.facebook.com/pages/SquidTL/201804393966.
Also you can follow us on Twitter.

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

Do you like SquidTL ? Make me a donation !

Guestbook