El teu blog de Linux en català

Xarxes i seguretat

Fins ara, hem après algunes eines que formen part de ssh i que ens permetien, per mitjà d’una connexió xifrada, copiar fitxers amb scp o navegar pels directoris remots amb sftp. En aquesta anotació veurem com connectar-nos des d’un terminal del nostre ordinador a l’equip remot, de manera que totes les comandes que executem es faran en el servidor.

Això ens serà molt útil en entorns empresarials, on tenim diversos servidors, i no podem anar a treballar físicament en cadascun d’ells, perquè potser estan en diverses ubicacions, o en CPDs. En entorns domèstics, on els ordinadors són molt més propers, segurament la seva utilitat és més limitada, però no descartable.

Per a connectar-nos des d’un terminal a un ordinador remot (com hem comentat en articles anteriors, ha de tenir instal·lat el paquet “openssh-server”), cal executar la comanda següent:

ssh usuari_servidor@ip_servidor

Aquesta comanda ens connectarà directament amb el servidor si hem configurat correctament la connexió a través de clau pública+clau privada. En cas contrari, ens demanarà la paraula de pas de l’usuari en el servidor.

Un cop establerta la connexió, totes les comandes que escrivim en aquest terminal seran executades en el servidor, i aquest ens mostrarà la resposta de les comandes a través del mateix terminal des del que estem connectat. És a dir, és com si, en el terminal, estiguéssim connectats de forma local en el servidor i, per tant, veurem la seva estructura de directoris i els seus fitxers, però no els “nostres”. Per a tancar la connexió amb el servidor, només cal executar en el mateix terminal l’ordre següent:

exit

Una altra opció que tenim amb ssh és la d’executar-hi una comanda qualsevol, però sense mantenir la connexió establerta un cop s’acabi l’ordre. Això es pot fer amb la comanda següent:

ssh usuari_servidor@ip_servidor "ordre_a_executar_al_servidor"

Aquesta comanda executa l’ordre indicada en el servidor. El servidor ens retorna la resposta de la comanda i, un cop acabada, tornem a tenir el terminal desconnectat del servidor (de forma que no cal executar “exit” per a desconnectar-nos).

De moment, tal i com ho hem vist fins ara, només podrem executar comandes del servidor que no tinguin interfície gràfica (si ho provem, ens donarà l’error “no display specified“). En la propera anotació veurem com executar programes de l’ordinador remot que tinguin interfície gràfica.

Ho vaig veure primer a Slashdot i ahir ja en parlaven altres pàgines com The Inquirer, la font original de tot és un bloc anomenat opensourcenerd. El titular, tot i així, porta a confusió: ha de quedar clar que els virus afecten només als programes que fan servir Wine, no al sistema en general.

3060834097_9c15383c90

Sembla que Wine ha avançat tant amb el seu desenvolupament que ha aconseguit la possibilitat de poder ser infectat per un virus fet per a windows. Des d’aquest bloc que us comentem, es va fer l’experiment d’instal·lar un anomenat malware que es pot trobar per internet i que es fa passar per antivirus, l’anomenat Windows Police Pro.

Wine executa tan bé aquest programa que el procés d’infecció s’inicia correctament. Així, el sistema Wine es va modificar incloent explorer.exe, cosa que va suposar que per netejar-ho tot calguera purgar el paquet wine i tornar a instal·lar-lo. Sense cap mena de dubte una experiència curiosa.

Potser caldria que alguns programadors de GNU/Linux es dedicaren a programar virus de forma seriosa per veure com reacciona el sistema ja que tots sabem que, tot i que actualment el tema dels virus no ens preocupa, en un futur podria ser un problema. Millor estar preparats.

Llegiu també:

Fins avui, hem vist un parell d’eines que permeten la connexió segura entre dues màquines a través del protocol ssh (en el cas de Linux, l’estem fent amb la implementació lliure openssh). Els dos programes que hem vist fins ara, i que formen part del grup d’eines de ssh són el scp i el sftp (totes dues ens servien per a copiar fitxers de forma segura entre equips). El protocol ssh funciona amb una arquitectura client-servidor. És a dir, hi ha un ordinador (el client) des del qual ens connectem a un equip remot (el servidor). Com vam veure en l’anotació del sftp, a la majoria de distribucions hi ha instal·lat el client ssh (per a poder-nos connectar amb altres equips per mitjà de ssh), però no el servidor, i per tant, hem d’instal·lar el paquet “openssh-server” en aquells equips on volem acceptar connexions d’altres ordinadors (els servidors).

