Instalación y configuración de la herramienta de reportes Sarg.

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: http://www.alcancelibre.org/
Jabber ID: darkshram@jabber.org

Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1

© 1999-2016 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.

Introducción.

Sarg (Squid Analysis Report Generator) es la más completa y fácil de utilizar herramienta para la generación de reportes a partir de las bitácoras de Squid. Permite ver con detalle la actividad de todos los equipos y/o usuarios dentro de la red de área local, registrada en la bitácora de Squid.

URL: http://sarg.sourceforge.net/.

Equipamiento lógico necesario.

Instalación a través de yum.

ALDOS y Fedora™ ya incluyen lo necesario para realizar la instalación del paquete necesario. Si utiliza CentOS o Red Hat™ Enterprise Linux, puede utilizar el almacén YUM de Alcance Libre para servidores en producción, descargando el archivo http://www.alcancelibre.org/al/server/AL-Server.repo dentro del directorio /etc/yum.repos.d/:

wget -N http://www.alcancelibre.org/al/server/AL-Server.repo -O /etc/yum.repos.d/AL-Server.repo

Examine el contenido del archivo /etc/yum.repos.d/AL-Server.repo:

vi /etc/yum.repos.d/AL-Server.repo

El contenido debe ser el siguiente:

[AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY

Salga del editor de texto y ejecute lo siguiente para instalar lo necesario:

yum -y install sarg httpd

Procedimientos.

Inicie y habilite Apache si es necesario:

systemctl start httpd && systemctl enable httpd

Verifique en la configuración de Sarg la ruta del archivo de registro, número de reportes a almacenar y la codificación de los reportes.

Edite con vi el archivo /etc/sarg/sarg.conf:

vi /etc/sarg/sarg.conf

Alrededor de la línea 8, verifique el valor de access_log sea /var/log/squid/access.log:

# TAG:  access_log file
#       Where is the access.log file
#       sarg -l file
#
#access_log /usr/local/squid/var/logs/access.log

access_log /var/log/squid/access.log

Alrededor de la línea 232, localice la cadena lastlog 0.

# TAG: lastlog n
#      How many reports files must be keept in reports directory.
#      The oldest report file will be automatically removed.
#      0 - no limit.
#

# lastlog 0

Elimine la almohadilla la línea que contiene lastlog 0 y cambie el 0 por el número de reportes que se desea mantener. Si define el valor 30 sólo se conservarán los 30 últimos reportes y todos los reportes anteriores se irán eliminando automáticamente.

# TAG: lastlog n
#      How many reports files must be keept in reports directory.
#      The oldest report file will be automatically removed.
#      0 - no limit.
#

lastlog 30

Si se omite definir un valor adecuado para la opción lastlog, los reportes de almacenarán en /var/www/sarg/ y pueden implicar una cantidad considerable de datos. Si decide omitir un valor para esta opción, periódicamente se tendrá que ingresar a los subdirectorios de /var/www/sarg/, principalmente el subdirectorio daily, para eliminar de manera manual los reportes antiguos o que sean de poca relevancia, a fin de evitar se agote el espacio de almacenamiento en el sistema de archivos.

Alrededor de la línea 438, localice la cadena de texto charset Latin1.

# TAG: charset name
#      ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit)
#      graphic character sets for writing in alphabetic languages
#      You can use the following charsets:
#               Latin1          - West European
#               Latin2          - East European
#               Latin3          - South European
#               Latin4          - North European
#               Cyrillic
#               Arabic
#               Greek
#               Hebrew
#               Latin5          - Turkish
#               Latin6
#               Windows-1251
#               Japan
#               Koi8-r
#               UTF-8
#

#charset Latin1

Elimine la almohadilla y reemplace la cadena de texto con charset UTF-8.

# TAG: charset name
#      ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit)
#      graphic character sets for writing in alphabetic languages
#      You can use the following charsets:
#               Latin1          - West European
#               Latin2          - East European
#               Latin3          - South European
#               Latin4          - North European
#               Cyrillic
#               Arabic
#               Greek
#               Hebrew
#               Latin5          - Turkish
#               Latin6
#               Windows-1251
#               Japan
#               Koi8-r
#               UTF-8
#

charset UTF-8

Edite el archivo /etc/httpd/conf.d/sarg.conf:

vi /etc/httpd/conf.d/sarg.conf

Localice la línea allow from 127.0.0.1, la cual define que solo se puede acceder hacia el directorio /sarg/ desde 127.0.0.1 (es decir, solo puede ser accedido como http://127.0.0.1/sarg/).

Alias /sarg /var/www/sarg
<Directory /var/www/sarg>
    DirectoryIndex index.html
    <IfModule mod_authz_core.c>
        # Apache 2.4

        Require local
    </IfModule>
    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all

        Allow from 127.0.0.1
    </IfModule></Directory>

Añada lo necesario para permitir el acceso desde su red de área local.

Alias /sarg /var/www/sarg
<Directory /var/www/sarg>
        DirectoryIndex index.html
    <IfModule mod_authz_core.c>
                # Apache 2.4

                Require local
                Require ip 172.16.1.0/28
    </IfModule>
    <IfModule !mod_authz_core.c>
                # Apache 2.2
                Order Deny,Allow
                Deny from all

                Allow from 127.0.0.1 172.16.1.0/28
    </IfModule>
</Directory>

Defina que el acceso hacia el directorio /sarg/ (que en adelante podrá ser accedido como http://proxy.red-local.net/sarg/ o bien http://172.16.1.1/sarg/) se permitirá solo a usuarios autorizados que autenticarán a través del archivo /var/www/claves-sarg.

Alias /sarg /var/www/sarg
<Directory /var/www/sarg>
        DirectoryIndex index.html
    <IfModule mod_authz_core.c>
                # Apache 2.4

                Require local
                Require ip 172.16.1.0/28
    </IfModule>
    <IfModule !mod_authz_core.c>
                # Apache 2.2
                Order Deny,Allow
                Deny from all

                Allow from 127.0.0.0/8 172.16.1.0/28
    </IfModule>
        AuthName "Solo usuarios autorizados."
        AuthType Basic
        require valid-user
        AuthUserFile /var/www/claves-sarg

</Directory>

Genere el inodo archivo /var/www/claves-sarg:

touch /var/www/claves-sarg

Cambie los permisos de este archivo para que sólo tenga lectura y escritura para la clase del usuario:

chmod 0600 /var/www/claves-sarg

Cambie el propietario del archivo al usuario apache y grupo apache:

chown apache:apache /var/www/claves-sarg

Utilice htpasswd con /var/www/claves-sarg argumento para crear el usuario virtual administrador y asignar a éste una contraseña que sólo deberá conocer el administrador del servidor:

htpasswd /var/www/claves-sarg administrador

Ejecute lo siguiente en Centos 7 y Red Hat™ Enterprise Linux 7 y versiones posteriores de éstos para aplicar los cambios en el servicio httpd.

systemctl reload httpd

Ejecute lo siguiente en Centos 6 y Red Hat™ Enterprise Linux 6 y versiones anteriores de éstos para aplicar los cambios en el servicio httpd.

service httpd reload

Ejecute sarg para generar primer reporte:

sarg

Podrá consultar este reporte en la dirección http://servidor.red-local.net/sarg/ONE-SHOT/ o bien http://172.16.1.1/sarg/ONE-SHOT/.

Podrá ver un reporte generado automáticamente todos los días en la dirección http://servidor.red-local.net/sarg/daily/ o bien http://172.16.1.1/sarg/daily/.