10. Internet Atzipen Kontrola / Control de Acceso a Internet

EU-Era askotan egin daiteke internet atzipen kontrol bat. Normalena, suhesian ebaki kanporako atzipena. Soluzio honek, arazo bat dauka. Edonork ezin desake suhesia kontrolatu. Beste metodo bat behar dugu. Edozein irakaslek erabil dezakeena. Horrela, irakasle batek, gela bati ezar diezaioke interneterako atzipena edo ukatu. Gainera, era ezzaz batean behar du egin. Normalena, web orri baten bitartez. Hau egiten saiatuko gara.

ES-Hay muchas formas de hacer un control de acceso. La más normal suele ser cortar la conexión exterior en el cortafuegos. Esta solución supone un problema. El cortafuegos no puede ser manipulado por cualquiera. Necesitamos otro método diferente que sea mas flexible y por medio del cual cualquier profesor pueda conectar una clase a Internet para ver paginas web y para poder utilizar el protocolo FTP, y todo ello de una forma sencilla. Esto es lo que intentaremos hacer. 

EU-Kontutan izan, adibide hau, HTTP proxy-aren atalean agindakoaz laguntzen dela. Beste instalazio mota bat nahi izanez gero, siostema imaginatu beharko da atal biak kontutan izanez.

ES-Téngase en cuenta, que este ejemplo se apoya en lo ya realizado en el apartado del proxy HTTP. En caso de desear realizar otro tipo de instalación, se deberá imaginar el sistema, teniendo en cuenta ambos informes.

EU-Ikus dezagun ikastetxe baten adibidea.

ES-Veamos un ejemplo de escuela.


Eskolako Azpisareak / Subredes escolares

Azpisareak / Subredes

IP Taldeak / Grupos IP

Irakasleak / Profesores

172.16.0.0/24

Ikasleak / Alumnos

172.16.1.0/24

Zuzendaritza / Direccion

172.16.2.0/24

Zerbitzariak / Servidores

172.16.3.0/24


Ikasgelen Helbideak / Direcciones de las aulas

Ikasgelak / Aulas

IP Taldeak / Grupos IP

Gela-01 / Aula-01

172.16.1.17 -> 172.16.1.32

Gela-02 / Aula-02

172.16.1.33 -> 172.16.1.48

Gela-03 / Aula-03

172.16.1.49 -> 172.16.1.64

Gela-04 / Aula-04

172.16.1.65 -> 172.16.1.80

Gela-05 / Aula-05

172.16.1.81 -> 172.16.1.96

Gela-06 / Aula-06

172.16.1.97 -> 172.16.1.112

Gela-07 / Aula-07

172.16.1.113 -> 172.16.1.128

Gela-08 / Aula-08

172.16.1.129 -> 172.16.1.144

10.1. Baherrezko softwarea / Software necesario

EU-Behar ditugun paketeak squid eta sudo dira. Besteak instalatuta daude.

ES-Los únicos paquetes que necesitamos instalar son squidsudo. El resto de paquetes ya se han instalado.


    apt-get install squid sudo

EU-Instalazio script-ak, /var/spool/squid-n sortuko digu katxe-aren direktorio hierarkia, eta martxan jartzen du. Badaukagu ba, squid martxan. Edozxein arrazoirengatik, ez baditu direktorioak sortzen, sortzera behar dezakegu squid -z agintearekin.

ES-El script de instalación nos crea la jerarquía de directorios de la caché en /var/spool/squid y lo ejecuta. Ya tenemos pues, squid en marcha. Si por la razón que sea, no se han creado los directorios, le indicamos que los crea con squid -z.

8.1 Squid konfiguratzen / Configurando squid

EU-Konfigurazio fitxategia /etc/squid/squid.conf da. Probak egin nahi baditugu, hona hemen aldatu daitezkeen parametro batzuk:

ES-El archivo de configuración es /etc/squid/squid.conf. Si queremos experimentar, aquí tenemos algunos parametros que se pueden cambiar:


cache_mem 64 MB

maximum_object_size 8192 KB
maximum_object_size_in_memory 36864 KB
ipcache_size 4096
fqdncache_size 4096

EU-Ez dira egin probak, aldaketa hauen eragina ebaluatzeko, baina RAM memoria nahikoa badugu, ez dute arazorik sortu behar.

ES-No se han realizado pruebas para evaluar el efecto de los anteriores cambios, pero si tenemos memoria de sobra, no ofrecen problema alguno los cambios realizados.

