www.linuxpress.org
GNU Not Unix

November 21, 2008

BASH: Trovare i file duplicati o gli hard links

Filed under: Uncategorized — Simone Federici @ 9:33 am

Trovare gli hard link in una directory è facile:

ls -i1 * | awk ‘dup[$1]++{print $1 ” ” $2}’

è possibile anche però trovare i file copiati identici usando l’algoritmo md5

find . -type f -exec md5sum ‘{}’ \; | sort | awk ‘dup[$1]++{print $2}’

June 5, 2008

Crash di una macchina linux

Filed under: Howto — Simone Federici @ 2:29 pm

Mi è capitato che una macchina remota, ha avuto un errore nel filesystem con errore di Input/Output
non potendo lanciare i comandi reboot, halt o shutdown

ho trovato un una soluzione buona da conoscere:

Il modulo sysrq del kernel si occupa di interaggire con la macchina in caso di mancata possibilità di accedere ad un terminale.
Kernel hacking —> Kernel debugging —> Magic SysRq key

echo 1 > /proc/sys/kernel/sysrq # abilita il kernel per l’ascolto dei segnali

(scrivendo 0, invece, il supporto viene disattivato).

non essendo in locale, la macchina non riceve direttamente le combinazioni di tasti Alt + SysRq + key, dove key è un tasto che indica l’azione da svolgere
si può però forzare l’invio di un signal scrivendo direttamente i caratteri nel filesystem virtuale /proc/sysrq-trigger

echo s > /proc/sysrq-trigger # invoca la syncronizazzione di emergenza

questo comando da remoto non si può usare, perche chiuderebbe la connessione remota, killando il processo sshd
echo i > /proc/sysrq-trigger # invoca il kill -9 a tutti i processi non di sistema attivi

killare a mano tutti i processi non di sistema.

echo s > /proc/sysrq-trigger # altra sincronizzazione
echo u > /proc/sysrq-trigger # umount / o remount in R/O delle partizioni
echo b > /proc/sysrq-trigger # software reset (equivale a premero il pulsante hardware reset)

Links utili:
http://matrixhasu.altervista.org/index.php?view=tips&cat=linux&tip=tips_linux__attivare_magic_sysrq

April 2, 2008

libdvdread: CHECK_VALUE failed in ifo_read.c

Filed under: Fix — Simone Federici @ 9:37 am

Ubuntu supporta benissimo tutti i formati video,

alcuni però devono essere svegliati, infatti la distribuzione ha di default solo i formati completamente free.

SOLUZIONE:
Per la Ubuntu 7.10 “Gutsy Gibbon” e sulla 8.04 Hardy

sudo apt-get install libdvdread3 libxine1-ffmpeg totem-xine
build-essential debhelper fakeroot
sudo /usr/share/doc/libdvdread3/install-css.sh

ciao

January 18, 2008

Assertion `c->xlib.lock’ failed

Filed under: Fix — Simone Federici @ 8:59 pm

Assertion `c->xlib.lock’ failed

Ubuntu 7.10, problema con la jdk:

