dijous, 12 de juny del 2014

dissabte, 16 de novembre del 2013

Petita prova d'AJAX i PHP

He fet una petita prova amb PHP i Ajax com a demostració de concepte.

En PHP he fet un script per a generar captches (a partir de codi de tutorials, no en soc cap expert). L'script rep una key (hauria de ser aleatoria) i genera una imatge fent un crc32 de la key rebuda junt amb un salt.

Com es fa servir? Així:

<img src="captcha.php?k=[ALGUNA COSA ALEATÒRIA]">

Per tant, amb javascript el podríem fer servir així:

document.writeln("<img src='captcha.php?k="+Math.random()+"'/>");

El mateix script, si rep la key i un value, aplica la mateixa fórmula per comprovar que el value és l'associat a la key. A més, això ho torna en format JSON, cosa perfecte per fer una crida amb AJAX.

He fet una pàgina HTML amb Javascript i Ajax per provar-ho. Té aquesta pinta:

És tan sols una petita prova, però la comparteixo per si a algú li resulta útil. No és, ni molt menys, un captcha segur: fins i tot un robot miop el resoldria, però serveix com a demostració de concepte.

El podeu descarregar en format ZIP d'aquí. El password és falciot.org.



dimecres, 6 de març del 2013

Ping i traceroute a Linux

Aquesta és una pràctica que he fet a 1r de grau mitjà de SMX, al mòdul de Xarxes Locals. M'he basat en aquests dos articles:

 

Ping i traceroute a Linux

A aquesta pràctica treballarem amb les comandes ping i traceroute a Linux. Haureu de llegir la documentació d'aquestes comandes i respondre a les preguntes.

La documentació de la comanda ping la podeu trobar escrivint a la consola:

> man ping

O si ho preferiu, accedint a la web: http://linux.die.net/man/8/ping.

De manera similar, la documentació de la comanda traceroute la podeu trobar fent:

> man traceroute


És possible que la comanda traceroute no estigui instal·lada. En aquest cas s'han d'executar amb un sudo (heu de ser administradors!) les següents ordres per a instal·lar-la:

> sudo apt-get update
> sudo apt-get install traceroute

Comanda ping

El ping és una eina de les xarxes TCP/IP (com ara Internet) que permet, de forma similar a una trucada perduda, determinar si un servidor està funcionant i si s'hi pot arribar des d'una xarxa concreta amb l'ordinador des d'on es fa la prova. El programa envia paquets ICMP i n'espera les respostes. També és anàleg al funcionament dels sònars en els submarins, amb què es va inspirar el seu autor, Mike Muuss (http://en.wikipedia.org/wiki/Mike_Muuss).

És una eina molt útil per a la diagnosi de les connexions d'Internet. No obstant això, molts proveïdors de serveis d'Internet filtren o bloquen aquest tipus de sol·licitud.

Alguns cucs i altre programari maligne de la xarxa ho utilitzen per a trobar noves víctimes provocant, a més, problemes de saturació de la xarxa i desperfectes en els encaminadors (routers).

  1. Paràmetre -i. Esbrina que fa el paràmetre -i. Prova la comanda:
    > ping -i 1 8.8.8.8

    Què fa aquesta comanda? Prova ara aquesta altre:
    > ping -i 0.1 8.8.8.8

    Pots executar la 2a comanda? Prova-la fent un sudo al davant. Dedueix per quin motiu la 2a tan sols la pots executar com a administrador.

  2. Ping 0. Què fa aquesta comanda? De quines altres maneres podries escriure una comanda que fes el mateix?

  3. Paràmetre -c. Esbrina que fa el paràmetre -c. Prova la comanda:
    > ping -c 5 8.8.8.8

    Què fa aquesta comanda?

  4. Paràmetre -q. Consulta la documentació i esbrina que fa aquest paràmetre. Prova-ho amb combinació amb el paràmetre -c de l'apartat anterior.

  5. Paràmetre -f. Mira la documentació (el man) i esbrina que vol dir la f. Busca la traducció d'aquesta paraula al català i intenta deduir-ne el significat del paràmetre -f. Prova la comanda:
    > sudo ping -f localhost

    Què fa aquesta comanda? Per quina raó creus que s'ha d'executar com a administrador?

  6. Paràmetre -a. Aquest paràmetre no es pot provar a l'emulador de consola, no funcionaria. s'ha de provar a una consola virtual (fes CTRL+ALT+F1, i quan acabis, CTRL+ALT+F7). Un cop ets a la consola virtual, fes servir el teu usuari i clau per iniciar sessió.

    El primer pas és habilitar un mòdul el kernel:
    > sudo modprobe pcspkr

    Ara prova la comanda:
    > ping -a 8.8.8.8

    Mentre s'executa desendolla el cable de xarxa i torna a endollar-lo. Què fa el paràmetre -a? Per a què serveix el mòdul pcspkr que has habilitat abans?
    Més informació sobre consoles virtuals: http://goo.gl/OxoMa

  7. Paràmetre -w. Torna a la consula virtual i prova el paràmetre -w amb el paràmetre -a. Per exemple, fes:
    > ping -w 5 -a localhost

    Què fa el paràmetre -w? Consulta la documentació per esbrinar-ho.

  8. CTRL + |. Fes un la comanda:
    > ping -w 100 localhost

    Mentre s'executa fes CTRL + | (en realitat hauràs de fer CTRL + ALT Gr + 1). Que veus? Per a què serveix aquesta comanda?