EU-Komenigarria da hurrengoa aldatzea. Jarri komeni zaizkizuen izenak / esaldiak.

ES-Conviene cambiar los siguientes parámetros (poner las cadenas apropiadas para vuestro caso):


ftp-user
anonymous@NIRE-ESKOLA.NET

cache_mgr sare-admin@NIRE-ESKOLA.NET

EU-Zein portutan egone behar den zain esango diogu. Sare txartelaren helbidea ere esango diogu,. Honela, bat baiono gehiago baditugu, zeini kasu egin behar dion erabaki dezakegu.

ES-Le diremos en qué puerto ha de escuchar. Le indicaremos también la dirección del interface, por si tenemos más de uno y no deseamos que acepte conexiones en otro.


http_port 172.16.0.4:3128

EU-Zein orri ez dituen katxeatu behar esango diogu. Normalean, cgi-ak izango dira, berrien orriak, eta aguraldiarena, noski. Geinera, esan diezaikegu, ez ditzala katxeatu abestiak, bideoak, etab. Administratzailearen esku utziko dugu erabakia.

ES-Tenemos que indicarle a squid las páginas que no debe cachear. Típicamente serán los cgi-s, las páginas de noticias y la del tiempo. También podemos no cacheas MP3, AVi, etc. Esto queda a gusto del administrador.


acl QUERY urlpath_regexp cgi-bin \?
acl ESNEA dstdomain .weather.com
acl ESNEA dstdomain .berria.info
acl ESNEA dstdomain .gara.net
acl ESNEA dstdomain .elpais.es
acl ESNEA dstdomain .elcorreodigital.com

no_cache deny QUERY
no_cache deny ESNEA

EU-Defektuzko konfigurazioan, squid-ek soilik onartzen ditu localhost konexioak. Gure sareetatik eginiko konexioak onar ditzan, horrela agindu behar diogu. Hortarako, atzipen kontrol zerrenda bat sortuko dugu, eta zerrenda hori baimen dezala esango diogu.

ES-En la configuración por defecto, squid solamente permite conexiones desde localhost. Para permitir el acceso al proxy desde nuestras redes, se lo hemos de decir explícitamente. Para ello creamos una lista de control de acceso, y le indicamos que permita el acceso a dicha lista.


acl our_networks src 10.22.0.0/24 10.22.1.0/24 10.22.2.0/24 10.22.3.0/24

http_access allow our_networks

EU-Orain esango diogu, beste proxy bat duela gainean, eta hura erabili behar duela. Proxy hay HAVP da, eta trafikoa aztertzeko erabiltzen dugu.

ES-Ahora le decimos que tiene un proxy por encima, y que lo ha de utilizar. Este es HAVP,  que utilizamos para escaneaqr el tráfico en busca de viruses.


cache_peer 127.0.0.1 parent 8000 0 no-query no-digest no-netdb-exchange default
cache_peer_access 127.0.0.1 allow all


acl Scan_HTTP proto HTTP
never_direct allow Scan_HTTP

EU-Errorerik egin dugun proba dezagun. Hortarako, konfigurazio fitxategia aztertzeko agintea erabiliko dugu:

ES-Probaremos ahora si hemos cometido algún error. Para ello disponemos de una orden para examinar la configuración del archivo.:


    squid -k parse

EU-Dena ongi badago, konfigurazio berri har dezan esango diogu:

ES-Si todo ha ido bien y no nos da errores, le indicamos al proxy que cargue la nueva configuración:


    /etc/init.d/squid reload

EU-Proxy-a probatu aurretik, eta DMZn dagoenez, atzipena baimendu behar dugu suhesian. Honela geratuko litzateke erregla:

ES-Antes de probar el proxy vamos a permitir el acceso al mismo desde la red del centro. Esto lo configuramos en el cortafuegos de la siguiente manera:

Source

Destination

Service

Action

Irakasleak

Ikasleak

Zuzendaritza

Zerbitzariak

antivirus perimetral

squid (3128)

Accept

EU-Proxy-a probatzeko, nabigatzailearen hobespenak aldatu, eta esan proxy-a duela periometroko antibirusaren IP-an, eta 3128 portuan. Sorte on!

ES-Para probar el proxy, cambia las preferencias del navegador web y dile al ordenador que tiene el proxy en el puerto 3128 de la IP del antivirus perimetral. Buena suerte!

10.2. ACL-ak / ACLs

