Category: linux

Debuggare una connessione, con tcpdump

Ogni tanto capita di essere curiosi, quando un sito nasconde da dove prende le proprie immagini, i media inseriti, e varie altre cose. Siccome il browser le visualizza, vuol dire che qualche server gliele invia, molto probabilmente l’immagine che cercate di salvare è solo sotto ad un immagine trasparente, per quello con click-destro -> salva immagine continuate a salvare GIF trasparenti di 1 pixel.

Vediamo come fare per vedere TUTTE le richieste HTTP che vengono inviate dal nostro PC. Questo può essere fatto per mille motivi, io ad esempio lo faccio per vedere quante GET servono per servire le pagine del mio sito. Ok, sono proprio un nerd. Il comando che uso io è semplice, e “raw” come piace a me. Il che vuol dire che è inelegante, brutto, ma funziona quel tanto che mi basta per usarlo.

tcpdump src port 80 or dst port 80 -s 0 -w – | grep -ao ‘GET.*[\ ]HTTP.*\|POST.*[\ ]HTTP.*’

Tcpdump intercetta (in modalità promiscua, quindi usate lo switch -p per evitare di intercettare robaccia non vostra, io non lo uso perchè tanto nella LAN ci sono solo io) tutti i pacchetti che rispondono al criterio ” src port 80 or dst port 80″ (quindi niente HTTPS), gli altri switch dicono di stampare l’intero pacchetto allo standard output. Se non mettete il grep vedrete tutte le pagine, le immagini, i dati, che passano fra voi e un server http, molto interessante per vedere quanti dati sulla vostra piattaforma invia il vostro browser.

In questo caso il grep (switch -o per stampare solo la parte di stringa che combacia) ricerca stringhe che iniziano per GET o POST (attenzione, esistono altri metodi HTTP meno utilizzati) e finiscono per HTTP*, in pratica le comuni richieste di pagine, immagini, script, dati (ajax?).

Altri “grep” interessanti potrebbero essere “User-Agent”, “Referer” e tutto quello che riuscite a pensare.

Fidocad per Linux? Esiste.

Un tempo non esisteva, o forse non c’era una versione uguale a quella originale, oggi esiste FidoCadJ, scritto in Java, linguaggio che non amo particolarmente, ma che permette un’ottima portabilità multipiattaforma.

Screenshot di FidoCadJ su KDE 3.5

Screenshot di FidoCadJ su KDE 3.5

L’idea di fidocad, di un formato libero, diciamo anche “umano” siccome è su per giù intelligibile, mi è sempre piaciuta, per schemi non troppo complessi la dimensione del file è ottima per essere allegata su un forum, o in un newsgroup, magari per schemi grandi prevedere un zip + base64 non sarebbe male, ma non credo ce ne sia bisogno.

Shell scripting: expect.

Ok, ogni tanto pubblicherò dei micro articoli per farvi conoscere i programmi che più uso quando faccio uno shell scriptino. Non ce ne sono tanti, e quindi me li terrò per quando non avrò idee migliori, o non avrò tempo (tipo oggi) per l’articolo che vorrei, in realtà, pubblicare.

NAME
expect – programmed dialogue with interactive programs, Version 5

SYNOPSIS
expect [ -dDinN ] [ -c cmds ] [ [ -[f|b] ] cmdfile ] [ args ]

INTRODUCTION
Expect is a program that “talks” to other interactive programs according to a script.  Following the script, Expect knows what can be expected from a program and what the correct  response  should  be. An interpreted language provides branching and high-level control structures to direct the dialogue. In addition, the user can take control and interact directly when desired, afterward returning  control to the script.

Questo programma è molto utile per alcuni shell script che devono, per esempio, interagire con altri programmi pensati per essere usati da un utente, o anche con alcuni server (telnet, pop, stmp, …). La sintassi è abbastanza semplice ed è descritta molto bene nella man page quindi è inutile dilungarsi nel decriverla, anche perchè diventerebbe un copy-paste del manuale. Io vi dico solo che è molto potente, e io lo usavo col vecchio router per loggarmici via telnet e controllare alcuni file salvando i dati che mi interessavano in locale.

Konqueror e Flash

A me il Flash Player su Konqueror non ha mai funzionato benissimo al 100%, e infatti ho sempre preferito usare Mozilla quando dovevo, ad esempio, vedere youtube. In realtà anche perchè alcune web application vengono pensate per il quadrittico IE/FF/Opera/Safari e quindi Konqueror viene tagliato fuori. Navigando la rete l’altro giorno ho trovato un modo, per chi usa KMplayer, di migliorare l’uso di Flash su Konqueror. Innanzitutto bisogna vedere dov’è il file ‘libflashplayer.so’, con il comando

locate libflashplayer.so

Tenete da qualche parte (copia-incolla?) questo path e date questi due comandi, sostituendo nel secondo il *vostro* percorso