Logo d'OpenSSH

A l’hora d’identificar-nos en el servidor, ssh preveu dos mètodes bàsics. El primer és el que hem vist fins ara: ens intentem connectar, i el servidor ens demana l’usuari i la contrasenya. El segon mètode és el que mostrarem en aquesta anotació: emprar l’infrastructura de clau pública i clau privada. Bàsicament, el que farem és, en el client, generar un parell de claus: una de privada, que ens quedarem per a nosaltres, i una altra de pública, que enviarem als equips als quals ens vulguem connectar per tal que puguin desxifrar el que els enviem. L’avantatge d’això és que, un cop el servidor accepti la nostra clau pública, no haurem d’entrar mai la contrasenya de l’usuari de connexió.

Per a generar el nostre parell de claus (pública + privada), hem d’executar la comanda següent des d’un terminal de l’ordinador client:

ssh-keygen

Si premem [Enter] a totes les preguntes que ens faci el programa, ens generarà dos fitxers en el propi equip client, tots dos en el directori /home/el_nostre_usuari/.ssh:

  • id_rsa: És la nostra clau privada. L’hem de deixar tal qual.
  • id_rsa.pub: És la clau pública. La passarem a l’equip que faci de servidor.

Ara, hem de copiar la nostra clau pública a l’ordinador que ens fa de servidor. Podem aprofitar el propi programa scp, executant des d’un terminal en l’equip client:

scp /home/el_nostre_usuari/.ssh/id_rsa.pub usuari_servidor@ip_servidor:id_rsa.pub

Aquesta comanda ens demanarà la paraula de pas de l’usuari del servidor (perquè encara no hi tenim acceptada la nostra clau). Aquesta ordre ens haurà deixat la nostra clau pública al directori /home/usuari_servidor. Per tal que el servidor accepti aquesta clau, només cal afegir el contingut de la clau pública al final del fitxer authorized_keys del servidor. O sigui que, en el servidor, i des d’un terminal, executem la comanda següent:

cd /home/usuari_servidor
cat id_rsa.pub >> .ssh/authorized_keys

I ja ho tenim. A partir d’ara, quan des de l’equip client utilitzem qualsevol programa que formi part del grup d’eines de ssh (com el scp, el sftp i alguna altra que veurem en anotacions futures), com a destí només caldrà posar “usuari_servidor@ip_servidor“, i en cap moment ens demanarà la seva contrasenya, perquè s’acceptarà automàticament. Per exemple, ens podrem connectar via sftp amb les comandes següents:

sftp://usuari_servidor@ip_servidor