Comanda traceroute

Traceroute és una eina de diagnòstic que permet seguir la pista dels paquets que vénen des d'un host (punt de xarxa). S'obté a més una estadística del RTT o latència de xarxa d'un paquet, el que ve a ser una estimació de la distància a la qual estan els extrems de la comunicació. Aquesta eina es diu traceroute en UNIX, Mac i GNU/linux, mentre que en Windows es diu tracert.

  1. Consulta l'adreça http://es.wikipedia.org/wiki/Traceroute#Funcionamiento i explica, amb les teves paraules, com funciona la comanda traceroute.

  2. 1a prova. Prova la següent comanda:
    > traceroute gencat.cat
    Què es mostra per pantalla? Per quina raó hi ha tres temps (en milisegons) al final de cada línia? Consulta el man per esbrinar-ho.

  1. 2a prova. Prova la següent comanda:
    > traceroute gogo.jp
    Apareixen * en lloc d'IPs o de milisegons en alguna línia? Per quina raó creus que passa?
  1. Paràmetre -n. Consulta la documentació i esbrina que fa aquest paràmetre. Prova la comanda:
    > traceroute -n google.cat

  2. Paràmetre -w. Consulta la documentació i esbrina que fa aquest paràmetre. Fes-lo servir amb el paràmetre -n. Prova la comanda:
    > traceroute -w 0.1 -n gogo.jp

  3. Paràmetre -q. Consulta la documentació i esbrina que fa aquest paràmetre. Prova la comanda:
    > traceroute -q 5 google.cat

  4. Paràmetre -f. Prova les comandes:
    traceroute gencat.cat
    > traceroute -f 5 gencat.cat
    Què creus que fa el paràmetre -f?


diumenge, 27 de gener del 2013

LAMP + PHPMYADMIN + WORDPRESS a Ubuntu Server 12.04

Aquesta pràctica l'he feta al mòdul 4 de Llenguatges de Marques de 1r de DAW i 1r d'ASIX. L'objectiu és instal·lar un wordpress a un Ubuntu Server 12.04. M'he basat en aquest article d'instal·lació de wordpress a Ubuntu, però fent servir el tasksel per simplificar-ho. Ho hem fet amb una màquina virtual amb la xarxa configurada com a adaptador pont. L'usuari de la màquina virtual és diu alumne i tenia creat un directori www al home d'aquest usuari amb el phpmyadmin i wordpress descarregat. Per descarregar-los he fet servir les següents ordres wget:

> wget http://downloads.sourceforge.net/project/phpmyadmin/phpMyAdmin/3.5.5/phpMyAdmin-3.5.5-all-languages.tar.gz

> wget http://ca.wordpress.org/wordpress-3.5-ca.tar.gz

LAMP + SSH

> sudo tasksel

i seleccionar LAMP i SSH

MYSQL

Està instal·lada la BD? Provem-ho:

> mysql -u root -p

Demana el password. Un cop dins del client mysql, podem fer una consulta:

> select curtime();

Per sortir:

> quit

Per defecte, MYSQL s'inicia amb el sistema. Per reiniciar, parar o iniciar el servidor MySQL

> sudo /etc/init.d/mysql restart|stop|start

APACHE

El servidor web està instal·lat i funcionant. Provem-ho connectant-nos a la IP del servidor amb el navegador. Per saber la IP:

> ifconfig

Per comprovar que funciona correctament, canviem la pàgina web per defecte que mostra. Aquesta pàgina està al directori /var/www

> cd /var/www

> sudo pico index.html

Modifica la pàgina web. Per sortir CTRL + X i s'ha de dir Yes per guardar els canvis. Desprès, refresca la web i veuràs els canvis.

Per defecte, Apache s'inicia amb el sistema. Per reiniciar, parar o iniciar el servidor Apache:

> sudo /etc/init.d/apache2 restart|stop|start

Fem un canvi de configuració a l'Apache2. En lloc de fer servir el directori /var/www com a carpeta principal, farem servir la carpeta /home/alumne/www (per comoditat)
Aquesta carpeta ja la teniu creada.

