You are on page 1of 9

Taller 17: Servidor Proxy HTTP

################################################################################
####################
1.- Instalar Paquetes
$> yum -y install squid httpd
2.- Configurar Proxy
$> cd /etc/squid
$> vim squid.conf
-------------------------------------------------------------------------------------------#
# Recommended minimum configuration:
#
# 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) machine
s
acl
acl
acl
acl
acl
acl
acl
acl
acl
acl
acl
acl
acl
acl

SSL_ports port 443


SSL_ports port 7071
SSL_ports port 8443
Safe_ports port 80
# http
Safe_ports port 21
# ftp
Safe_ports port 443
# https
Safe_ports port 70
# gopher
Safe_ports port 210
# wais
Safe_ports port 1025-65535 # unregistered ports
Safe_ports port 280
# http-mgmt
Safe_ports port 488
# gss-http
Safe_ports port 591
# filemaker
Safe_ports port 777
# multiling http
CONNECT method CONNECT

# ACLs personalizados
#############################################################
acl gerentes src "/etc/squid/reglas/gerentes.ips"
acl asistentes src "/etc/squid/reglas/asistentes.ips"
acl usuarios src "/etc/squid/reglas/usuarios.ips"
acl limitados src "/etc/squid/reglas/limitados.ips"
acl redessociales url_regex "/etc/squid/reglas/redessociales"
# dominios permitidos
acl listablanca dstdomain "/etc/squid/reglas/listablanca"
# dominios denegados
acl listanegra dstdomain "/etc/squid/reglas/listanegra"
# ips permitidos
acl ipsblancos dst "/etc/squid/reglas/ipsblancos"
# pornos
acl palabrasprohibidas url_regex "/etc/squid/reglas/palabrasprohibidas"
# eje: avi, mp3
acl archivosprohibidos urlpath_regex "/etc/squid/reglas/archivosprohibidos"
# eje: pif, bat
acl archivospeligrosos urlpath_regex "/etc/squid/reglas/archivospeligrosos"

# hora de almuerzo
acl almuerzo time MTWHFS 13:00-14:00
#
# Recommended minimum Access Permission configuration:
#
########### Restriccin de accesos
# Only allow cachemgr access from localhost
http_access allow localhost manager
## denegando acceso a archivos perligrosos
http_access deny archivospeligrosos
## acceso libre a gerentes
http_access allow gerentes
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# aceso libre para todos a la lista blanca e ips blancos
http_access allow asistentes listablanca
http_access allow asistentes ipsblancos
http_access allow usuarios listablanca
http_access allow usuarios ipsblancos
http_access allow limitados listablanca
http_access allow limitados ipsblancos
# todo el mundo tiene redessociales solo una horita en el almuerzo pa que no se
estresen
http_access allow redessociales almuerzo
# asistente se le deniega palabras prohibidas pero tiene redessociales
http_access deny palabrasprohibidas
http_access allow asistentes
http_access deny redessociales
http_access deny listanegra
http_access deny archivosprohibidos
# usuario no tiene redessociales, porno ni baja archivos de hueveo
http_access allow usuarios
http_access deny manager
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
#
# 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 localhost
http_access deny localnet
# And finally deny all other access to this proxy

http_access deny all


# Squid normally listens to port 3128
http_port 3128
cache_mem 1576 MB
maximum_object_size 8192 KB
visible_hostname localhost
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 6200 16 256
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
cache_access_log /var/log/squid/access.log
logfile_rotate 7
error_directory /usr/share/squid/errors/es-pe
#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern ^ftp:
1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern .
0 20% 4320
--------------------------------------------------------------------------------------------

Explicacin de parmetros
################################################################################
############
Definicin de Acls
-------------------------------------------------------------------------acl nombredelacl tipodeacl valor
tipos de acl
------------------------------src
direccion o red de origen
port puerto de destino
proto proceso
dst
direccion o red de destino
url_regex filtro de palabras en el URL
urlpath_regex extension de archivo
dstdomain dominio de destino
proxy_auth verifica autenticacin
time especifica una restriccin horaria