En cap moment ens demanarà la contrasenya de l’usuari. És més, si el nom d’usuari del client i del servidor són el mateix, nomès caldrà posar “ip_servidor” (en el cas de sftp, serà “sftp://ip_servidor“).

En anotacions posteriors veurem altres coses que podem fer amb les eines del paquet ssh.

A la primera part es van instal·lar els mòduls per aconseguir que la targeta inalambrica ipw2200 pugui injectar paquets.

En aquesta segona part, s’explicarà com fer petar una xarxa (crackejar-la) per comprovar-ne la seguretat. Per fer-ho, s’usarà el programa aircrack-ng. En un apunt anterior, ja es va explicar el funcionament detallat d’aquest programa. Tanmateix, els passos a seguir amb l’aircrack difereixen segons la targeta inalàmbrica que es tingui. Per tant, aquest tutorial està enfocat concretament a la targeta Intel Pro/Wireless 2200bg (ipw2200). Alhora, es prestarà especial atenció als petits problemes que un se sol trobar, i els trucs que hi ha per solucionar-los.

0. Obrim una consola

Primer de tot s’obrirà una consola com a suprausuari (root). Per fer hi ha dues opcions. Si es disposa d’un compte per l’usuari root, escriurem l’orde següent i s’hi indroduirà la contrasenya.

su

Com que l’usuari root no està habilitat per defecte en Ubuntu, tenim una altra opció

sudo -s

Serà molt més útil i s’evitarà fer-se un embolic obrint noves pestanyes en lloc d’obrir terminals. No us oblideu d’entrar-hi sempre com a suprausuari.

1. Monitorització de la xarxa

El primer s’ha de fer és desactivar el Network Manager. Hi ha dues opcions. La més recomanada és anar sobre l’applet i amb el botó secundari es desmarca l’opció “Habilita la xarxa sense fil. L’altra opció és eliminar-lo a través de la terminal.

killall nm-applet

Engeguem l’airodump-ng. Això ens permetrà veure les xarxes inalàmbriques que es troben dins del rang.

airodump-ng rtap0

Esperem una mica perquè es puguin detectar totes les xarxes disponibles i s’ordenin de millor a pitjor senyal. Observem el tipus de seguretat de cada xarxa, i ens centrem amb les que la tenen del tipus WEP (AUTH).

Ens quedarem amb tres informacions importants.

  • El nom de la xarxa (ESSID).
  • L’identificador numèric de la xarxa (BSSID). Al tutorial s’abreuja a BSSID
  • El canal (CH) a través del qual s’emet.

Un cop tenim aquesta informació parem el monitor amb la combinació de teclat ctrl+c.

2. Associar-nos al Punt d’Accés

Ara reiniciarem els paràmetres de la configuració inalàmbrica perquè no interfereixin amb l’auditoria. Es recomana executar aquest ordre prèviament a la monitorització de les xarxes del punt anterior, ja que de vegades la informació emmagatzemada de la última connexió inalàmbrica interfereix en el procés de detectar noves xarxes. Per simplificar el tutoria es canviarà l’adreça MAC de la targeta inalàmbrica a 00:11:22:33:44:55.

iwconfig eth1 essid 0 channel 0 && ifconfig eth1 up hw ether 00:11:22:33:44:55 && iwconfig eth1 rate 1M

Ara bé el pas decisiu. Us heu d’associar al Punt d’Accés. Per fer-ho, heu d’escriure el nom de la xarxa inalàmbrica i el número del canal. Si el nom de la xarxa conté espais, heu d’escriure el nom entre dobles cometes (p. ex: “Xarxa que te espais”). Si és un nom ocult, només heu d’escriure dues doble cometes sense cap espai entremig (p. ex: “”).

iwconfig eth1 essid nom_de_la_xarxa channel numero_de_canal key s:fakekey mode managed

Si s’està lluny del Punt d’Accés costa fer l’associació. Cal tenir paciència i esperar una mica. És recomanable moure l’ordinador per diversos llocs amb l’objectiu d’estar més aprop del Punt d’Accés i anar mirant l’estat de l’associació amb l’ordre següent. Aquest fet pot marcar la diferència entre associar-se, o no. Quan llegim un missatge en anglès que ens diu Associated ho haurem aconseguit.

iwconfig

3. Captura de paquets

Un cop ens diu que hi estem associats, és l’hora de capturar els paquets.

airodump-ng --bssid BSSID -w dump rtap0

Ara haurem d’esperar fins que veiem que la columna #Data creix una miqueta i ja no mostra el número zero. Això significa que hem començat a capturat paquets. Convé durant tot el procés no tancar mai aquesta aplicació, ja que a través d’aquest monitor veurem si la injecció funciona o no, i la quantitat de paquets capturats.

4. Atac / Injecció de paquets

Aquest és el quid de la qüestió, i el motiu per al qual hem compilat els mòduls de la targeta inalàmbrica perquè pugui injectar paquets. A partir d’uns quants paquets capturats amb l’airodump-ng (de vegades amb només capturar-ne un ja funciona), podem injectar una gran quantitat de paquets per segon. Així no cal esperar dies i dies a que es generi el suficient trànsit per acumular suficients paquets, i finalment, desxifrar la contrasenya.

Si no us n’heu sortit compilant els mòduls de la primera part del tutorial, salteu-vos aquest apartat i aneu directament a l’apartat 5.

4.1. Atac -3

Aquest és el meu atac preferit, perquè amb no res ja podem injectar. No cal ni trobar clients associats al Punt d’Accés.

aireplay-ng -3 -x 1024 -g 1000000 -b BSSID -h 00:11:22:33:44:55 -i rtap0 eth1

S’ha d’esperar una bona estona, i si tot va bé, veureu com la columna de #Data de l’airodump-ng puja ràpidament i el missatge que diu got 0 IPV, passarà del número zero a un número que no pararà de créixer. Això significa que esteu injectant. Enhorabona!

4.1. Atac -4

Aquest atac és més tediós, però de vegades és l’únic remei que ens queda. A més a més, no tots els paquets que capturem serveixen, per al que probablement haureu de provar-ho amb paquets diferents fins que surti (si és que surt).

Quan el programa digui Use this packet?, s’ha de dir y (de yes). Si el paquet no és l’adequat, s’ha der dir que n (de no) i us en deixarà escollir un altre. S’ha de tenir en compte que no serveixen els paquets emesos per vosaltres a causa, per exemple, d’una desconnexió / connexió.

aireplay-ng -4 -a BSSID -h 00:11:22:33:44:55 -i rtap0 eth1

Si tot va bé, veurem una llista amb un número i un percentatge que va augmentant. Quan arribi al 100% ho haureu aconseguit. La sortida del programa ens donarà un nom de paquet .xor, de l’estil.

replay_dec-0000-99999.xor

Ara només caldrà ficar el nom correcte del paquet .xor i executar.

packetforge-ng -0 -a BSSID -h 00:11:22:33:44:55 -k 192.168.1.100 -l 192.168.1.101 -y replay_dec-0000-99999.xor -w arp-request

I ara ja estem preparats per injectar.

aireplay-ng -2 -r arp-request eth1

Si tot va bé, veureu com la columna de #Data de l’airodump-ng puja ràpidament. Això vol dir que esteu injectant.

5. Obtindre la clau

Un s’aconsegueix injectar, ja podem executar el programa per crackejar la clau WEP. El podem deixar funcionant mentre injecta i ell ens trobarà la contrasenya. Normalment ens la treurà amb Hexadecimal, i si té equivalent en ASCII també. Al Network Manager podeu ficar ambdues claus, però li heu de treure tots els dos punts (:) de la clau en Hexadecimal, i deixar-ho com una contrasenya de l’estil af1000dc98af5333, per ficar un exemple.

aircrack-ng -z dump*.cap

6. Netejar

Es netegen tots els fitxers que s’han creat.

rm dump* replay* arp-request*

7. A navegar!

Ara es torna a habilitar la xarxa inalàmbriques al Network Manager. Si l’heu tancat, es pot tornar a obrir amb la combinació de teclat alt+F2, i hi escriviu

nm-applet

Agraïments

Gràcies especialment a l’usuari sky de p1mp4m.es, per la seva inestimable contribució.

Fonts

http://www.p1mp4m.es/index.php?showtopic=24

Seguint amb el tutorial que el Jordi va fer fa temps, m’agradaria iniciar un nou tutorial que tindrà dues parts.

A la primera part s’explicarà com instal·lar els mòduls (drivers) per poder fer que la vostra targeta inalàmbrica pugui injectar paquets.

A la segona part s’explicarà com fer funcionar el programa aircrack-ng per poder fer (crackejar) petar les xarxa inalàmbrica, també dites wifi.

0. Preàmbul. Quan fer-ho servir

Aquest programa, i en concret aquest tutorial, no s’ha d’usar malintencionadament. Aquesta guia s’ha fet amb el pròposit de comprovar la seguretat de les xarxes inalàmbriques, i en concret, la seguretat de la de casa vostra.

Aquesta primera part del tutorial no és indispensable per poder crackejar una xarxa wifi. Si no us en sortiu amb la injecció podeu, podeu seguir la segona part del tutorial, on s’explica com capturar paquets. Així, quan n’haveu recollint uns 40.000 o 60.000, ja podreu desxifrar la contrasenya de la xarxa wifi sense necessitat d’haver-ne d’injectar. Tanmateix, no em faig responsable del temps que es tardi seguint aquest mètode. Tot dependrà del tràfic generat per les persones que usin aquesta xarxa.

1. Identificant el maquinari

Primer de tot, s’ha de comprovar la targeta inalàmbrica que teniu.

lspci | grep Network

Si surt una sortida com aquesta.

06:05.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)