EU-Nork erabil dezaken squid eta nor ez zehazteko, acl-ak erabiltzan dira. Hau da: atzipen kontrolerako zerrendak. Sistema hau erabiliko dugu Interneteko atzipoena kontrolatzeko. Squid proxy-ak, acl-ak azztertuko ditu, adierazita dauden ordenan.

ES-Los acl (Access Control Lists) se utilizan para controlar quién puede usar el squid y quién no. Utilizaremos este sistema para controlar el acceso a Internet. Squid evalúa los acl en el orden en que están definidos.

EU-Denok dakigu, nabigatzaileetan sortzen diren arazoak, gehigarriak direla eta. Batez ere Internet Ezplorer nabigatzailean. Gainera, gehigarri edo plugin hauen, erabiltzaileak jakin gabe instalatzen dira. Hau dela eta, bi motatako acl-ak sortuko ditugu. Lehenengo, web orri instituzionalak jarriko ditugu. Orri hauek edozein nabigatzailekin ikusteko aukera izango ditugu. Gero, seguruak ez diren nabigatzaileei ukatu egingo diegu interneterako atzipena. Azkenik, ikasgelen kontrola egingo dugu. Kontuitan izan, zerrenda hauek, jarrita dauden moduan ebaluatuko direla. Hau da, lehenengo agertzen denak arabakiko du ukatu ala ez atzipena. IP zerendak dst acl mota  bidez jartzen baditugu, DNS konexioa behar da lehenengo ezxarri. Motelagoan izango dira konexio ebaluapen hauek. IP helbidearen bitartez jartzen baditugu, prozesua azkarragoa izango da. Horrela jarriko ditugu, adibide gisa. Hurrengoan beste erara jarriko ditugu. Ikus ditzagun orain, erabiliko ditugun acl-ak. Zerrendak komentatuak daude, eta beraz, ez dugu azalpen gehiagoreik emango.

ES-Todos conocemos los problemas que en los navegadores web (léase MS IE) ocasionan los suplementos que muchas veces se instalan sin saber. Teniendo esto en cuenta, pondremos dos tipos de acl en nuestro sistema de control de acceso. Primeramente, pondremos las hojas web institucionales. Podemos dirigirnos a esos lugares con cualquier navegador. Luego, denegaremos el acceso a los navegadores que no hayan sido puestos por nosotros y por ultimo permitiremos o prohibiremos las distintas aulas. Tener en cuenta que las listas son evaluadas al recibir cada petición. Si las las listas IP las ponemos con dst se deben evaluar por medio de DNS y por lo tanto si las ponemos de esa forma tardara mucho más tiempo para la resolución de acceso. En cambio, si las ponemos con su IP, serán evaluadas más rápidamente. En cualquier caso lo pondremos como ejemplo de esta manera. En cambio la próxima vez lo haremos de forma distinta. Veamos ahora los acl que utilizaremos. Tener en cuenta que en la misma lista hay comentarios y por lo tanto no explicamos aquí todo en profundidad. 


# ----------- Jatorrizko helbideak / Direcciones origen -------------
# Eskolako azpisareak / Subredes de la escuela
acl irakasle_sarea src 172.16.0.0/24
acl zuzendaritza_sarea src 172.16.2.0/24
acl zerbitzari_sarea src 172.16.3.0/24

# Ikasleen gelak / Aulas de alumnos
acl gela-01 src 172.16.1.17-172.16.1.32
acl gela-02 src 172.16.1.33-172.16.1.48
acl gela-03 src 172.16.1.49-172.16.1.64
acl gela-04 src 172.16.1.65-172.16.1.80
acl gela-05 src 172.16.1.81-172.16.1.96
acl gela-06 src 172.16.1.97-172.16.1.112
acl gela-07 src 172.16.1.113-172.16.1.128
acl gela-08 src 172.16.1.129-172.16.1.144

EU-IP helburuak. Denentzat interesgarriak diren zenbait helbide.

ES-Direcciones destino (unas cuantas direcciones conocidas e interesantes para todo el mundo)


# ----------- Helburuko helbideak / Direcciones de destino ------------------
# www.nire-eskola.net (xx.xx.xx.xx) : Eskolako interneteko orria, interneten badaukagu
# Páginas de la escuela, si está en Internet
#acl BetiPasa dst xx.xx.xx.xx

# www.euskadi.net : Euskadi.Net, hezkuntza, Zenbait hiztegi (morris, 3000, Elhuyar...)
acl BetiPasa dst 194.30.48.1
acl BetiPasa dst 212.55.29.1
acl BetiPasa dst 194.30.48.2
acl BetiPasa dst 212.55.29.2

