Tag Archives: hacking

iTunes server per GNU

Giusto per giocare ho installato un server iTunes su GNU.

La cosa, in particolare su debian, è facilissima: basta installare rendezvous (howl) e daapd. Il primo si occupa di annunciare il servizio mentre il secondo è il demone che smazza gli mp3.

Ora qualsiasi client iTunes della LAN si trova automaticamente una vocina “gnu” con qualche giga di musica online :-)

Risolto REF MOVIE

Facendo un po’ di reverse engeneering ho scoperto che per generare un ref-movie esiste anche un formato testuale.

Fantastico perché la soluzione che avevo trovato era veramente sporca, oltre a non funzionare per tutti i filmati.

Banale il ref-movie generato:
rtsptext
rtsp://127.0.0.1:7070/mov/test.mov

Un po’ di chiarimenti saltano fuori cercando “rtsptext” su google… in particolare:
http://www.soundscreen.com/streaming/cgi.html

Gv ha controllato la QTSS admin guide che dedica ben 1 riga alla fine di un paragrafo all’argomento :-/

ARP-CROCCHI

Ovvero accrocchi di arp.

E’ già un po’ che mi chiedo cosa sia sto’ giochino di fastweb:

system.log:
Dec 30 02:13:39 arancia kernel: arp: 1.xxx.yyy.176 moved from 00:00:0c:07:ac:00 to 00:03:6f:00:a1:cc on en0

shell:
Welcome to Darwin!
arancia:~ fabio$ arp -a
? (1.xxx.yyy.1) at 0:0:c:7:ac:0 on en0 [ethernet]
arancia:~ fabio$ ping 1.xxx.yyy.176
PING 1.xxx.yyy.176 (1.xxx.yyy.176): 56 data bytes
64 bytes from 1.xxx.yyy.176: icmp_seq=0 ttl=254 time=7.241 ms
64 bytes from 1.xxx.yyy.176: icmp_seq=1 ttl=255 time=5.858 ms
64 bytes from 1.xxx.yyy.176: icmp_seq=2 ttl=255 time=3.954 ms
^C
--- 1.xxx.yyy.176 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3.954/5.684/7.241 ms
arancia:~ fabio$ arp -a
? (1.xxx.yyy.1) at 0:0:c:7:ac:0 on en0 [ethernet]
? (1.xxx.yyy.176) at 0:3:6f:0:a1:cc on en0 [ethernet]

(il .1 è il default gw, il .176 l’hag di casa mia)

Il tutto capita esattamente ogni 30 minuti.
Boh… appena ho un po’ di voglia ci sbatterò la testa (magari con una macchina linux!)

UPDATE: mi sa che è una vaccata: macosx (*bsd?) quando trova un nuovo mac address segnala un cambio di arp dal default gw a quel mac address… burp!
(questa volta fastweb non centra proprio nulla)

Google suggest

Scopro ora sul blog di Gaetano quest’altra invenzione di Google:
http://www.google.com/webhp?complete=1&hl=en

Veramente notevole. In linea di principio era evidente che si potesse mettere in piedi una cosa del genere, ma da qui a realizzarlo… e con che velocità di risposta lato server!

L’altro lato della medaglia è quello del “grande fratello”. Questa applicazione di google palesa quanto facilmente possiamo essere controllati e, soprattutto fino a che livello di dettaglio. Ogni carattere digitato viene inviato al server!

Cmq, google sembra aver fatto le cose per bene: da un dump di rete il traffico generato è lo stretto necessario. Il cuore del sistema è
http://www.google.com/ac.js

Non l’ho ancora guardato bene ma dal traffico generato si evince che il motore lato server è:
www.google.com/complete/search

chiamato ad esempio con:
www.google.com/complete/search?hl=en&js=true&qu=mu

da come risultato (Content-Type: text/html; charset=utf-8):
sendRPCDone(frameElement, "mu", new Array("music", "multimap", "music videos", "music downloads", "music lyrics", "multi map", "muse", "music download", "multiple sclerosis", "musicians friend"), new Array("481,000,000 results", "1,540,000 results", "29,100,000 results", "19,700,000 results", "22,700,000 results", "11,500,000 results", "6,140,000 results", "23,200,000 results", "2,240,000 results", "3,410,000 results"), new Array(""));

Update:
Il Jamo mi fa’ notare che google ti riconosce e ti suggerisce le ultime ricerche che hai fatto. Wow! All’anima del grande fratello.

Guglielmo Cancelli

Visto che passava da queste parti mi ero iscritto all’evento al Forum di Assago con l’idea di presentarmi con una maglietta debian a sentire cosa aveva da dire il genio del monopolio tecnologico.

Alla fine ho fatto tardi in fiera (sicurezza.it) e ho rinunciato. Torno sul sito dell’evento per vedere se esiste una registrazione e scopro che serve una autenticazione.

Non chiedetemi come ma ho trovato i dati che servono per loggarsi:
http://www203.placeware.com/cc/emea/viewRecordings
id=msft111804es
pw=H2BQ8R

Come login si può mettere qualsiasi cosa. Alla schermata successiva vengono chiesti email e ditta, ma non serve che siano reali.

Eccomi qui, di fronte a 4 registrazioni dell’evento che, tuttavia, non riesco a vedere :-) Domani magari me lo guardo da un windowz-pc (non mio per fortuna!) in ufficio.

Link diretti:
mms://streaming2.placeware.com/ab1/UKC/web/r/emea/lv95fzh22chtfm2t/ns-9240/SlideLog_0.asf (Audio+Slides?)
pnm://real2.placeware.com/ab1/UKC/web/r/emea/lv95fzh22chtfm2t/rm-9239/SlideLog.rm (Audio+Slides)