S’està fent servir la targeta inalàmbrica Intel Pro Wireles 2200BG, i el controlador que s’utilitza s’anomena ipw2200. Per assegurar-se del mòdul que s’utilitza.

lsmod | grep ipw2200

Efectivament, s’ha d’estar usant usant aquest mòdul, i per tant, s’obtindrà quelcom semblant a:

ipw2200 191432 0
ieee80211 55020 1 ipw2200

Un cop identificat el maquinari, s’explicarà com instal·lar els mòduls amb suport per injectar paquets. Si la targeta que s’està usant no és aquesta, podeu buscar-ne el controlador a Internet a partir de la informació del maquinari i del mòdul que s’ha obingut d’executar les ordres anterior, i afegint la paraula “injecció” al cercador.

2. Consideracions preliminars

Aquest tutorial s’ha provat en un Ubuntu 9.04 Jaunty Jackalope, amb la versió del nucli 2.6.28-14-generic. Tanmateix, no hi hauria d’haver cap problema en instal·lar el mòdul en qualsevol altra versió de la branca del nucli 2.6.28. Si ho proveu amb un altre nucli o amb un altre sistema que no sigui l’Ubuntu 9.04 Jauny Jackalope, us agrairia que ho escrivíssiu als comentaris, perquè així ajudareu altra gent amb el vostre sistema. Per comprovar la versió del nucli que s’utilitza.