# parlamento.euskadi.net : Eusko legebiltzarreko administrazioko hiztegia
# Diccionario del Parlamento vasco, para la administración

acl BetiPasa dst 212.55.31.252

# www.bizkaia.net : Bizkaierazko hiztegia eta diputazioaren web orri nagusia
acl BetiPasa dst 80.245.0.26

# www.gipuzkoa.net : Gipuzkoako diputazioaren web orri nagusia
acl BetiPasa dst 82.116.160.2

# www.araba.net, www.alava.net : Arabako diputazioaren web orri nagusia
acl BetiPasa dst 194.30.32.126
acl BetiPasa dst 206.251.184.30

# www.hiztegia.net : Zerrenda orokorra
acl BetiPasa dst 82.194.66.80

# www.euskaltzaindia.net : Euskaltzaindiaren hiztegia
acl BetiPasa dst 212.55.8.113

# www.hizkuntza.tk : Euskara <-> Katalana hiztegia
acl BetiPasa dst 62.129.131.34
acl BetiPasa dst 62.129.131.35

# abarka.free.fr : Euskara <-> Frantseza hiztegia
acl BetiPasa dst 212.27.40.164

# www.bitez.com : Beste euskarazko hiztegi batzuk
acl BetiPasa dst 213.195.78.64

# www.hiru.com : Esaera bilduma
acl BetiPasa dst 212.142.249.135

EU-Orain, nabigatzaileen definizioak jarriko ditugu.

ES-A continuación, pondremos las definiciones de los navegadores.


# ----------- Nabigatzaile Seguruen definizioa / Definiciones de navegadores seguros ------------------
acl OngiNabiga browser Firefox
acl OngiNabiga browser Opera
acl OngiNabiga browser Safari
acl OngiNabiga browser Konqueror
acl OngiNabiga browser Galeon
acl OngiNabiga browser Camino
acl OngiNabiga browser Gecko
acl OngiNabiga browser Java

EU-Orain, atzipen erreglak jarriko ditugu. Lehenengo suebkiari emango diogu baimena. Gero irakasle, zuzendaritza eta sareko azpisareei. Segidan, interesgarriak diren web guineetan emango digi sartzeko baimena. Gero, seguruak ez diren nabigatzaileak debekatuko ditugu. Azkenik, ikasgelen atzipen kontrola egingo dugu. Defektuz, denek dute debekatuta Internet Atzipena.

ES-Ahora pondremos las reglas de acceso. Primero daremos permiso al cortafuegos, luego a las subredes de profesores, dirección y servidores. En segundo lugar permitiremos el acceso a espacios web que suelen ser interesantes. Luego prohibiremos los navegadores que no sean seguros. Y por ultimo haremos el control de las aulas de los alumnos. Todas estan prohibidas por defecto.


# Utzi ordenagailu berari ( ez da oso erabilgarria)
http_access allow localhost

# Utzi eskolako irakasle eta administrazio azpisareei restrikziorik gabe
http_access allow irakasle_sarea
http_access allow zuzendaritza_sarea
http_access allow zerbitzari_sarea

# Beti utzi BetiPasa taldeko helbideak arakatzen (edozein nabigatzailerekin)
http_access allow BetiPasa

# Debekatu MS IE, gainontzeko kenexioetan
http_access deny !OngiNabiga

# Ikasleen gelak kudeatu
http_access deny gela-01
http_access deny gela-02
http_access deny gela-03
http_access deny gela-04
http_access deny gela-05
http_access deny gela-06
http_access deny gela-07
http_access deny gela-08

EU-Proba dezagun funtzionamendua. Jar diezaiogu ordenagailu bati 172.16.1.18/24 helbidea. Helbide hau, gela-01 gelako bigarren ordenagailuaren helbidea da. Hurrengo aginte hau egikarituko dugu, eta Internetea atzipena duen egiaztatuko dugu. Ez probatu MSIE nabigatzailearekin ;-) Erabili Azeria. 

ES-Probemos ahora su funcionamiento. Pongámosle por ejemplo a un ordenador la dirección IP 172.16.1.18/24 (gela-01 segunda dirección del aula). Ejecutemos la siguiente orden y comprobemos si entra en Internet. Haced la prueba con un navegador que no sea MSIE.


    sed -i s/http_access\ deny\ gela-01/http_access\ allow\ gela-01/ /etc/squid/squid.conf
    squid -k reconfigure

