jueves, 12 de marzo de 2015

FINALIZANDO CONFIGURACION DE SQUID

GENERANDO LOS CERTIFICADOS SSL


# Generando Cache del certificado - creo un script
[root@fircentos6 squid]# vim ssl_crtd.sh
SQUIDSSLCRTDDIR=/usr/lib/squid/ssl_db/
SSLCRTD=/usr/lib/squid/ssl_crtd
$SSLCRTD -c -s $SQUIDSSLCRTDDIR
[ -d $SQUIDSSLCRTDDIR ] && chown squid.squid -R $SQUIDSSLCRTDDIR

[root@fircentos6 squid]# sh ssl_crtd.sh
Initialization SSL db...
Done

# Cambiamos el propietario del certificado cache (solo si es necesario)
[root@fircentos6 squid]# chown squid: /var/lib/squid/ssl_db

# Generamos la Private Key y creamos el certificado (tomado de Internet)
[root@fircentos6 squid]# openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -keyout miempresaCA.pem  -out miempresaCA.pem
Generating a 2048 bit RSA private key
writing new private key to 'miempresaCA.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:PE
State or Province Name (full name) []:Lima
Locality Name (eg, city) [Default City]:Miraflores
Organization Name (eg, company) [Default Company Ltd]:MIEMPRESA
Organizational Unit Name (eg, section) []:SISTEMAS
Common Name (eg, your name or your server's hostname) []:fircentos6.miempresa.com
Email Address []:soporte@miempresa.com

# Generamos el certificado para nuestras PCs.
[root@fircentos6 squid]# openssl x509 -in miempresaCA.pem -outform DER -out miempresaCA.der


# Ingresamos a squid.conf

[root@fircentos6 squid] vim /etc/squid/squid.conf

#################################################################################
#WELCOME TO SQUID
#       ----------------------------
acl snmppublic snmp_community public
#acl redlocal src 10.10.10.0/24
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 1935          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
#
acl CONNECT method CONNECT

##### ACCESO A RED LOCAL
acl redlocal src 11.11.11.0/24

####### ACCESO A SITES x IP RETENCION ###############
acl ipretencion src "/etc/squid/ippagretencion.txt"
acl sitiosretencion url_regex "/etc/squid/sitiospagretencion.txt"

####### ACCESO A SITES MICROSOFT x IP  ###############
acl ipupdatemicrosoft src "/etc/squid/ipupdatems.txt"
acl sitiosupdatems url_regex "/etc/squid/sitiosupdatems.txt"

####### ACCESO SOLO A FACEBOOK ###############
acl ipfacebook src "/etc/squid/ipfacebook.txt"
acl sitiosfacebook url_regex "/etc/squid/sitiosfacebook.txt"

####### ACCESO A PAGINAS AMPLIADAS ###############
acl ipampliados src "/etc/squid/ipampliados.txt"
acl sitiosampliados url_regex "/etc/squid/sitiosampliados.txt"

####### ACCESO SOLO A INTRANET ##############
acl ipintranet src "/etc/squid/ipintranet.txt"
acl sitiosintranet url_regex "/etc/squid/sitiosintranet.txt"

################ ACCESO FULL A INTERNET  #############
acl fullacceso src "/etc/squid/ipfullacceso.txt"

######### LISTA DE EXTENSIONES #############################
acl listadeextensiones urlpath_regex "/etc/squid/listadeextensiones.txt"

############### SITIOS BLOQUEADOS PARA TODOS #########################
acl sitiosbloqueados url_regex "/etc/squid/sitiosbloqueados.txt"

# 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

#########################################
http_access allow fullacceso
http_access allow ipretencion sitiosretencion
http_access allow ipfacebook sitiosfacebook
http_access allow ipampliados sitiosampliados

########### PARA ACTUALIZAR MICROSOFT ################
http_access allow ipupdatemicrosoft sitiosupdatems
http_access allow ipintranet sitiosintranet
http_access deny ipintranet
http_access deny listadeextensiones
http_access deny sitiosbloqueados

http_access allow redlocal
http_access deny all

# Squid normally listens to port 3128
http_port 3128 transparent
https_port 3129 transparent ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/miempresaCA.pem

always_direct allow all
ssl_bump server-first all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
sslcrtd_program /usr/lib/squid/ssl_crtd -s /usr/lib/squid/ssl_db -M 4MB
sslcrtd_children 5

# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?
# ==============================================
cache_mem 256 MB
cache_dir ufs /var/spool/squid 300 16 256
maximum_object_size 4096 KB
cache_swap_low 90
cache_swap_high 100
cache_access_log /var/log/squid/access.log squid
logfile_rotate 5
coredump_dir /var/spool/squid
url_rewrite_children 10

# 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
#================================================
cache_mgr sistemas@miempresa.com
cache_effective_user squid
cache_effective_group squid
error_directory /usr/share/squid/errors/es-pe
visible_hostname fircentos6.miempresa.com
dns_nameservers 8.8.8.8 200.48.225.130

#####################################################
#Verificar

[root@fircentos6 squid] tail -f /var/log/squid/access.log

# Instalamos el certificado a cada PC o por politica AD (solo para IE y Chrome - miempresaCA.der)

Herramientas/Opciones de Internet/contenido/Certificados/Entidades de Certificacion raiz de confianza/Importar/Buscamos miempresa.der/Damos ok a todo
Algunas paginas o conexiones VPN que usan certificados por el puerto 443 pueden no autenticar, por lo general funciona en todo.

lunes, 5 de enero de 2015

Instalación y Configuración de SQUID

Una mala costumbre la mía es instalar el rpm de SQUID (crea el usuario, grupo y el archivo de arranque del servicio del squid ubicado en: “/etc/rc.d/init.d/squid” este archivo lo copiamos en otra carpeta.


Eliminamos el SQUID
[root@fircentos6 init.d]# rpm -q squid
      squid-3.1.10-16.el6.x86_64
[root@fircentos6 etc]# rpm -e squid



COMPILANDO SQUID 3.4.8

Descargando el Programa SQUID[root@fircentos6 temporal]# yum install wget  (instalamos esta herramienta)
[root@fircentos6 init.d]# cd /temporal
[root@fircentos6 local]# wget http://www.squid-cache.org/Versions/v3/3.4/squid-3.4.8.tar.gz
[root@fircentos6 temporal]# yum install libssh2 libssh2-devel penssh libcurl curl libcurl-devel gcc gcc-c++ gcc-objc++ make perl -y
[root@fircentos6 temporal]# yum install openssl libtool -y


Instalando el Programa SQUID


[root@fircentos6 temporal]# tar zxvf squid-3.4.8.tar.gz
[root@fircentos6 temporal]# cd squid-3.4.8
[root@fircentos6 temporal]#./configure --prefix=/usr --exec-prefix=/usr --bindir=/usr/sbin --sbindir=/usr/sbin --sysconfdir=/etc/squid --datadir=/usr/share/squid --includedir=/usr/include --libdir=/usr/lib --libexecdir=/usr/lib/squid --localstatedir=/var --sharedstatedir=/usr/com --mandir=/usr/share/man --infodir=/usr/share/info --x-includes=/usr/include --x-libraries=/usr/lib --enable-shared=yes --enable-static=no --enable-carp --enable-storeio=aufs,ufs --enable-removal-policies=heap,lru --disable-icmp --disable-delay-pools --disable-esi --enable-icap-client --enable-useragent-log --enable-referer-log --disable-wccp --enable-wccpv2 --disable-kill-parent-hack --enable-snmp --enable-cachemgr-hostname=localhost --enable-arp-acl --disable-htcp --disable-forw-via-db --enable-follow-x-forwarded-for --enable-cache-digests --disable-poll --enable-epoll --enable-linux-netfilter --disable-ident-lookups --enable-default-hostsfile=/etc/hosts --with-default-user=squid --with-large-files --enable-mit=/usr --with-logdir=/var/log/squid --enable-http-violations --enable-zph-qos --with-filedescriptors=65536 --enable-gnuregex --enable-async-io=64 --with-aufs-threads=64 --with-pthreads --with-aio --enable-default-err-languages=English --enable-err-languages=English --disable-hostname-checks --enable-underscores --enable-ssl --enable-ssl-crtd;


[root@fircentos6 squid-3.4.8]# make all && echo "Compiled Successfully"
[root@fircentos6 squid-3.4.8]# make install && echo "Installed Successfully"
[root@fircentos6 squid-3.4.8]# make samples (no funciono en esta versión use archivos de la versión anterior)


[root@fircentos6 squid-3.4.8]# make config (crea el servicio – no funciono en esta versión)


Colocamos como propietario de la carpeta “/var/cache/squid/” al usuario y grupo “squid”
[root@fircentos6]# chown squid:squid /var/cache/squid


Creación del SCRIPT del SQUID (ejecutable)
Colocamos el archivo “squid” ejecutable en /etc/rc.d/init.d
Usamos el archivo de arranque “SQUID” de la versión anterior RPM que guardamos.


Cambiamos los permisos por default del script ejecutable
[root@fircentos6 init.d]#  chmod 700 /etc/rc.d/init.d/squid
[root@fircentos6 init.d]#  chmod 755 /etc/rc.d/init.d/squid  (usamos este configuración)
 -rwx------. 1 root root  4548 Oct 30 09:28 squid
 -rwxr-xr-x. 1 root root  4548 Oct 30 09:28 squid


Creamos el acceso directo en la carpeta rc.d
[root@fircentos6 init.d]#  chkconfig --add squid


Hacemos que arranque el servicio squid cuando se enciende el equipo
[root@fircentos6 init.d]# chkconfig --level 345 squid on


Iniciamos el servicio manualmente
[root@fircentos6 init.d]# /etc/rc.d/init.d/squid start
[root@fircentos6 init.d]# service squid start
Starting squid: init_cache_dir ufs... squid


Este archivo (/etc/rc.d/init.d/squid) debe tener la opción de ser ejecutable
 -rwxr-xr-x. 1 root root  3492 Feb 22  2013 squid     (r=4,w=2;x=1,-=0)