uname -r

Com que es necessita compilar els mòduls, és necessari que tinguem instal·lats els build-essentials.

sudo aptitude install build-essential

Com que s’ha d’afegir un mòdul al nucli, cal instal·lar les capçaleres del Linux.

sudo aptitude install linux-headers-`uname -r`

Ara ja està tot enllestit per passar al següent pas, la instal·lació dels mòduls al nucli. Cada cop que s’instal·la un nou nucli, es perdrà la capacitat d’injecció i s’haurà de fer tot el procés de nou. Per tant, es recomana que sempre que s’auditi la seguretat d’una xarxa inalàmbrica, s’entri des del nucli on s’ha recompilat el nou mòdul amb suport per a la injecció de paquets.

3. Instal·lant els mòduls amb suport per a la injecció de paquets

Creem una carpeta per tenir-ho tot ordenat.

mkdir wifi; cd wifi

Descarreguem l’arxiu on hi ha els mòduls a instal·lar.

wget http://gnulinux.cat/dev/Injeccion_p1mp4m.tar.gz

Ho descomprimirem.

tar zxvf ieee80211-1.2.18.tgz
tar zxvf ipw2200-1.2.2.tgz
tar zxvf ipw2200-fw-3.1.tgz

Apliquem els pedaços.

patch -p0 < ieee80211-1.2.18_p1mp4m.patch
patch -p0 < ipw2200-1.2.2_p1mp4m.patch

Eliminem la versió anterior, compilem i instal·lam l’ieee80211-1.2.18.

cd ieee80211-1.2.18/
chmod +x remove-old
sudo ./remove-old
sudo make SHELL=/bin/bash
sudo make install SHELL=/bin/bash

Eliminem la versió anterior, compilem i instal·lam l’ipw2200-1.2.2.

cd ../ipw2200-1.2.2/
chmod +x remove-old
sudo ./remove-old
sudo make SHELL=/bin/bash
sudo make install SHELL=/bin/bash

Instal·lem la nova versió del firmware. S’ha de tenir present que en altres distribucions com ara el Debian, la carpeta on es s’emmagatzema el firmware pot canviar de lloc.

