Comandos frecuentes Squid
Comandos frecuentes Squid
Instalar Squid en CentOS http://www.cyberciti.biz/tips/howto-rhel-centos-fedora-squid-installation-configuration.html
-- Archivo de configuración de Squid
/etc/squid/squid.conf
-- Logs de Squid: /var/log/squid/
-- Log de acceso de Squid /var/log/squid/access.log
Error: /etc/init.d/squid start init_cache_dir /var/spool/squid... /etc/init.d/squid: line 62: 2644 Aborted $SQUID -z -F -D >> /var/log/squid/squid.out 2>&1 Starting squid: /etc/init.d/squid: line 42: 2645 Aborted $SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1 [FAILED] [root@cyclops ~]# /etc/init.d/squid start init_cache_dir /var/spool/squid... /etc/init.d/squid: line 62: 2653 Aborted $SQUID -z -F -D >> /var/log/squid/squid.out 2>&1 Starting squid: /etc/init.d/squid: line 42: 2654 Aborted $SQUID $SQUID_OPTS >> /var/log/squid/squid.out 2>&1 [FAILED]
Este problema se debe a que el hostname de squid no se pudo resolver en el DNS que esta declarado en el servidor de squid, en el archivo /etc/resolv.conf Para resolverlo, basta con crear el A record en el DNS local si ejecutas el comando:
hostname -s
te deberá regresar el nombre del servidor, despues de esto pudes iniciar el servicio de Squid sin problemas.
--Sincronizar hora en servidor en dominio
service ntpd stop ntpdate 192.168.1.1 service ntpd start
Rotación de logs
Rotación de logs en squid Para que roten los logs de squid es necesario lo siguiente: Modificar el archivo de configuración /etc/squid/squid.conf buscar la línea:
# logfile_rotate 0
Modificar la línea a:
logfile_rotate 10
Reiniciar el servicio de squid con el comando:
service squid restart
Ejecutar el comando:
squid -k rotate
observaras que se crean los archivos:
access.log cache.log store.log
y los anteriores son renombrados a:
access.log.0 cache.log.0 store.log.0
La recomendación es que el comando 4 se programe en cron para que sea ejecutado cada mes. Ejecutar después de extraer los reportes de sarg u otra herramienta que se base en estos logs para generar sus reportes.
Instalación
[root@localhost ~]# yum install squid
Instalación y configuración de Squid -----
-- Instalación Squid
Instalar CentOS minimal yum install update yum update yum install screen
-- sincronizar hora con servidor de AD, primero establecer la zona horaria correcta
instalar menú configuración de hora
yum install system-config-date
establecer la zona horaria
system-config-date
por ejemplo Americas/Mexico City
-- instalar ntp para sincronizar con el servidor de dominio
yum install ntp
-- editar el archivo
vim /etc/ntp.conf
comentar con un signo de número antes de las líneas, quedaría como sigue y al final agregar el nombre del servidor principal al cuál se sincronizará
#server 0.centos.pool.ntp.org #server 1.centos.pool.ntp.org #server 2.centos.pool.ntp.org server server1.midominio.local
-- configurar el servicio ntp para que inicie automáticamente despues de cada reinicio
chkconfig ntpd on
-- ver que servidores están disponibles para sincronización, debería ser el que se agregó
ntpq -pn
Por ejemplo:
remote refid st t when poll reach delay offset jitter ============================================================================== 100.10.65.1 .LOCL. 1 u 792 1024 377 0.481 1790897 36.519 *127.127.1.0 .LOCL. 10 l 5 64 377 0.000 0.000 0.001
-- detener el servicio ntp
service ntpd stop
-- sincronizar con el servidor de dominio principal
ntpdate -u 192.168.16.1
-- con el comando date verificar si está correctamente sincronizado
date
-- iniciar el servicio ntp
service ntpd start
-- verificar con que servidores se sincroniza
ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== 192.168.16.1 .LOCL. 1 u 23 64 3 0.321 286.450 1.394 LOCAL(0) .LOCL. 10 l 19 64 3 0.000 0.000 0.001
-- ver si existen los paquetes necesarios con el comando:
rpm -qa |egrep -i '(krb5-workstation|samba-common|authconfig)'
Si no hay ningun resultado instalar con:
yum install authconfig krb5-workstation samba-common
o si solo aparecen algunos instalar los que falten en el siguiente ejemplo solo falta samba-common
krb5-workstation-1.6.1-62.el5 authconfig-5.3.21-7.el5
y se instaló el paquete faltante con: [root@brontes ~]# yum install samba-common
-- instalar Squid
yum install squid
-- Configurar Kerberos e ingresar el servidor Linux al dominio de Windows
authconfig --enableshadow --enablemd5 --passalgo=md5 --krb5kdc=DSMTY01.dsmex --krb5realm=dsmex --smbservers=DSMTY01.dsmex --smbworkgroup=dsmex --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=dsmex --smbidmapuid="16777216-33554431" --smbidmapgid="16777216-33554431" --winbindseparator="+" --winbindtemplateshell="/bin/false" --enablewinbindusedefaultdomain --disablewinbindoffline --winbindjoin=lmoreno --disablewins --disablecache --enablelocauthorize --updateall
-- Comando para verificar si hay comunicación con el AD
/usr/lib/squid/squid_ldap_auth -R -b "dc=dsmex" -D "cn=Luis Moreno 2,cn=Users,dc=dsmex" -w "passqordaqui" -f sAMAccountName=%s -h 100.10.65.1
-- verificar si se pueden ver los usuarios y los grupos
wbinfo -u wbinfo -g
-- Modificar el archivo de configuración /etc/squid/squid.conf con parametros similares a:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of=dsmex+InternetAccess
auth_param ntlm children 5
auth_param ntlm keep_alive on
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl webserver src 100.10.65.50/255.255.255.255 # IP local servidor
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 995 587 12443
acl Safe_ports port 80 # 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 Safe_ports port 909 # Firma digital
acl Safe_ports port 995 # POP entrada
acl Safe_ports port 587 # SMTP Salida
acl Safe_ports port 12443 # Fortigate
acl Safe_ports port 12100 # Nextel Facturacion
acl Safe_ports port 4100 # Profepa
acl CONNECT method CONNECT
http_access allow manager webserver
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl our_networks src 100.10.64.0/22 172.16.0.0/20
acl ntlm proxy_auth REQUIRED
http_access allow our_networks ntlm
http_access allow localhost
http_access deny all
icp_access allow all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
logfile_rotate 10
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
acl INSIDE_IP dst 100.10.64.0/22 172.16.0.0/20
always_direct allow INSIDE_IP
coredump_dir /var/spool/squid
cambiar ip en "acl webserver src" para ajustar a la IP del servidor local
cambiar tambien las redes locales que tendran acceso
-- crear usuarios locales, ejemplo:
adduser jgarcia -c" "Jair Garcia" passwd jgarcia
-- remover paquetes no necesarios (e inseguros) como cups
yum remove cups
-- verificar si acepta las credenciales de un usuario en el grupo autorizado para salida a Internet
ntlm_auth --require-membership-of='dsmex+InternetAccess' --username=jair.garcia --password=passwordaqui
-- reiniciar servicio squid
service squid restart
Stopping squid: [FAILED] init_cache_dir /var/spool/squid... Starting squid: . [ OK ]
-- Establecer el servicio de seguridad a nivel permissive
system-config-securitylevel-tui
-- abrir puerto de squid, dentro de la misma herramienta system-config-securitylevel-tui para abrir el puerto, escriba
3128:tcp
y de click en ok
-- Video de instalación http://vimeo.com/16525582