# Red local
8 acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
9 acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
10 acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
11 acl localnet src fc00::/7
# RFC 4193 local private network range
12 acl localnet src fe80::/10
# RFC 4291 link-local (directly plugged) mach
ines
# Puertos que se pueden usar en https
Ej: https://dom.com:7071

14 acl SSL_ports port 443


15 acl SSL_ports port 7071
16 acl SSL_ports port 8443
# puertos que se pueden usar en http
Ej: http://dom.com:70
17 acl Safe_ports port 80
# http
18 acl Safe_ports port 21
# ftp
19 acl Safe_ports port 443
# https
20 acl Safe_ports port 70
# gopher
21 acl Safe_ports port 210
# wais
22 acl Safe_ports port 1025-65535 # unregistered ports
23 acl Safe_ports port 280
# http-mgmt
24 acl Safe_ports port 488
# gss-http
25 acl Safe_ports port 591
# filemaker
26 acl Safe_ports port 777
# multiling http
############# ACLs personalizados
# Perfiles de usuarios por IP
31 acl gerentes src "/etc/squid/reglas/gerentes.ips"
32 acl asistentes src "/etc/squid/reglas/asistentes.ips"
33 acl usuarios src "/etc/squid/reglas/usuarios.ips"
34 acl limitados src "/etc/squid/reglas/limitados.ips"
# regla de palabras que contienen nombres de redes sociales en el url
36 acl redessociales url_regex "/etc/squid/reglas/redessociales"
# dominios permitidos
38 acl listablanca dstdomain "/etc/squid/reglas/listablanca"
# dominios denegados
40 acl listanegra dstdomain "/etc/squid/reglas/listanegra"
# ips permitidos
42 acl ipsblancos dst "/etc/squid/reglas/ipsblancos"
# pornos
44 acl palabrasprohibidas url_regex "/etc/squid/reglas/palabrasprohibidas"
# Archivos prohibidos eje: avi, mp3
46 acl archivosprohibidos urlpath_regex "/etc/squid/reglas/archivosprohibidos"
# Archivos peligrosos eje: pif, bat
48 acl archivospeligrosos urlpath_regex "/etc/squid/reglas/archivospeligrosos"
# hora de almuerzo
50 acl almuerzo time MTWHFS 13:00-14:00
# Only allow cachemgr access from localhost
58 http_access allow localhost manager
## denegando acceso a archivos perligrosos
60 http_access deny archivospeligrosos
61
## acceso libre a gerentes
63 http_access allow gerentes
64
# Deny requests to certain unsafe ports

66 http_access deny !Safe_ports


67
# Deny CONNECT to other than secure SSL ports
69 http_access deny CONNECT !SSL_ports
70
# aceso libre para todos a la lista blanca e ips blancos
72 http_access allow asistentes listablanca
73 http_access allow asistentes ipsblancos
74 http_access allow usuarios listablanca
75 http_access allow usuarios ipsblancos
76 http_access allow limitados listablanca
77 http_access allow limitados ipsblancos
# todo el mundo tiene redessociales solo una horita en el almuerzo pa que no se
estresen
79 http_access allow redessociales almuerzo
# asistente se le deniega palabras prohibidas pero tiene redessociales
81 http_access deny palabrasprohibidas
82 http_access allow asistentes
83 http_access deny redessociales
84 http_access deny listanegra
85 http_access deny archivosprohibidos
# usuario no tiene redessociales, porno ni baja archivos de hueveo
87 http_access allow usuarios
# denegando el proceso local
89 http_access deny manager
# denegando acceso al localhost
104 http_access allow localhost
# denegando acceso a las redes locales
105 http_access deny localnet
# And finally deny all other access to this proxy
108 http_access deny all
# Puerto donde se escucha squid
111 http_port 3128
# Tamao mximo de la cache en la RAM
112 cache_mem 1576 MB
# Mximo tamao de un objeto en la cache
113 maximum_object_size 8192 KB
# Nombre del localhost
114 visible_hostname localhost
# Directorio para el cache (6GB, 16 directorios, 256 subdirectorio por cada dire
ctorio)
117 cache_dir ufs /var/spool/squid 6200 16 256
# Archivo de los logs de acceso
121 cache_access_log /var/log/squid/access.log
# El log rota cada 7 das
122 logfile_rotate 7
# Directorio con los mensajes de error
123 error_directory /usr/share/squid/errors/es-pe

