configuracion del Squid como proxy en Debian




 Squid



primero que nada instalamos squid

apt-get install squid

 despues nos situamos en el directorio /etc/squid
y creamo tres ficheros [inocentes, permitidos y denegados]


luego los editamos
ej


en permitidos: ponemos todas las ip que le vamos a dar derecho a la conexion 
en denegados: las url de aquellas paguinas que queremos denegar
en inocentes: aquellas url de sitios que a veces tienen palabras las cuales se encuentran denegadas : ej: www.sexoseguro.com


despues de haber hecho esto procedemos a la configuracion del fichero [squid.conf]

nano /etc/squid/squid.conf

mi conf de squid debes cambiar los directorios padres y los de tu dominio
 aqui esta mi squid





#OPTION NETWORK#
#-----------------------------------------------------------------------------#

# Puerto donde se va a escuchar el Squid.
http_port 3128
icp_port 3130

cache_peer proxy.pri.jovenclub.cu parent 3128 0 default login=PASS
cache_peer_domain proxy.(dominio padre)
cache_mem 16 MB
cache_dir ufs /var/spool/squid/00 1024 16 256
cache_dir ufs /var/spool/squid/01 1024 16 256
cache_dir ufs /var/spool/squid/02 1024 16 256
cache_dir ufs /var/spool/squid/03 1024 16 256
client_netmask 255.255.255.255
dead_peer_timeout 10 seconds
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
auth_param basic children 5
# auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/claves
error_directory /usr/share/squid/errors/Spanish
authenticate_ttl 1 hour
hierarchy_stoplist cgi-bin ?
cache_swap_low 90
cache_swap_high 95
maximum_object_size 4096 KB
debug_options ALL,1
quick_abort_min 16 KB
quick_abort_max 16 KB
quick_abort_pct 95
negative_ttl 5 minutes
positive_dns_ttl 6 hours
negative_dns_ttl 5 minutes
append_domain .(tudominio.dominio padre)
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
#ACCESS CONTROL
#-----------------------------------------------------------------------------
#Defaults
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255


#acl password proxy_auth REQUIRED

acl local-server dstdomain .(tudominio.dominio padre)

acl permitidos src "/etc/squid/permitidos"
acl denegados url_regex "/etc/squid/denegados"
acl inocentes url_regex "/etc/squid/inocentes"
acl msn_messenger req_mime_type -i ^application/x-msn-messenger$
acl skype_IP urlpath_regex ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
acl SSL_ports port 443 6667
acl Safe_ports port 80
acl Safe_ports port 443
acl Safe_ports port 21
#acl Safe_ports port 70
#acl Safe_ports port 210
acl Safe_ports port 1025-65535
#acl Safe_ports port 280
acl Safe_ports port 6667
acl Safe_ports port 488
#acl Safe_ports port 591
#acl Safe_ports port 777
acl CONNECT method CONNECT

#FIN DE LAS ACL
#-------------------------------------------------------------------------------
#Default configuration
http_access allow local-server
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#-------------------------------------------------------------------------------
#Aqui defino la politica de las ACL
#INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
http_access allow localhost

###############################################################################
#Acceso a las maquinas a la navegacion
###############################################################################
http_access allow all permitidos
http_access deny denegados
http_access allow inocentes
http_access deny all
http_reply_access allow all
icp_access allow all


#Fin de la Politica
#------------------------------------------------------------------------------
#MISCELANEAS
#------------------------------------------------------------------------------
auth_param basic realm [Bienvenidos a ]
cache_mgr [tu email]
visible_hostname proxy.(tudominio.dominio padre)
logfile_rotate 10

#emulate_httpd_log on
#Aceleracion
#httpd_accel_host virtual
#httpd_accel_port 0
#httpd_accel_with_proxy on

#Contrasena
cachemgr_passwd datos all
http_port 3128
icp_port 3130
#las always para servicios
always_direct allow local-server
always_direct deny all
never_direct allow all

#FTP Pasivo

ftp_list_width 32
ftp_sanitycheck on
ftp_passive on
snmp_port 3401
#acl snmppublic snmp_community public
#snmp_access allow snmppublic all
#snmp_incoming_adress 0.0.0.0
#snmp_outgoing_adress 0.0.0.0

#DELAYS POOLS PARAMETERS (all require DELAY_POOLS compilation option)

#------------------------fin del fichero-------------------------------------------------#

 ademas de esto



luego reinicias el servicio
invoke-rc.d squid restart
si te da algun error con respecto a los directorios swap, simplemente
te ubicas en /etc/squid
y tecleas
squid -z
y te crea automaticamente los directorios
vuelves a reiniciar el squid
y ya tienes un servidor proxy corriendo desde tu server para la red

autentificacion de los user contra el proxy squid 

 bueno para que los user se autentifiquen contra nuestro proxy, es decir que cada ves que vaya a acceder a internet, le salga el cuadro user y password
hacemos lo siguiente
si se fijan en la configuracion del squid hay una linea comentada

 # auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/claves

que hacemos le borramos la almohadilla que tiene en el principio [#]
lo que nos dice que vamos a tener un fichero que se va a llamar claves, puede tener otro nombre cualquiera, lo que hay que poner al final de la linea el nombre asignado

tambien hay otra linea comentada

#acl password proxy_auth REQUIRED

aqui solo le quitamos la almohadilla para declarar dicha acl
luego vamos donde dice

http_access allow all permitidos
y le agregamos la linea [password]

quedaria:

http_access allow all permitidos password

guardamos los cambios y salimos del fichero
ahora vamos al directorio /etc/squid
y creamos el fichero cuyo nombre pusimos en la primeria linea que descomentamos
en nuestro caso, se llama claves

seria
touch claves

despues instalariamos el apache para utilizar sus modulos como autentificacion
seria: apt-get install apache2
luego nos situamos en /etc/squid
y tecleariamos :     htpasswd claves [nombre del user]
abajo apareceria la opcion : password
le pondriamos la password, la cual hay que poner 2 veces
y asi sucesivamente con los demas user
luego reinicamos el servicio squid : invoke-rc.d squid restart
y ya

tenemos un proxy squid con autentificacion de usuarios