S'ha de canviar un dels fitxers de configuració de Apache per indicar el canvi de directori

> cd /etc/apache2/sites-enabled

Edito el fitxer 000-default 

> sudo pico 000-default 

Als dos llocs on posa /var/www ara ha de posar /home/alumne/www. Guardo el fitxer i reinicio el servidor web

> sudo /etc/init.d/apache2 restart

Torno al directori principal i per fer una pàgina web

> cd /home/alumne/www

Creo un fitxer anomenat index.html

> pico index.html

Un cop hi he posat alguna cosa, la guardo i torno a refrescar el navegador.

PHP5

Com podem comprovar-ho? Farem una pàgina php simple.

> cd /home/alumne/www

Esborrem index.html

> rm index.html

Creem un fitxer anomenat index.php

> pico index.php

Dins podem escriure, per exemple, el següent codi:

<html>
<body>
<?php 
for ($i = 1; $i <= 10; $i++) {
    echo "<br>".$i;
}
?>
</body>
</html>

Guardem el fitxer i recarreguem la pàgina web al navegador

PHPMYADMIN

Anem a la carpeta www on teniu descarregat el phpMyAdmin

> cd /home/alumne/www

Descomprimim el fitxer

> tar -xzvf phpMyAdmin-3.5.5-all-languages.tar.gz

Canviem el nom del directori on hi està el phpMyAdmin

> mv phpMyAdmin-3.5.5-all-languages phpmyadmin

Probem la instal·lació obrint al navegador el phpmyadmin: http://IP_DEL_SERVIDOR/phpmyadmin. L'usuari que demana és el de la base de dades (usuari root i password alumne)

Amb el phpmyadmin crearem un usuari anomenat wordpress amb password wordpress amb una base de dades del mateix nom.

WORDPRESS

A la carpeta www hi ha la darrera versió de wordpress en català descarregat. El descomprimim:

> tar -xzvf wordpress-3.5-ca.tar.gz

Configuro les dades d'accés a la base de dades des del wordpress. A la carpeta wordpress edito el fitxer wp-config-sample.php

> pico wp-config-sample.php

Canvio els valors de:
  define('DB_NAME', 'wordpress');
  define('DB_USER', 'wordpress');
  define('DB_PASSWORD', 'wordpress');

També s'han de canviar els valors de:

define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');

La millor opció es posar els valors aleatoris que surten si et connectes a https://api.wordpress.org/secret-key/1.1/salt/

El fitxer s'ha de guardar com a wp-config.php

Per últim, es connectem a http://IP_DEL_SERVIDOR/wordpress i iniciem la configuració del wordpress

dissabte, 13 d’octubre del 2012

Nou curs 2012-2013 a Vilanova

Ja portem un mes de curs. Aquest any soc al Institut Joaquim Mir de Vilanova i la Geltrú. Aquest curs jugo a casa! Ara mateix vaig una mica de bòlit. M'he embolicat en un altre prqjecte i m'està costant compaginar-ho tot, però anem fent. Aquest curs al Mir faig tres mòduls:
  • M03 Programació (UF4, UF5 i UF6) i la UF4 del M02 Bases de dades de DAW. Què vol dir això? Què faig l'assignatura sde Programació Orientada a Objectes de 2n de DAW! M'encanta aquesta assignatura. L'estic muntant tota des de zero. 
  • M04 Llenguatges de Marques de DAW i ASIX. Faig aquesta assignatura de 1r a dos grups (menys feina)
  • M05 Xarxes locals a SMX. Assignatura de 1r de grau mitjà sobre xarxes.
El material de Llenguatges de Marques i de Xarxes Locals que faig servir és material de l'institut. L'amplio i el "matitzo", però no el puc compartir en no ser meu.

Com he dit, el material de l'assignatura de POO l'estic fent sencer des de zero. Estic plantejant l'assignatura amb Java en entorn Eclispe i, la veritat, està anant molt bé. En breu alliberaré el material que estic fent servir. Estigueu atents a aquest bloc ;)

divendres, 13 de juliol del 2012

Aplicació d'enquestes en PHP

He decidit fer pública i lliure l'aplicació d'enquestes que vaig desenvolupar en PHP per a fer una sèrie d'enquestes als alumnes de l'Institut Provençana durant el curs 2011/2012.

Aquesta aplicació està pensada per a fer una sèrie d'enquestes per saber les opinions dels alumnes per a cada un dels mòduls o cedits que fan. A més, també se'ls enquesta sobre l'us de la llengua i sobre aspectes diversos de l'institut.