$> cd /etc/squid
$> wget --user=linux --password=ad1estra www.adiestra.pe/centos7/reglas.tgz
$> tar -zxvf reglas.tgz
$> cd reglas
$> vim gerentes.ips
192.168.130.101
$> vim asistentes.ips
192.168.130.102
$> vim usuarios.ips
192.168.130.103
192.168.130.104
$> vim limitados.ips
192.168.130.105
$> systemctl start squid
$> systemctl enable squid
$> systemctl status squid
Ver Logs del Servicio
$> tail -f /var/log/squid/squid.out
Ver logs de Acceso
$> tail -f /var/log/squid/access.log
Ver logs de Acceso de un usuario especifico (ej 192.168.100.232)
$> tail -f /var/log/squid/access.log | grep 192.168.100.232
Hacer pruebas de navegacion poniendole proxy al navegador
Cuando se hace cambios en los archivos de reglas
Ejecutar
$> systemctl restart squid
Agregar al script del firewall el acceso al puerto 3128 tcp
echo "permitiendo acceso al servidor squid"
iptables -A INPUT -p tcp --dport 3128 -m state --state NEW,ESTABLISHED,RELATED j ACCEPT
iptables -A OUTPUT -p tcp --sport 3128 -m state --state ESTABLISHED,RELATED -j A
CCEPT
ec
$> vim /root/firewall-bastion
.
.
$> ./firewall-bastion
SARG
-------------------------------------------------------------------Sarg genera reportes diarios, semanales y mensuales, automaticamente
$> yum -y install gcc gd gd-devel make perl-GD wget httpd pcre-devel
$> cd
$> wget http://garr.dl.sourceforge.net/project/sarg/sarg/sarg-2.3.7/sarg-2.3.7.t
ar.gz
$> tar -xvzf sarg-2.3.7.tar.gz
$> cd sarg-2.3.7/

$> ./configure
$> make
$> make install
$> vim /usr/local/etc/sarg.conf
7: access_log /var/log/squid/access.log
120: output_dir /var/www/sarg
216: date_format e
257 overwrite_report yes
Generar los reportes del momento ejecutando
$> mkdir /var/www/sarg
$> sarg -x
Ver Reportes de Sarg a nivel de toda la red
-----------------------------------------------$> vim /etc/httpd/conf.d/sarg.conf
Alias /sarg /var/www/sarg
<Directory /var/www/sarg>
Options Indexes FollowSymLinks
AllowOverride All
DirectoryIndex index.html
Order deny,allow
Allow from all
</Directory>
$> vim /var/www/sarg/.htaccess
AuthType basic
AuthName "reportes de sarg"
AuthUserFile /usr/local/etc/sarg.user
Require valid-user
$> htpasswd -c /usr/local/etc/sarg.user admin
clave: admin
$> systemctl restart httpd
$> systemctl enable httpd
Agregar al script del firewall el acceso al puerto 80 tcp
$> vim /root/firewall-bastion
.
.
$> ./firewall-bastion
Acceder con
http://192.168.130.X/sarg
Automatizando los reportes de sarg
$> vim /etc/cron.daily/sarg
#!/bin/bash
sarg -d day-1 -w /tmp/sarg.daily -o /var/www/sarg/Daily /var/log/squid/access.lo
g*
$> vim /etc/cron.weekly/sarg
#!/bin/bash
sarg -d week-1 -w /tmp/sarg.weekly -o /var/www/sarg/Weekly /var/log/squid/access