kwriteconfig –file kmplayerrc –group “application/x-shockwave-flash” –key player npp
kwriteconfig –file kmplayerrc –group “application/x-shockwave-flash” –key plugin /usr/lib/flash-plugin/libflashplayer.so

Sono due righe, sebbene la seconda la vedrete probabilmente andare a capo. Ora dovete solo aprire Konqueror e andare nel seguenze menù:

Settings -> Configure Konqueror -> File Associations -> Application -> x-shockwave-flash
Tab Embeddin -> Add -> Embedded MPlayer for KDE (kmplayer_part)

Dalla prossima istanza di Konqueror che avviate dovrebbe funzionare, i filmati flash si apriranno sempre attraverso il plugin originario, ma mediati da KMplayer, che sembra funzionare bene. Secondo alcuni è necessario un logout-login in KDE, secondo altri un kbuildsycoca. Io non mi ricordo se ha funzionato subito o se è servito uno di questi paliativi.

Bloccare il PC quando sei lontano

Oggi ero in vena di smanettamenti e ho creato questo scriptino da lanciare all’avvio di KDE4 (ma in teoria anche GNOME, e altri, ma di certo non mi metterò a provarlo) per fare in modo che la sessione venga “lockata” quando siete lontani. Dovete avere il bluetooth sul PC e pure sul cellulare che tenete in tasca. Quando il cellulare non sarà più nel range del computer, partirà lo screensaver con blocco della sessione.

Innanzitutto attivate il bluetooth sul cellulare (o qualsiasi altra periferica) e rendetelo visibile a tutti, ora date il comando

$ hcitool scan
Scanning …
00:13:57:9B:DF:24       Qualsiasi

Segnatevi il MAC address, nel mio caso (è finto) “00:13:57:9B:DF:24″, questa è la periferica che controllerà la sessione. Ora potete mettere il telefono in modalità “invisibile”, ma non spegnere il bluetooth.

Nella vostra home, andata in .kde4/Autostart

cd ~/.kde4/Autostart/

create un file contenente questo script (ad esempio lock.sh) sostituendo alla linea KEY_MAC quello che vi eravate segnati pocanzi:

#!/bin/bash

ENABLED=$(kdialog –yesno “Bluetooth Key?”;echo $?)

if [ "$ENABLED" != "0" ]; then
exit 0
fi

KEY_MAC=”00:13:57:9B:DF:24″;

while [ "1" ]; do
DEVNAME=`hcitool name $KEY_MAC`;

if [ -z "$DEVNAME" ]; then
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
fi

sleep 60

done;

Rendete il file eseguibile, così

chmod a+x lock.sh

dal prossimo avvio di KDE4 una finestrella vi chiederà se in quella sessione volete usare questa possibilità, così potrete lavorare tranquilli anche quando dimenticherete il cellulare a casa, o quando è scarico.

Il controllo della presenza del telefono viene fatto ogni 60 secondi.

KDE4 in Slackware?

Dal changelog di questa notte, si direbbe che kde4 sia diventato il Window Manager di default della Slackware, infatti vedo un sacco di linee di questo tipo

kde/kde*-4.2.1-i486-1.tgz

il che può voler dire una sola cosa, KDE4 è finalmente ritenuto stabile da Volkerding, a sostegno di questa tesi il fatto che nel changelog compaia la cartella

extra/kde3-compat/

Sento puzza di major version, si può pensare ad una Slackware 13 nel futuro imminente, appena esce, parte il formattone.

Fare uno screenshot ad un video

Ovviamente parlo di metodi automatizzabili, così potrete inserirli nei vostri script. Ora non ricordo bene il motivo per cui mi era servito, ma mi pare che la risposta non fosse stata difficilissima da trovare, ma siccome potrebbe servirmi di nuovo, o potrebbe servire ad un ipotetico lettore di questo blog, scrivo quì sotto il comando per chi ha installato mplayer. Basta fare un:

mplayer -ss 00:00:05 -frames 1 -nosound -vo jpeg input.movie

Questo genera uno screenshot al quinto secondo del video. Non so se possa esservi utile o meno, ma a mio tempo lo fu.


		

Wicd, e connessione fu!

Sul portatile, dove ho una felice e ridente (e residente) archlinux ho dovuto fino all’altro giorno “arrangiarmi” un pochino per quanto riguarda le connessioni wireless. Ed ecco l’applicazione che ho scoperto qualche mesetto fa, e che spero venga migrata a KDE più presto che mai, si chiama wicd ed è veramente semplice, veloce e possente, agevolo il link: http://wicd.sourceforge.net/, e agevolo pure uno screenshot preso dal sito ufficiale

Wicd, mi son connesso all'università al primo colpo, che non è facile.

Wicd, mi son connesso all'università al primo colpo, che non è facile.

Se avete voglia, provatelo, io mi sono trovato bene.