Book Image

Squid Proxy Server 3.1: Beginner's Guide

Book Image

Squid Proxy Server 3.1: Beginner's Guide

Overview of this book

Squid Proxy Server enables you to cache your web content and return it quickly on subsequent requests. System administrators often struggle with delays and too much bandwidth being used, but Squid solves these problems by handling requests locally. By deploying Squid in accelerator mode, requests are handled faster than on normal web servers making your site perform quicker than everyone else's! Squid Proxy Server 3.1 Beginner's Guide will help you to install and configure Squid so that it is optimized to enhance the performance of your network. The Squid Proxy Server reduces the amount of effort that you will have to put in, saving your time to get the most out of your network. Whether you only run one site, or are in charge of a whole network, Squid is an invaluable tool that improves performance immeasurably. Caching and performance optimization usually requires a lot of work on the developer's part, but Squid does all that for you. This book will show you how to get the most out of Squid by customizing it for your network. You will learn about the different configuration options available and the transparent and accelerated modes that enable you to focus on particular areas of your network. Applying proxy servers to large networks can be a lot of work as you have to decide where to place restrictions and who should have access, but the straightforward examples in this book will guide you through step by step so that you will have a proxy server that covers all areas of your network by the time you finish the book.
Table of Contents (20 chapters)
Squid Proxy Server 3.1 Beginner's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – writing a helper program


So, let's write a dummy Python script that can act as a Basic authentication helper:

#!/usr/bin/env python

import sys
 
def validate_credentials(username, password):
  """
  Returns True if the username and password are valid. 
  False otherwise
  """
  # Write your own function definition.
  # Use mysql, files, /etc/passwd or some service you want
  return False

if __name__ == '__main__':
  while True:
    # Read a line from stdin
    line = sys.stdin.readline()
    # Remove '\n' from line
    line = line.strip()

    # Check if string contains two entities
    parts = line.split(' ', 1)
    if len(parts) == 2:
        # Extract username and password from line
        username, password = parts
        # Check if username and password are valid
        if validate_credentials(username, password):
            sys.stdout.write('OK\n')
        else:
            sys.stdout.write('ERR Wrong username or password\n')
    else:
        # Unexpected input...