.log*
$> vim /etc/cron.monthly/sarg
#!/bin/bash
sarg -d month-1 -w /tmp/sarg.monthly -o /var/www/sarg/Monthly /var/log/squid/acc
ess.log*
$> chmod 755 /etc/cron.daily/sarg /etc/cron.weekly/sarg /etc/cron.monthly/sarg
Proxy con autenticacion
################################################################################
##########
Comentamos las lneas de usuarios con Ip y agregamos usuarios por autenticacin
$>
31
32
33
34
35
36
37
38
39

vim /etc/squid/squid.conf
#acl gerentes src "/etc/squid/reglas/gerentes.ips"
#acl asistentes src "/etc/squid/reglas/asistentes.ips"
#acl usuarios src "/etc/squid/reglas/usuarios.ips"
#acl limitados src "/etc/squid/reglas/limitados.ips"
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/usuarios
acl gerentes proxy_auth "/etc/squid/reglas/gerentes.usr"
acl asistentes proxy_auth "/etc/squid/reglas/asistentes.usr"
acl usuarios proxy_auth "/etc/squid/reglas/usuarios.usr"
acl limitados proxy_auth "/etc/squid/reglas/limitados.usr"

$> vim /etc/squid/reglas/gerentes.usr


pepito
$> vim /etc/squid/reglas/asistentes.usr
tuxito
$> vim /etc/squid/reglas/usuarios.usr
luser
$> vim /etc/squid/reglas/limitados.usr
windozero
Cerar usuarios del proxy
------------------------------------------------$> htpasswd -c /etc/squid/usuarios pepito
clave: pepito
$> htpasswd /etc/squid/usuarios tuxito
clave: tuxito
$> htpasswd /etc/squid/usuarios luser
clave: luser
$> htpasswd /etc/squid/usuarios windozero
clave: windozero
$> systemctl restart squid
Cerrar navegador y abrir nuevamente
probar localmente con direferentes usuarios

Proxy con zentyal


################################################################################
########
Ir a Gestion de Software --> Componentes de Zentyal
Seleccionar Antivirus y Http Proxy

Ir Estado de los Mdulos y Habilitar Antivirus, Cortafuegos y Proxy


Ahora tenemos a la Izquierda la Opcin Proxy Http
------------------------------------------------Ir a Configuracin General
Habilitar Single Sign On (Kerberos)
Cambiar --> Guardar Cambios
Ir a la Opcin Lista por Categoras
Vamos a descargar shalalist de
http://www.shallalist.de/Downloads/shallalist.tar.gz
Importarlo como Lista de categorias
Aadir Nuevo
Nombre: Shallalist
Seleccionar Archivo: ubicar el archivo shallalist.tar.gz
Click en Aadir
Guardar Cambios
Crear ahora Perfiles de Filtrado
Aadir Nuevo --> Nombre: gerente
Aadir Nuevo --> Nombre: usuarios
Seleccionar perfil gerente --> configuracion
Usar Antivirus
Categorias de Dominios: Denegar warez y spyware
Guardar Cambios
Seleccionar perfil usuarios --> configuracion
Usar Antivirus
Categorias de Dominios: Denegar porn, socialnet, warez y spyware
Guardar Cambios
Crear Reglas de Acceso
---------------------------------------------------------------Borrar regla de acceso permitir todo
Crear nueva regla de acceso
Origen: Grupos de Usuarios --> sistemas
Desicion: Aplicar Perfil de filtrado: usuarios
Los usuarios del dominio ADS podran navegar con proxy
El proxy no pide autenticacion a los usuarios del dominio que han iniciado una s
esin

You might also like