Cada grup té una clau d'accés propia. El tutor els hi dóna i poden fer les enquestes d'us de la llengua i d'aspectes diversos de l'institut a més d'una enquesta per a cada mòdul o crèdit que fan. La clau d'accés es genera amb l'enllaç "Generar PDFs informatius" que es veu a la imatge. Aquesta pàgina, protegida per una clau, genera PDFs per a donar als tutors on surt la clau i altres dades de les enquestes.
El nombre de grups i els mòduls o crèdits que fa cada grup és configura mitjançant un fitxer en format CSV. Tambés són configurades així les preguntes de cada enquesta i es poden fer preguntes de diferents tipus (radio, checkbox, text i textarea).

Les respostes s'emmagatzemen en format CSV. L'aplicació, mitjançant l'enllaç "Generar URLs amb els resultats" genera les URLs per a enviar als tutors, professors i/o responsables amb els resultats de les enquestes. Aquestes URLs són pseudo segures i no es poden deduir.

L'aplicació la podeu descarregar d'aquest enllaç: aplicació d'enquestes en PHP

És un arxiu zip amb contrasenya, que és falciot.org. Heu de llegir, en primer lloc, el fixter README.txt que conté amb més informació.

dimecres, 25 d’abril del 2012

Configuració de OCS Inventory NG

Aquesta és una pràctica de configuració d'una màquina virtual sobre VirtualBox amb l'eina d'inventari OCS Inventory NG instal·lada.

La màquina virtual la podeu descarregar directament de la web de OCS Inventory NG: http://www.ocsinventory-ng.org/en/download/download-server.html. A la part inferior de la pàgina podeu trobar diverses màquines virtuals descarregables. Es recomanable fer servir la versió Ubuntu Server 11.04 de 32 bits, tot i que podeu fer servir qualsevol de les disponibles. Al fitxer que descarregueu trobareu un disc dur en format vmdk, compatible amb VirtualBox.

Per instal·lar i configurar la màquina virtual seguiu els passos següents. Aquestes instruccions s'han elaborat a partir del manual següent: http://wiki.ocsinventory-ng.org/index.php/Howtos:VMOcsinventory-ng
  1. Heu de crear una nova màquina virtual amb aquest disc dur, configurant un adaptador de xarxa en pont (bridge). Això significa que la màquina virtual formarà part de la mateixa xarxa on és la màquina amfitriona.

  2. Inicieu la màquina virtual (usuari root i clau ocs)

  3. Configureu la xarxa al fitxer /etc/network/interfaces (al següent enllaç tens com fer-ho: http://www.tribulinux.com/tutoriales-como-configurar-la-red-de-ubuntu-debian-desde-la-consola.html)

  4. Reinicieu la xarxa.

  5. Comproveu que teniu connexió amb l'exterior.

  6. Si no us trobeu còmodes amb el teclat, podeu instal·lar console-data (apt-get install console-data) i configurar-ho (dpkg-reconfigure console-data)

  7. Editeu el fitxer /etc/hosts i canvieu la IP 10.10.10.10 per l'adreça IP que tingui la màquina.

  8. Genereu el certificat SSL executant /ocs/apache_generate_cert.sh. Posseu la vigència en dies del certificat (100 dies o la xifra que vulgueu) i podeu deixar tots els camps del certificat en blanc excepte el que demana el Common Name, que heu de posar ocsinventory-ng.

  9. A la màquina amfitriona (o real) o des de qualsevol altre, obre un navegador web amb l'adreça http://ip_de_la_màquina_virtual/ocsreports/ canviant ip_de_la_màquina_virtual per l'adreça IP de la màquina virtual. Comprova que veus l'aplicació OCS Inventory NG.

  10. D'aquesta manera teniu l'eina d'inventari OCS Inventory NG instal·lada i configurada a la vostre xarxa. Per tal de que pugui fer un inventari dels equips presents a la xarxa, caldria instal·lar a aquests equips el client (anomenat agent). Al següent enllaç trobareu versions per a Linux/Unix, Windows i Mac de l'agent: http://www.ocsinventory-ng.org/en/download/download-agent.html.

    Per a clients Windows, tan sols cal descarregar i instal·lar l'agent de l'enllaç anterior. L'auxiliar d'instal·lació ja demana els paràmetres necessaris per a establir connexió amb el servidor.

    Per a clients Ubuntu, l'opció més còmode és instal·lar el paquet ocsinventory-agent. En aquest cas, tan sols cal tenir al fitxer /etc/hosts la IP del servidor associada al nom ocsinventory-ng. Per iniciar l'agent s'ha d'executar: sudo ocsinventory-agent

  11. Instal·leu i inicieu un agent. Accediu de nou a la web de la vostra aplicació d'inventari. L'usuari d'accés és admin i la clau és també admin. Entreu a l'opció de visualitzar totes les màquines. A més de la dades de la màquina virtual on està funcionant l'aplicació OCS Inventory NG, heu de veure les dades de la màquina on heu instal·lar l'agent.