#0 /usr/lib/libxcb-xlib.so.0 [0×2aaab09df9ec]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0×24) [0×2aaab09dfaf4]
#2 /usr/lib/libX11.so.6(_XReply+0×112) [0×2aaab06249c2]
#3 /usr/lib/jvm/sun-jdk-1.5.0/jre/lib/i386/xawt/libmawt.so [0×2aaab037fd4b]
#4 /usr/lib/jvm/sun-jdk-1.5.0/jre/lib/i386/xawt/libmawt.so [0×2aaab036ce8c]
#5 /usr/lib/jvm/sun-jdk-1.5.0/jre/lib/i386/xawt/libmawt.so [0×2aaab036cfee]
#6 /usr/lib/jvm/sun-jdk-1.5.0/jre/lib/i386/xawt/libmawt.so(Java_sun_awt_X11GraphicsEnvironment_initDisplay+0×9) [0×2aaab036d1b9]
#7 [0×2aad7828ff7b]
java: xcb_xlib.c:82: xcb_xlib_unlock: Assertion `c->xlib.lock’ failed.

SOLUZIONE (sia JDK 5 che JDK 6):
sudo sed -i ’s/XINERAMA/FAKEEXTN/g’ /usr/lib/jvm/java-1.5.0-sun/jre/lib/i386/xawt/libmawt.so
sudo sed -i ’s/XINERAMA/FAKEEXTN/g’ /usr/lib/jvm/java-6-sun/jre/lib/i386/xawt/libmawt.so

chiaro che se la JVM la avete in un altra directory, lanciate sed con il fille libmawt.so corretto

grazie al blog:
http://teletecnomobile.blogspot.com/2007/12/assertion-c-xliblock-failed.html

January 8, 2008

Eclipse su Linux

Filed under: Fix — Simone Federici @ 10:51 am

PROBLEMA:
Messaggio di errore:
“Could not initialize the application’s security component. The most likely cause is problems with files in your application’s profile directory. Please check that this directory has no read/write restrictions and your hard disk is not full or close to full. It is recommended that you exit the application and fix the problem. If you continue to use this session, you might see incorrect application behaviour when accessing security features.

SOLUZIONE:
mkdir $HOME/.mozilla/eclipse

October 24, 2007

Come connettersi a internet con qualsiasi protocollo in modo libero, stando dietro un proxy ISA con autenticazione NTLM.

Filed under: Howto — Simone Federici @ 6:01 pm

Premessa:
Questo howto ha come scopo solo la pubblicazione di un esperimento, non vuole incitare nessuno a violare l regole.

Abstract:
Fondamentale è riuscire a stabilire una connessione p2p tra il tuo PC (client) e un server casalingo.
Per fare questo dobbiamo, identificarci (avere username e password per l’autenticazione NTLM del proxy)
E usiamo un proxy locale al client ntlnaps per identificarci una volta per tutte.
Visto che ISA permette il metodo TCP CONNECT solo sulla porta 443 (per permettere l’https) sarà necessario avviare un server ssh sul server in ascolto sulla 443.
Tramite corkscrew è possibile stabilire una connessione ssh over http.
Una volta che siamo in grado di fare una connessione ssh tra il client e il server, dobbiamo stabilire una connessione ppp tra di essi, lanciando pppd in modo reciproco.
Ora siamo in VPN casalinga. Dobbiamo però sistemare le tabelle di routing in modo da uscire su internet tramite questa connessione ppp.
Non ci scordiamo però che l’unico routing che dobbiamo lasciare come è la connessione tra il client e il proxy ISA.
L’ultimo passo è configurare il server casalingo per forwardare il traffico tcp e impostare quindi il nat.

Software sul Server
sshd
pppd
iptable

Software sul client
ssh
pppd
corkscrew
ntlmaps

Facciamo un ESEMPIO

ip del client 10.0.0.1/255.255.255.0
ip del server 10.0.1.1/255.255.255.0

proxy ISA ntlm: 10.17.2.1
gateway di default del client: 10.0.0.254

Cosa fare sul SERVER

Sul server è necessario far partire ssh sulla porta 443 questo perchè il proxy ISA accetta CONNECT solo su 443 per consentire il traffico https

Poi è necessario abilitare il NAT

echo “1″ > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

La configurazione del CLIENT è un po’ più complessa

Configurare il proxy ntlmaps per autenticarsi tramite ntlm su ISA in modo che ssh non debba avere bisogno di autenticarsi sul proxy.

Ora bisogna fare un SSH over HTTP

Modificare ${HOME}/.ssh/config
Host *
ProxyCommand corkscrew 127.0.0.1 5865 %h %p

TEST: ssh 10.0.1.1 dovrebbe funzionare

ora facciamo un PPP over SSH
eseguiamo da root:

/usr/sbin/pppd updetach noauth silent nodeflate pty “/usr/bin/ssh -p 443 root@10.0.1.1 /usr/sbin/pppd nodetach notty noauth” ipparam vpn 10.0.55.1:10.0.55.2

in questo modo viene stabilita una connessione p2p tra il nuovo ip del client 10.0.55.1 e il il nuovo ip del server 10.0.55.2

Ora è necessario configurare il routing over ppp

route -n
segnarsi quale è il gateway di default ad esempio 10.0.0.254

aggiungere una regola fissa per l’ip del proxy verso il gateway di default
route add 10.17.2.1 gw 10.0.0.254 eth0

rimuovere il routing di default
route del default

aggiungere il routing verso il tuo ppp
route add default gw 10.0.55.2 ppp0

editare /etc/resolv.conf in modo che si punti ad un dns pubblico

e il gioco è fatto, il client tramite la connessione ppp over ssh over http/ntlm è ingrado di andare su internet su tutti i protocolli
un passo in più:

ora se sul client facciamo questa semplice cosa:
echo “1″ > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

tanti clientini potranno connettersi a internet semplicemente cambiando il loro gateway sull’ip
del tuo magico client :-P

Ciao, e ricordate che se ci sono delle regole vanno rispettate, giocate solo se potete farlo e non commettete violazioni illegali.

March 9, 2007

KeyLinux: servizi mobili / mobile services

Filed under: News — Simone Federici @ 2:31 am

tuxKeyLinux, è una distribuzione server liveCD embrionale, basata su LFS. La sua peculiarità è l’avvio tramite una configurazione letta da penna USB.

I servers sono di due tipi: storage e clients. Lo storage è un server con HardDisk che si occupa di fornire servizi comuni e file system remoti ai clients.

Ogni client all’avvio parte con una configurazione base, nome e ip server storage (e eventuale password). In base a queste poche informazioni scritte sulla penna, keyLinux leggerà la configurazione della macchina e lancerà i servizi ad essa associati.

Ogni servizio ha un suo IP, differente dall’ip della macchina su cui gira. Per cui spostare un servizio da una macchina ad un’altra è estremamente semplice e immediato.

Powered by WordPress