martes, 14 de abril de 2015

Servidor Squid en Debian Wheezy


Vamos a configurar el servicio Squid en Debian Wheezy

Squid es un servidor proxy para web con caché. Es una de las aplicaciones más populares y de referencia para esta función,software libre publicado bajo licencia GPL. Entre sus utilidades está la de mejorar el rendimiento de las conexiones de empresas y particulares a Internet guardando en caché peticiones recurrentes a servidores web y DNS, acelerar el acceso a un servidor webdeterminado o añadir seguridad realizando filtrados de tráfico.

1. Instalación

# aptitude install squid3

2. La configuración de squid3 se almacena en el archivo /etc/squid3/squid.conf.

3. Squid3 acepta, por defecto, conexiones en el puerto 3128.  Sin embargo, esto puede modificarse colocando otro puerto por ejemplo el conocido 8080.

etc/squid3/squid.conf
#[...]

# Squid normally listens to port 3128
http_port 3128

#[...]

http_port 3128 --> Puerto por el cual escuchará las peticiones el Proxy.

4. Por seguridad, squid3 sólo responderá a pedidos de la red local o en el propio servidor. Esta restricción es conseguida definiendo una lista de control de acceso oACL (Access Control List) (acl plataforma.linux.org.ve src 192.168.10.0/24) y autorizando el acceso sólo a los sistemas incluidos en esa lista (http_access allow plataforma.linux.org.ve):

etc/squid3/squid.conf
# [...]

#  TAG: acl
#       Defining an Access List

# [...]

#Default:
# acl all src all
#
#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16        # RFC1918 possible internal network
#acl localnet src fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl plataforma.linux.org.ve src 192.168.10.1/24

# [...]

5.  Definición de permisos de acceso a la sección http_access:

/etc/squid3/squid.conf
# [...]

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
http_access allow localhost

http_access allow plataforma.linux.org.ve

# And finally deny all other access to this proxy
http_access deny all

# [...]

6. Modificamos el  tamaño total de la cache de squid3 a un valor adecuado ejemplo 2048Mb:

# [...]

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid3 100 16 256
cache_dir ufs /var/spool/squid3 2048 16 256

# [...]

7.  También podemos definir la identificación de nuestro servidor proxy

# [...]

#  TAG: visible_hostname
#       If you want to present a special hostname in error messages, etc,
#       define this.  Otherwise, the return value of gethostname()
#       will be used. If you have multiple caches in a cluster and
#       get errors about IP-forwarding you must set them to have individual
#       names with this setting.
#Default:
# visible_hostname localhost
visible_hostname proxy.plataforma.linux.org.ve

# [...]

visible_hostname proxy.plataforma.linux.org.ve ---> Nombre del Servidor Proxy

8. De manera opcional, también se puede configurar el límite máximo de los objetos que se guarden en el cache, al definir el parámetro maximum_object_size con un valor en Kbytes:

/etc/squid3/squid.conf
# [...]

#  TAG: maximum_object_size     (bytes)
#       Objects larger than this size will NOT be saved on disk.  The
#       value is specified in kilobytes, and the default is 4MB.  If
#       you wish to get a high BYTES hit ratio, you should probably
#       increase this (one 32 MB object hit counts for 3200 10KB
#       hits).  If you wish to increase speed more than your want to
#       save bandwidth you should leave this low.
#
#       NOTE: if using the LFUDA replacement policy you should increase
#       this value to maximize the byte hit rate improvement of LFUDA!
#       See replacement_policy below for a discussion of this policy.
#Default:
# maximum_object_size 4096 KB
maximum_object_size 20480 KB

# [...]

9. Reiniciamos el servicio squid

# /etc/init.d/squid3 restart

Con esto funcionara nuestro servidor squid básico hay una serie de funciones que se le pueden agregar como por ejemplo bloqueo de paginas y usuarios a continuación mostraremos como hacerlo.

Creando bloqueos

1. Crearemos una carpeta llamada bloqueos y en ella 2 archivos donde colocaremos paginas seguras y paginas a bloquear

Crearemos una carpeta llamada bloqueos
# mkdir /etc/squid3/bloqueos

Crearemos el primer archivo y lo llamaremos sitios-seguros
# nano /etc/squid3/bloqueos/sitios-seguros

Una vez creado el archivo, lo editamos y colocamos las paginas a la cual pueden tener acceso
#/etc/squid/bloqueos/sitios-seguros    

www.banco.com
www.otros.com
www.otros.com

guardamos y cerramos el archivo

Ahora...

Crearemos el segundo archivo y lo llamaremos sitios-denegados
# nano /etc/squid3/bloqueos/sitios-denegados

Una vez creado el archivo, lo editamos y colocamos las paginas a las que no se tendrán acceso
#/etc/squid/bloqueos/sitios-denegados

www.youtube.com
www.twitter.com
www.facebook.com

guardamos y cerramos el archivo

Ya tenemos los sitios que tendrán acceso y los sitios que están denegados el acceso, ahora se van a crear los usuarios de la red

2. Vamos a crear los usuarios para nuestra red

Crearemos una carpeta llamada usuarios y en ella 2 archivos donde colocaremos jefes y usuarios

Crearemos una carpeta llamada usuarios
# mkdir /etc/squid3/usuarios

Crearemos el primer archivo y lo llamaremos jefes
# nano /etc/squid/usuarios/jefes

Una vez creado el archivo, lo editamos y colocamos las IP de los equipos de los jefes
/etc/squid/usuarios/jefes     

192.168.10.2
192.168.10.3
192.168.10.4 

Crearemos el segundo archivo y lo llamaremos usuarios
# nano /etc/squid/usuarios/usuarios

192.168.10.20
192.168.10.21
192.168.10.22

Con esto tenemos un bloqueo básico ahora debemos aplicar nuestras reglas en el archivo de configuración del squid

#Recommended minimum configuration:
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32

#configuracion de sitios
acl sitios-seguros url_regex "/etc/squid/bloqueos/sistios-seguros"
acl sitios-denegados url_regex "/etc/squid/bloqueos/sistios-denegados"

Lista de control de acceso llamada “sitios-seguro y sitios-denegados” de tipo url_regex  esta ubicado en un archivo con las paginas que queramos acceder o negar.

#configuracion de usuarios
acl jefes    src    "/etc/squid3/usuarios/jefes"
acl usuarios    src    "/etc/squid3/usuarios/usuarios"

ahora habilitaremos las reglas para controlar la navegación por los sitios seguros y la denegación por los sitios-denegados

#
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#

#mis reglas#
http_access allow sitios-seguros
http_access allow jefes
http_access allow usuarios !sitios-denegados
    
Por medio del comando http_access y el nombre de la lista de control de acceso podenos permitir(allow) o denegar (deny) el servicio a dichas listas.

Ahora reiniciamos el servicio squid para que funcionen las reglas creadas
# /etc/init.d/squid3 restart

No hay comentarios:

Publicar un comentario en la entrada