EU-Dena ongi? Aurrera!

ES-Todo va bien? Adelante!

10.2.1 Arazoak sortzen direnean / Cuando aparecen problemas

EU-ACLekin lan egiten dugunean, sarritan sortzen dira arazoak, eta erregistroak ez digu informazio gehiegirik ematen. Hurrengo parametroak jarri /etc/squid/squid.conf fitxategian, eta berrabiarazi squid. Sorte on!

ES-Cuando trabajamos con ACLs, muchas veces aparecen problemas de los cuales el registro no nos da mucas pistas. Para tener información más detallada, ponemos en /etc/squid/squid.conf los siguientes parámetros. Reiniciamos squid y... Suerte!


debug_options ALL,1 33,2

debug_options ALL,1 33,2 28,9

10.3. CGI skrip-a / Script CGI

EU-Ez dugu squid.conf fitxategia zuzenean aldatuko, baizik eta web zerbitzariak egikaritzen duen script exekutagarri baten bitartez. Script honek, erregistro fitxategi bat sortzen du. Fitxategi hontan, nork, noiz, nondik, eta zein nabigatzailekin eman duen aldatze agintea agertuko dira. Fitxategi hau /var/log/iak direktorioan sortuko dugu. Beraz, Apache agikaritzen duen prozesuak idazteko baimenak izan behar ditu direktorio hontan. Hotarako:

ES-No manipularemos directamente el archivo de configuración squid.conf, sino que lo haremos con un script ejecutado por el servidor web. Este script crea un archivo de registro con todas las operaciones realizadas. Quién lo hizo, desde qué ordenador, día y hora, navegador... Crearemos este archivo en el directorio /var/log/iak y por lo tanto el proceso que ejecuta apache deberá tener permiso de escritura en ese directorio. Para hacer esto:


    mkdir /var/log/iak
    chown www-data:root /var/log/iak

EU-Orain script-a sortuko dugu. Script hau, web zerbitzariaren cgi-bin direktorioan sortuko dugu. Debian banaketan, direktorio hau /usr/lib/cgi-bin da. Scriptaren izena kudeatu izango da. Script hau, txosten honen lehenengo orrian duzue eskuragarri. Errekurtsoak atalean.

ES-Vamos a crear ahora el script. Debemos crear este script en el directorio del servidor de web cgi-bin. En Debian es /usr/lib/cgi-bin/El nombre del script será kudeatu. Este escript está disponible desde la sección de recursos de la página inicial.


#! /bin/bash
# fitxategien definizioak
KONF_FILE="/etc/squid/squid.conf"
LOGFILE="/var/log/iak/iak.log"
PROG="/bin/sed"

# data string-a sortzeko agintea
DATA=`date`;

# QUERY_STRING ingurune aldagaiaren zatiak (gela eta ekintza) hartzeko
GELA=${QUERY_STRING:5:7}
EKINTZA=${QUERY_STRING:21}


# logeatu egiten ditu gauza guzti horiek (dena lerro batean / todo en una linea)
echo "$DATA - $REMOTE_ADDR - $REMOTE_HOST - $REMOTE_USER - $REQUEST_METHOD - $QUERY_STRING - $GELA - $EKINTZA - $HTTP_USER_AGENT" >> "$LOGFILE"


# komando lerrotik egikaritu bada, aldagaiak hartzen ditu
if [ ! -z "$1" ] ; then
    GELA=$1
fi

if [ ! -z "$2" ] ; then
    EKINTZA=$2
fi

if [ "$GELA" = "defektuz" ] ; then
    EKINTZA="defektuz"
fi

# erroreen kudeaketa
if [ -z $GELA ] ; then
    echo "Content-type: text/html"
    echo ""
    echo "Ez da zehaztu gelarik"
    exit 1
fi

if [ -z $EKINTZA ] ; then
    echo "Content-type: text/html"
    echo ""
    echo "Ez da zehaztu ekintzarik"
    exit 1
fi