Blogs, blogs, ancora blogs

In ILS stiamo valutando la possibilità di dare un blog ai soci così ho installato e provato sia Blog::CMS che WordPress MU.

Ovviamente il requisito fondamentale è che sia un’unica installazione per tutti gli utenti. Ho ancora le idee un po’ confuse… cmq

Blog::CMS
Ha una interfaccia unica di amministrazione e permette di gestire più utenti/blog. Tuttavia non sono riuscito a creare un utente che possa amministrare il proprio blog dall’admin… ho risolto inserendo a manina i diritti in mysql.
Inoltre ha una serie di feature assolutamente non richieste tipo wiki, forum, polls non configurabili via web. Ovviamente si potrebbero rimuovere modificando codice e/o template.
Altra cosa che non mi piace è che non è possibile modificare i template in quanto tali ma solo singole sezioni (tipo header, body, comments body…).

MU WordPress
Si gioca quasi tutto con delle regole di rewrite. Di fatto c’è una installazione indipendente (dei soli file di configurazione) per ogni blog. Non esiste una interfaccia che dia una visione di insieme. Ogni utente è admin della propria installazione e può creare altri utenti che accedono al suo blog.
Il vantaggio rispetto a installazioni indipendenti è che il motore è unico (più semplice per l’aggiornamento) e il database, ovviamente, è uno solo (di fatto i vari blog lavorano con table_prefix differenti).

Riassumendo:
Preferisco WP ma nessuno dei due mi soddisfa in pieno :-/
Decisamente non siamo ai livelli di Movable Type. WP è sicuramente più giovane ma sembra che sia un progetto molto attivo (soprattutto in seguito al buco lasciato dalle nuove licenze di MT)

iMac Ubuntu

Stanotte ho deciso di provare Ubuntu sull’iMac di casa, sapevo già che è una buona distribuzione ma mi ha comunque stupito.

L’installazione è andata via liscia. Ho solo dovuto impostare a mano la keymap della tastiera (mi aveva configurato una qzerty mac)
root@arancia:~ # cp /usr/share/keymaps/i386/qwerty/it.kmap.gz /etc/console/boottime.kmap.gz

e la modeline per la risoluzione dello schermo (aveva definito correttamente XF86Config-4 ma non la modeline); in /etc/X11/XF86Config-4:
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
UseModes "Modes0"
HorizSync 30-70
VertRefresh 50-160
EndSection
Section "Modes"
Identifier "Modes0"
Modeline "1440x900" 129.73 1440 1480 1616 1848 900 903 906 936 -HSync -VSync
EndSection

Molto razionale l’organizzazione dei menu di gnome,

Ma la cosa che più mi ha sorpreso è stato trovare una configurazione di default sicura dei servizi di rete:
root@arancia:~ # netstat -nltup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:706 0.0.0.0:* LISTEN 17066/famd
tcp 0 0 127.0.0.1:111 0.0.0.0:* LISTEN 15490/portmap
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 25610/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3358/master
tcp6 0 0 ::1:25 :::* LISTEN 3358/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 2925/dhclient3
udp 0 0 127.0.0.1:111 0.0.0.0:* 15490/portmap

LVS-DR

Ho migrato il clusterone da LVS-NAT a LVS-DR.

Ora i server non reinoltrano il traffico in uscita al load balancer ma lo girano direttamente al client che ha fatto la richiesta. Questo per evitare il collo di bottiglia sul loadbalancer che, durante le ultime partite ha già sfiorato un paio di volte i 100Mbit (limite hw della scheda di rete).

Ora il limite è imposto solo dal cavo che porta la connettività al nostro switch. Limite che però è superabile portando un fibra o, al limite, un altro cat5 da mettere in trunk con quello che c’è già.

La soluzione Direct-Routing ha il problema che i pacchetti che arrivano ed escono dal server devono apparire sono associati al VIP. Non si può banalmente creare un ip alias sulla scheda di rete perchè risponderebbe agli arp-request cerando di rubare il VIP al load balancer.

Una delle soluzioni adottate richiede una patch al kernel per definire un interfaccia non-arp (l’opzione noarp in ifconfig/ip storicamente viene ignorata dal kernel 2.2). Per i kernel 2.6 ci sono un paio di sysctl che possono funzionare a tale scopo, ho trovato un post di un tizio che ha configurato i server con:
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

Ma la soluzione *geniale* è quella di usare un REDIRECT di iptables per far accettare il pacchetto senza avere il VIP definito:
iptables -t nat -A PREROUTING -p tcp -d <VIP> --dport <vport> -j REDIRECT --to-port <vport>

Soluzione spiegata per benino nell’HOWTO. Peccato che quando l’avevo letto io no c’era e mi ricordavo che l’unica possibilità fosse la patch per il kernel… fa’ sempre bene andarsi a rileggere la documentazione :-)

Arrivata la SmartCard di POSTE.IT

Stamattina ho ritirato la smartcard di potecert.

Dopo i primi test e la consulenza online di qualcuno più esperto mi sono rassegnato all’idea che il lettore che ho faccia un po’ schifo. E’ supportato tramite il driver sorgente del costruttore da pcscd ma da un po’ di errori. Vedrò di procurarmente un altro supportato anche da openct.

In ogni caso pcscd non riconosce il modello della smartcard (opensc non riesce neanche ad estrarre l’ATR). Sulla smartcard. in piccolo, c’è scritto GEMGATE32K.

Già che c’ero ho fatto anche la richiesta per quella dell’agenzia delle entrate, tramite la quale oltretutto, è possibile specificare un indirizzo di posta elettronica qualunque.