En esta ocasión me he animado a poner un pequeño código usado en el servidor XS para las olpc’s, pero antes les dire algo basico del servidor XS.

XS Server School es la infraestructura que se usa en las escuelas para dar acceso a internet a las xo’s, ya que se necesitan centralizar aspectos importantes de las mismas como lo son seguridad (permitir solamente a las xo’s conectarse, entre otras), tambien el cuidado de las websites vistidas
por los niños, controlandolas ya sea atraves del SQUID proxy o el openDNS que es lo que se usa en Nicaragua.

La configuración basica de software sobre el servidor esta provista atraves de YUM de Fedora asi como del Administrador de Paquetes RPM.
Importancia de activar el SQUID Proxy!

– activar cache web, ya que con esto podremos optimizar el acceso a paginas ya visitadas, esto es visitando la pagina en cache.
– revisar periodicamente la Cache Web para ver las paginas visitadas y que lograron pasar por OpenDNS y por las mismas restricciones del SQUID Proxy.
(aca es donde se me vino hacer un extractor de dominios visitados en Python).

Pero antes de seguir, iniciemos el Web Caching!

 /etc/sysconfig/olpc-scripts/TURN_SQUID_ON

para probar algun servicio activo en nuestro systema tendremos que ejucutar lo siguiente:
service SQUID status
y para ver en tiempo real el cache web:

 tail -f /var/log/squid/access.log

aca es donde extraemos las paginas visitadas con el programita donde ya les pondre el código.

En fin hay muchas cosas mas, pero es algo que en primera instancia me llamaron la atención.
Aca les dejo el código, y no esta de mas, que por lo general los niños lo que mas visitan son Juegos :).

Una cosa más, y es que tu seguro lo puedes mejorar. pues yo lo hice para poner en practica lo aprendido en su momento con python, por falta de tiempo por ahora no lo puedo mejorar, aunque he conocido de muchas formas 🙂

#! /usr/bin/env python
#write by Walter D. Vargas 
# Programa que lee un archivo con logs de la cache web
# y extrae los dominios guardandolos en un nuevo archivo, agregando
# los duplicados una vez y los no duplicados
"""El objetivo es supervisar que paginas estan viendo los ninos,
  aunque normalmente puedes verlo en tiempo real, atraves del SQUID"""
import string
from sets import Set
def submain():
       """leemos el archivo con los logs"""
#aca va la direccion origen del archivo log del proxy
       fichero = open('direcciones.txt', 'r')
       oficial = []
       lista = []
       while 1:
                """leemos linea a linea"""
                linea = fichero.readline()
                linea = linea.rstrip()
                """si linea es vacia, paramos el bucle"""
                if linea == "":
                         break
                #"""validamos si existen saltos de linea al final \n"""
                #if linea[-1]=='\n':
                #        linea = linea[:-1]
                """guardamos en una lista cuando separamos en elementos la linea"""
                lista = string.split(linea, '/')
                 """recorremos la lista y agregamos a otra lista el elemento que contenga
www.dominio.com"""
                 for word in lista:
                          cad = str(word)
                          if string.find(cad, 'www')!=-1:
                                   oficial.append(word)
        """cerramos el fichero de lectura"""
        fichero.close()
        """eliminamos duplicados y ordenamos
        oficial = list(Set(oficial))
        oficial.sort()
        f_output = open('nuevo.txt', 'w')
        for i in oficial:
                 i = i+'\n'
                 f_output.write(i)
        f_output.close
submain() 
Anuncios