# gela existitzen bada.....
case "$GELA" in
    gela-01 | gela-02 | gela-03 | gela-04 | gela-05 | gela-06 | gela-07 | gela-08 )
        case "$EKINTZA" in
            ireki)
                sudo $PROG -i s/http_access\ deny\ $GELA/http_access\ allow\ $GELA/ $KONF_FILE;
            ;;
            itxi)
                sudo $PROG -i s/http_access\ allow\ $GELA/http_access\ deny\ $GELA/ $KONF_FILE;
            ;;
        esac

        sudo /etc/init.d/squid reload 1> /dev/null

        echo "Content-type: text/html"
        echo ""
        echo "<center><h1>Agintea ongi burutu da</h1>"
        echo "Akzesu kontroleko orrira itzultzeko pultsa
            <a href=\"http://suebakia.nire-eskola.net/inetktrl/\">hemen</a></center>"

        exit
    ;;

    defektuz) # itxi egingo ditugu gela guztiak
        sudo $PROG -i s/http_access\ allow\ gela-01/http_access\ deny\ gela-01/ $KONF_FILE;
        sudo $PROG -i s/http_access\ allow\ gela-02/http_access\ deny\ gela-02/ $KONF_FILE;
        sudo $PROG -i s/http_access\ allow\ gela-03/http_access\ deny\ gela-03/ $KONF_FILE;
        sudo $PROG -i s/http_access\ allow\ gela-04/http_access\ deny\ gela-04/ $KONF_FILE;
        sudo $PROG -i s/http_access\ allow\ gela-05/http_access\ deny\ gela-05/ $KONF_FILE;
        sudo $PROG -i s/http_access\ allow\ gela-06/http_access\ deny\ gela-06/ $KONF_FILE;
        sudo $PROG -i s/http_access\ allow\ gela-07/http_access\ deny\ gela-07/ $KONF_FILE;
        sudo $PROG -i s/http_access\ allow\ gela-08/http_access\ deny\ gela-08/ $KONF_FILE;

        sudo /etc/init.d/squid reload 1> /dev/null
        exit
    ;;

    *)
        echo "Content-type: text/html"
        echo ""
        echo "Gela hau ez da existitzen";
        exit 1;
    ;;
esac

exit

EU-Ejekutagarri egin dezagun.

ES-Vamos a hacerlo ejecutable.

    chmod +x /usr/lib/cgi-bin/kudeatu

EU-Goazen probatzera. Aginte hauek egikarituko ditugu eta ea funzionatzen duten.

ES-Ahora vamos a probarlo. Ejecutaremos estas ordenes y comprobaremos si funcionan bien.

EU-Kontuz! Probatu ondoren ez ahaztu /var/log/iak/iak.log fitxategia ezabatzeaz. root erabiltzaileak sortu du. Beste inork ez du baimenik fitxategi hortan idazteko. Scriptak idatz dezan, berak sortu behar du fitxategia.

ES-Atencion!: Después de probarlo, no os olvidéis de borrar el fichero de logs /var/log/iak/iak.log. Ha sido creado por root. Nadie más tiene derechos sobre el mismo. Para que el script pueda escribir en él, ha de cearlo él mismo.


    /usr/lib/cgi-bin/kudeatu gela-02 itxi
    /usr/lib/cgi-bin/kudeatu gela-02 ireki
    /usr/lib/cgi-bin/kudeatu defektuz

10.4. Web orria / Página Web

EU-Orain, web orri bat egingo dugu. Web zerbitzariaren iak direktorioan jarriko dugu. Debian banaketan /var/www/iak/. Sor dezagun direktorio hau.

ES-Ahora hay que hacer una página web. Pondremos esta página en el directorio iak del servidor web. En Debian, /var/www/iak/. Vamos a crear el directorio.


    
mkdir /var/www/iak

EU-Web orriaren izena iak.html izango da. Hemen duzu adibide bat:

ES-El nombre de la página será iak.html. Aquí hay un esqueleto o ejemplo:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>nire-eskola.net :: Internet Atzipen Kontrola</title>
  <meta http-equiv="Content-Type"
 content="text/html; charset=ISO-8859-1">
</head>
<body leftmargin="0" topmargin="0">
    <div style="text-align: center;">
        <img style="width: 78px; height: 72px;" alt="" src="goikoikurra-web.png"><br>
    </div>
    <div style="text-align: center;">
        <big style="text-decoration: underline; font-weight: bold;"><big><big>
        Internet Atzipen Kontrola</big></big></big><br>
    </div>
    <br>
    <form style="margin-top: 22px; height: 222px;" method="get" action="/cgi-bin/kudeatu" name="aukerak">
    <table style="text-align: left; margin-left: auto; margin-right: auto; width: 533px; height: 198px; background-color: rgb(255, 255, 255);"
 align="center" border="0">
        <tbody>
            <tr>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-01" type="radio">Gela-01<br>
                </td>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-02" type="radio">Gela-02<br>
                </td>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-03" type="radio">Gela-03<br>
                </td>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-04" type="radio">Gela-04<br>
                </td>
            </tr>
            <tr>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-05" type="radio">Gela-05<br>
                </td>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-06" type="radio">Gela-06<br>
                </td>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-07" type="radio">Gela-07<br>
                </td>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input name="gela" value="gela-08" type="radio">Gela-08<br>
                </td>
            </tr>
            <tr>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102);">