cd ../ipw2200-fw-3.1/
sudo cp ./* /lib/firmware/`uname -r`/

Editem o creem l’arxiu /etc/modprobe.d/options.conf perquè es carregui el mòdul automàticament a l’engegar l’ordinador.

gedit /etc/modprobe.d/options.conf

Hi afegim aquesta línia

options ipw2200 rtap_iface=1 led=1

Esborrem els mòduls ieee80211 i ipw2200 que estan carregats ara mateix. (Opcionalment podeu veure els mòduls que estan actualment carregats executant lsmod | grep ieee80211.)

sudo rmmod ieee80211
sudo rmmod ieee80211_crypt
sudo rmmod ipw2200

Carreguem els mòduls recentment compilats.

sudo modprobe ipw2200 rtap_iface=1

Si heu arribat fins aquí, felicitats, ja teniu la targeta preparada per injectar tants paquets per segon com vulgueu.

Agraïments

Gràcies especialment a l’usuari sky i bugmenot de p1mp4m.es, per la seva inestimable contribució.

Fonts

http://www.p1mp4m.es/index.php?showtopic=137

Existeixen moltes formes de configurar un servidor Apache, MySQL i PHP al nostre ordinador. Fins ara, jo havia fet servir Xampp, una eina molt útil i fàcil d’instal·lar i fer servir. Ara bé, també és cert que no hi ha molta documentació (tot i que realment el Xampp no és més que un lampp, conegut per molts i per tant no ha d’haver-ne molta documentació perquè no és necessari).

Hui explicaré una altra manera, i ho faig més a mode d’enrecordar-me jo per a un futur de com fer-ho que per altra cosa (per això mateix ho explique només per a Ubuntu…). Si algú ho veu interessant o vol apuntar alguna cosa, no dubteu a fer-ho.

Paquets que cal instal·lar

Bàsicament executant la següent ordre serà suficient:
sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server phpmyadmin
Durant la instal·lació, a la configuració del mysql us demanarà que introduïu una contrasenya. No ho deixeu buit, perquè si no, el phpmyadmin no us deixarà entrar després (per defecte no permet entrar sense contrasenya). Una vegada instal·lat, cada vegada que inicieu el sistema tot allò necessari del servidor s’arrencarà per defecte.

Activació del phpmyadmin

A l’hora de configurar llocs web a local, caldrà modificar dos fitxers: /etc/apache2/sites-available/default [1] i /etc/hosts [2]. Per configurar el phpmyadmin, haurem d’editar el fitxer [1] i afegir les següents línies:
<VirtualHost *:80>
DocumentRoot /usr/share/phpmyadmin
ServerName phpmyadmin.local
</VirtualHost>

Seguidament haurem d’editar el fitxer [2] i al costat de localhost, just al costat d’on us posa el nom de la màquina (en el meu cas “karmic”), haureu d’afegir la referència  a local del phpmyadmin. En aquest cas, phpmyadmin.local. Així quedarà:
127.0.0.1    localhost
127.0.1.1    karmic phpmyadmin.local

Finalment caldrà fer un reload o reiniciar l’apache amb l’ordre:
sudo /etc/init.d/apache reload (o restart)
Activació de llocs web a local

Jo, per exemple, he creat la carpeta “webs” a dins de la meua carpeta d’usuari. Allà he ficat una altra carpeta amb nom “somgnu”, que serà el lloc web que tindré a local. Per tant, la ruta serà /home/pau/webs/somgnu. Amb això, editem el fitxer [1] i afegim la línia següent:
<VirtualHost *:80>
DocumentRoot /home/pau/webs/somgnu
ServerName somgnu.local
</VirtualHost>

Ara haurem de fer el mateix que hem fet amb el phpmyadmin. Editem el fitxer [2] i al costat de phpmyadmin.local afegim somgnu.local, cosa que vol dir que des del navegador, si introduïm http://somgnu.local accedirem a la pàgina web en local. A l’igual que abans, caldrà reiniciar o fer un reload a l’apache per a que tot funcione.

Aquesta guia pot fer-se més i més gran, per ara així m’està bé. Si coneixeu guies més esteses o alguna cosa millor en català (no serà difícil trobar-ne), apunteu-ho als comentaris i en faré referència ací.

Altra forma d’habilitar VirtualHosts i mod_rewrite

Si volem poder fer servir mod_rewrite (fitxers .htaccess), caldrà activar aquesta opció amb l’ordre següent:
sudo a2enmod rewrite

Per altra part, he estat tenint problemes a l’hora d’activar els virtualhost. Llavors, l’alternativa ha estat crear un fitxer diferent per cada virtualhost que volem crear. Simplement, si tenim un domini.local que volem activar, crearem el fitxer:
sudo gedit /etc/apache2/sites-available/domini.local.conf

I dins hi posarem les dades:
<VirtualHost *:80>
DocumentRoot /ruta_a_les_dades/
ServerName domini.local
</VirtualHost>

I finalment activar aquest lloc amb a2ensite:
sudo a2ensite domini.local.conf

Possibles errors

Un dels errors més comuns que es presenta és el de:
Forbidden
You don't have permission to access / on this server.

El primer que heu de fer és mirar el registre a /var/log/apache/error.log. Potser que veieu un missatge com el següent:
(13)Permission denied: /home/pau/webs/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

El que heu de tindre en compte seria que la carpeta «webs» tinga permisos oberts:
chmod 777 /home/pau/webs

Ahir a la nit vaig descobrir que existia una versió de Moblin basada en Ubuntu i que, de fet, començarà a ser instal·lada en els ultra-portàtils de Dell. Jo, que ja faig servir Moblin (però la versió d’Intel, que està basada en Fedora i no es pot instal·lar a altres ordinadors que no siguen ultraportàtils), vaig decidir provar aquesta versió basada en Ubuntu.

La baixe, la copie fent servir còpia bit a bit (amb dd) a un pen usb i la connecte. Reinicie l’ordinador i em va eixir un menú on deia “Automtic installation”. Això ja em va fer dubtar, però com que jo sóc molt xulo, em vaig dir segur que alguna cosa preguntaria abans de fer res seriós.

Greu error. En menys de 5 segons, Moblin estava carregant-se totes les particions i creant de noves… NOOOOOOOO!!!!!!. Total, que mentre Moblin s’ho anava carregant tot, jo vaig anar corrent a fer clic al botó d’apagar l’ordinador (podeu imaginar-me corrent d’una banda de l’habitació, fent un bot super-mega-rolling amb dues volteretes i finalment apagant l’ordinador just quan el Moblin ja s’havia carregat totes les particions).

VISCA!! (em vaig dir). Llavors va iniciar-se la feina bona de debò, aquella que en el fons, tot i que ens fa molta ràbia, realment ens agrada. Què vas fer aquest cap de setmana? (et preguntaran dilluns), i tu dius que has estat fotut arreglant l’ordinador perquè s’havia esborrat tot. Però tu no fas servir Linux? (et diran), i tu miraràs cap a una altra banda cagant-te en els putos windowserus i maquerus.

Ells no saben el que TU SAPS FER (perdre dos dies seguits del cap de setmana, amb la teua dona o el teu home demanant-te quan acabaràs i tu dels nervis i fins als collons). Però ells no saben el que tu saps fer: tornar a la vida un ordinador que ha mort, recuperar les dades, i deixar-lo igual de bé o millor que abans. Això és satisfacció i la resta són tonteries.

En fi, el primer que vaig fer per recuperar la taula de particions va ser utilitzar testdisk. Aquesta eina és increïble: pot llegir taules de particions i recuperar-les com si res. Per desgràcia, la partició arrel / va sofrir alguns problemes i el sistema no arrenca. Per sort, tinc la partició /home, que no ha sofert cap problema i es troba intacta.

Se suposa que existeix una manera, tenint el /home a una altra partició, de poder fer una instal·lació nova, tot indicant on es troba el /home i així recuperar-ho tot fàcilment. He preguntat al fòrum, però com que ningú no em diu res, he buscat altres alternatives, i he pensat en copiar tot el directori del meu usuari anterior a una instal·lació nova. El problema és que fer un “cp -R” no funciona bé, ja que no respecta els permisos i aquestes coses. Així que la solució ha estat fer servir rsync. Amb la següent ordre:

rsync -va -H -A /directori_origen /directori_destí

D’aquesta forma, el directori origen a la partició on abans tenia el /home s’ha copiat a la nova instal·lació que he fet tot respectant els permisos. Potser no és la millor solució, però la còpia exacta respectant els permisos que fa rsync és impressionant i segur que molts de vosaltres ja la coneixeu. Podeu aprendre’n més si voleu.

En principi això era un article sobre rsync, però és clar que ha estat més una excusa per explicar-vos les meues lluites contra l’ordinador.

Hui s’ha pogut llegir en diferents blocs (i jo mateix ho he pogut comprovar) un seriòs forat de seguretat que el Pidgin té (si és que li podem dir realment “forat de seguretat”). Resulta que el Pidgin desa les nostres contrasenyes en text pla, sense cap tipus de codificació. Què vol dir això?, que qualsevol tinga accés al fitxer accounts.xml que es troba a la carpeta oculta .purple del vostre directori d’usuari al /home, podrà veure tal qual quina és la contrasenya associada al compte que teniu actiu amb Pidgin (en la major part dels casos podem parlar de gent que fa servir gmail o hotmail i per tant el seu compte de correu podria veure’s amenaçat).

Comproveu-ho vosaltres mateixos, aneu a la carpeta .purple:

cd ~/.purple/
nano accounts.xml

Allà podreu veure el vostre nom d’usuari i després la contrasenya (entre les etiquetes password). Això és un problema realment greu i l’única solució per ara sembla que serà passar-nos a l’empathy directament (que és el que serà el client per defecte a moltes distribucions a partir dels propers mesos).

La qüestió és que això porta probablement anys sent així (i sembla que alguns en tenien coneixement). Amb el Windows passa el mateix, el fitxer accounts.xml pot trobar-se a:

C:/Documents and Settings/nombre_usuario/Datos de programa/.purple/accounts.xml

De fet, sembla que existeix una explicació pròpia dels desenvolupadors de Pidgin i els mateixos defenen que fins i tot programes com el Google Talk o Windows Live Messenger no proveeixen cap tipus de seguretat amb les contrasenyes. Bàsicament diuen que és més segur fer servir això perquè així l’usuari anirà amb més cura a l’hora de treballar amb les seues contrasenyes.

Llavors, podem dir o no que és un forat de seguretat?. Segons els desenvolupadors, no.

A tots aquells qui tingueu WordPress 2.8.3, és important que actualitzeu de seguida a la versió 2.8.4 ja que una vulnerabilitat permet que simplement, introduïnt una URL modificada, es puga resetejar la contrasenya de l’administrador de forma que es crearà una nova contrasenya aleatòria, la qual l’administrador no coneixerà i per tant això comportarà un problema d’accés al bloc (per base de dades es podria restaurar, però).

Vigileu i actualitzeu de seguida. Ens comenta en Xavier Caballé que una altra manera de protegir-nos és protegir el directori wp-admin amb contrasenya a nivell de l’Apache.

Aquest tutorial va principalment enfocat en dos casos que es donen molt sovint als ordinadors d’usuaris de GNU/Linux, i es refereix a la pèrdua del gestor GRUB, de forma que ja no podem entrar al nostre sistema:

  • Quan instal·lem Windows, encara que no esborrem el linux, se sobreescriu l’MBR i desapareix el menú del GRUB
  • Quan instal·lem una altra distribució gnu/linux i sobreescriu el GRUB anterior, i no podem entrar al linux que ja teníem instal·lat

Recuperar el grub és prou senzill, només cal aconseguir un livecd de qualsevol distribució. Caldrà iniciar el sistema des del livecd i obrir un terminal. Haurem de conèixer en quina partició es troba el linux que volem recuperar (en aquest cas suposarem que es troba a /dev/sda3). Llavors, els passos a seguir són:

  1. Primer caldrà habilitar l’usuari root (per simplificar), i això ho farem creant-li una contrasenya:
  2. sudo passwd root

  3. Després executem l’ordre su per convertir-nos en l’usuari root (administrador del sistema gnu/linux).
  4. su
    contrasenya

  5. Muntarem la partició del sistema linux a recuperar al directori /mnt.
  6. mount /dev/sda3 /mnt

  7. Cal muntar els directoris /dev i /proc per tal que totes les referències als discos durs siguen correctes. Per tant, executem:
  8. mount -o bind /dev /mnt/dev
    mount -o bind /proc /mnt/proc
    cp /proc/mounts /etc/mtab

  9. Ara haurem d’establir aquest directori (/mnt) com a directori arrel del sistema de forma que les ordres executades facen referència al sistema linux a recuperar. Per a fer això, es fa servir l’ordre chroot:
  10. chroot /mnt

  11. Per últim, ja podeu executar l’ordre grub-install per recuperar el grub original. S’ha d’instal·lar al primer disc dur:
  12. grub-install /dev/sda

Finalment haureu de teclejar “exit” per eixir del mode chroot i ja podreu reiniciar el sistema per comprovar si ha funcionat. En principi no hauria d’haver-hi cap problema (i si el teniu sempre podeu demanar ajuda als comentaris o al fòrum).