&nbsp;
                </td>
                <td colspan="2" style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102);"
 align="center">
                    <input name="ekintza" value="ireki" type="radio">Ireki &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    <input name="ekintza" value="itxi" type="radio">Itxi
                </td>
                <td style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102);">
                </td>
            </tr>
            <tr>
                <td colspan="4" rowspan="1" style="color: rgb(255, 255, 255); background-color: rgb(255, 102, 102); text-align: center;">
                    <input value=" Bidali " type="submit"></td>
            </tr>
        </tbody>
    </table>
    </form>
    <div style="text-align: center;">
        <img style="width: 283px; height: 85px;" alt="" src="behekoikurra-web.png"><br>
    </div>
</body>
</html>

10.5. Web zerbitzaria root bezala / Servidor Web como root

EU-Normalean, web zerbitzaria izango da, eta es root, script-a egikarituko duena. Bestalde, root baimenak behar dira squid prozesua kudeatzeko. Arazoa konpontzeko, root baimenak emango dizkiogu web zerbitzaria egikaritzen duen erabiltzaileari. Kasu hontan www-data. Soilik egikarituko behar ditu bi aginte.  Hortarako sudo agintea erabiliko dugu. sudo agintea /etc/sudoers fitxategian konfiguratzen da. Fitxategi hau editatzeko, visudo agintea erabiltzea da komenigarri. Horrela, bukatzerakoan, fitxategia ongi dagoen egiaztatzen da. Editatzeko, pultsa i. Aginte modura bueltatzeko, ESC pultsatu. Komando modutik, gorde eta irtetzeko, :wq. Hona hemen fitxategi honek izan behar duen itxura:

ES-Normalmente, será el servidor web y no el root, quien ejecutará el siguiente script desde la línea de comandos. Pero por otro lado, se necesitan permisos de root para manejar el squid. Para solucionar este problema, daremos autorizaciones root al usuario que ejecuta el servidor (www-data en Debian) para que ejecute estas órdenes. Esto se consigue con el comando sudo. El comando sudo se configura en el fichero /etc/sudoers. Para editar este fichero se recomienda usar el comando visudo, porque al salir comprueba si el fichero ha quedado bien. Para editar pulsar i. Para volver otra vez al modo de comando, ESC. Guardar y para salir (desde el comando) :wq. Esta es la apariencia de este fichero:


# Host alias specification
Host_Alias PROXYA = localhost, antibirusa

# User alias specification
User_Alias IAK = www-data

# Cmnd alias specification
Cmnd_Alias AGINTEAK = /etc/init.d/squid reload, /bin/sed

# User privilege specification
root ALL=(ALL) ALL

# Proxia berrabiarazteko eta sed erabiltzeko baimena
IAK PROXYA=(root) NOPASSWD:AGINTEAK

EU-Ikus dezakegunez, ez du pasahitzik eskatuko. Kitto!

ES-Como se puede ver, no va a pedir contraseña. Listo!

10.6. Segurtasuna / Seguridad

EU-Web orri hontan soilik sartu ahal izan behar da irakasle, zuzendaritza eta sareko azpisareetati¡k. Honez gain, soilik sartu behar dira irakasleak. Hortarako Apache konfiguratu behar dugu. /etc/apache2/conf.d/ direktorioan, iak.conf fitxategian, hurrengo hau jarriko dugu::

ES-Esta página sólo debe ser accesible desde las subredes de profesores, administración y red del centro. Además, sólo deben tener acceso a ella los profesores. Para ello debemos configurar Apache. En el directorio /etc/apache2/conf.d/ creamos el fichero inetktrl.conf con el siguiente contenido:


ServerAdmin webadmin@nire-eskola.net

<Directory /var/www/iak/>
     Order deny,allow
     Deny from all
    AllowOverride AuthConfig Limit
    Allow from 127.0.0.1 172.16.0 172.16.2 172.16.3
    AuthType Basic
    AuthName "Internet Atzipen Kontrola. Pasahitza behar duzu sartu"
    AuthUserFile "/var/lib/apache2/irakasleak.pass"
    Require valid-user
</Directory>

EU-Orain,. erabiltzaileak eta pasahitzak sortu behar ditugu /var/lib/apache2/irakasleak.pass fitxategian. 8 irakasle aukeratuko ditugu, eta baimendu egingo ditugu. Pasahitza eskatuko digu, eta lehenengo erabiltzailearekin -c parametroa jarri behar dugu, fitxategia sor dezan. Hurrengo aginteak egikaritu:

ES-Ahora tenemos que crear los usuarios y contraseñas en el fichero /var/lib/apache2/irakasleak.pass. Elegiremos 8 profesores y les autorizaremos. Nos pedirá la contraseña, y con la primera tenemos que establecer el parámetro –c para crear el fichero. Ejecutar las siguientes órdenes:


    htpasswd2 -c /var/lib/apache2/irakasleak.pass irakasle1
    htpasswd2 /var/lib/apache2/irakasleak.pass irakasle2
    htpasswd2 /var/lib/apache2/irakasleak.pass irakasle3
    htpasswd2 /var/lib/apache2/irakasleak.pass irakasle4
    htpasswd2 /var/lib/apache2irakasleak.pass irakasle5
    htpasswd2 /var/lib/apache2irakasleak.pass irakasle6
    htpasswd2 /var/lib/apache2/irakasleak.pass irakasle7
    htpasswd2 /var/lib/apache2/irakasleak.pass irakasle8

EU-Erabiltzailea ezabatu nahi badugu ordez, -D parametroa emango diogu.

ES-Si queremos eliminar el usuario, le daremos el parámetro –D al comando.

EU-Orain, apache egikaritzen duen prozesuak irakur ahal dezan, ugazaba aldatuko diogu:

ES-Ahora, para que lo pueda leer el proceso que ejecuta apache, tenemos que cambiar de dueño:


    chown www-data:root /var/lib/apache2/irakasleak.pass

EU-Azkenik, Apache berrabiaraziko dugu.

ES-Finalmente, hay que rearrancar apache.


    /etc/init.d/apache2 restart

10.7. Log fitxategia / Fichero de registro

EU-Lehen aipatu denez, erregistro fitxategia /var/log/inetktrl/iak.log da. Gehiegi has ez dadin, biratu egingo dugu. Hortarako /etc/logrotate.d/iak sortuko dugu hurrengo edukiarekin:

ES-El fichero de registro, como se ha mencionado anteriormente, es /var/log/iak/iak.log. Para que no crezca indefinidamente, vamios a rotarlo como todos los registros. Para ello, creamos un fichero /etc/logrotate.d/iak con el siguiente contenido:


/var/log/iak/iak.log {
    weekly
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 640 www-data www-data
    sharedscripts
}

10.8. Konfigurazio automatikoa / Configuración automática

EU-Goizean eta arratsaldean, klaseak bukatu ondoren, defektuzko konfigurazioa jarriko dugu atzipen kontrolean. Automatikoki egingodugu, cron bidez. Lan hau aginduko diogu egunero 15:30 eta 23:30 etan. Hortarako, kudeatu fitxategtia egikarituko du defektuz parametroarekin. Gure adibidean, klase guztiak itxiko ditu. cron lanak editatzeko:

ES-Al finalizar las clases de la mañana y de la tarde, pondremos la configuración por defecto en el control de acceso. Esto se pude hacer automáticamente con el cron. Le daremos una tarea al proceso cron. Tendrá que hacer esta tarea todos los días a las 15:30 y a las 23:30. Para realizar esta tarea ejecutará el fichero kudeatu con el parámetro defektuz. Este comando cerrará todas las clases al ejecutarse. Para editar las tareas cron:


    crontab -u root -e

EU-vi editorea zabaldko da. i piltsatu. Hurrengo lerrora joan eta hau idatzi:

ES-Se abrirá el editor vi. Pulsar i. Ir a la línea siguiente y escribir esto:


30 15,23 * * * /usr/lib/cgi-bin/kudeatu defektuz

EU-Azkenik, ESC eta :wq pultsatu. ENTER eman eta egina dago.

ES-Seguidamente, dar a ESC y :wq. Pulsando ENTER lo tenemos hecho.

EU-Proba dezagun ba aplikazioa. Hurrengo helbidea sartu nabigatzailean eta probatu.

ES-Vamos a probar el funcionamiento. Apunta tu navegador a la siguiente dirección y pruébalo.


http://antibirusa.nire-eskola.net/iak/iak.html

Sorte on!