Nov 13 2008

Openssh 5 sftp e jail chroot.

Tag: Computer World, Howtosjdoe @ 2:45 pm

Tempo fa installai openssh5 sul mio server perchè necessitavo della nuova feature introdotta in quella versione, che permette in pochi passi e senza troppi problemi di avere un chroot selettivo per alcuni utenti, in modo da poter abilitare SFTP e disabilitare il login. Veniva (e viene) usato per bzr e devo dire che è molto comodo: si abilita in un attimo

Una volta installato openssh5 (io ho openssh-5.0_p1) basta aggiungere le seguenti righe al file /etc/ssh/sshd_config

Match group bzrsftp
    ForceCommand internal-sftp
    ChrootDirectory /srv/bzr/%u

e questo limita tutti gli utenti che fanno parte del gruppo bzrsftp a usare sftp (i tentativi di login per avere una shell falliscono) e esegue il chroot nella loro directory: in questo modo vedono solo i loro file (il repo) e tutti vissero felici e contenti :p

Oggi avevo bisogno invece di avere un utente che potesse loggarsi per fare un reverse tunnel (per esporre un servizio hostato nella rete fastweb… discorso lungo, cmq nulla di che :) ).
Solo che non volevo che questo utente (che si connette con la chiave ma senza passphrase) avesse accesso a tutti i file e a tutti i programmi sul server…

Per prima cosa vi conviene creare l’account e testare il login con chiavi (mettendo la chiave pubblica nel file ~/.ssh/authorized_keys) e quando tutto funziona pensare al chroot.

Dopo un po’ di smattamenti sono arrivato alla conclusione.. intanto serve la conf di sshd
(sempre in /etc/ssh/sshd_config)

Match User tunnel
    ChrootDirectory /home/%u
    GatewayPorts clientspecified
    AllowTcpForwarding yes

Quindi è necessario copiare un po’ di eseguibili dentro la sua home directory
E’ un po’ noioso (andrebbe scriptato, ma non credo che mi ricapiti), assumiamo che la home dell’utente sia /home/tunnel:


# cp -rp /bin /home/tunnel/
# cp -rp /lib /home/tunnel/
# mkdir -p /home/tunnel/usr/{bin,lib} /home/tunnel/{etc,proc,dev} /home/tunnel/home/tunnel
# cp /usr/bin/{id,dircolors,ssh} /home/tunnel/usr/bin
# cp /usr/lib/{libcrypto.so.*,libssl.so.*} /home/tunnel/usr/lib
# cp -rp /home/tunnel/.ssh /home/tunnel/home/tunnel/.ssh
# cp -rp /etc/{bash*,resolv.conf} /home/tunnel/etc
# mount -t proc none /home/tunnel/proc
# mount -o bind /dev /home/tunnel/dev

Forse non è minimale come avrei voluto, ma è sufficente a far loggare l’utente e dargli qualche comando base… in più è possibile per l’utente fare i tunnel, e grazie alla direttiva GatewayPorts clientspecified può bindare i reverse tunnel su indirizzi diversi da 127.0.0.1 (in particolare mi l’ip pubblico del server)
Ricordatevi che i due comandi mount vanno dati all’avvio della macchina, se riavviate, quindi o li mettete nello script di avvio “local” o mettete le relative entry in /etc/fstab

Edit 20081116

C’è da aggiungere una cosa: le sessioni ssh vanno in timeout se non ci sono dati scambiati tra il client e il server.. E ovviamente quindi il tunnel cade se non ci sono dati che lo attraversano.

La soluzione è aggiungere

ClientAliveInterval 60

Che manda un keepalive al minuto che tiene su il tunnel. 60 è indicativo, potete anche aumentarlo o diminuirlo. ClientAliveInterval non può essere aggiunto (anche se mi sarebbe piaciuto) nel “blocco” di configurazioni per il nostro utente (Match User tunnell) ma va aggiunto nelle conf globali.


Nov 03 2008

Gentoo bash-completion e bazaar

Tag: Howtosjdoe @ 1:27 pm

Usando bzr come VCS preferito, ho sempre trovato scomodo il file distribuito insieme al pacchetto su gentoo per abilitare la bash-completion. Infatti lo script completa solo qualche comando, non tutti, mentre io spesso non mi ricordo il nome preciso del comando e sono sempre a dare bzr help commands :p

E sicome sono pigro, mi sono riscritto lo scriptino: non so se funziona per voi, per me si. Beh, più che riscritto me lo sono “esteso” con i comandi che mancavano.

Lo script lo potete trovare qua: http://jdoe.asidev.com/files/bzr-autocompletion-20081103

per usarlo, basta che lo mettiate nella directory

~/.bash_completion.d/

con nome

bzr

Ah, ovviamente dovete avere bash-completion abilitata!


Oct 26 2008

Usare i tasti pageup-pagedown per cercare nella history dei comandi con bash-completion in debian

Tag: Computer World, Software Liberojdoe @ 3:28 pm

Io sono assuefatto a gentoo, però ultimamente per qualche server sto usando debian.. una cosa che mi è sempre mancata (che gentoo ha di default) è il poter cercare nella history quando ho scritto metà comando..

ad esempio, se io scrivo

# ls -lad /home/jdoe/

e dopo un tot di tempo voglio ridare il comando, con gentoo semplicemente scrivo “ls” e quindi con pageUp e pageDown scorro tra gli ultimi comandi che iniziano con ls…. e lo trovo comodo a bestia :p

Se volete abilitare questa cosa su debian, basta abilitare bashcomp

$> vim /etc/bash.bashrc

e decommentate le righe

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

quindi

$> vim /etc/inputrc

e decommentate le righe

"\e[5~": history-search-backward
"\e[6~": history-search-forward

Jun 04 2008

Modificato l’Howto su kvm

Tag: Computer World, Howtos, Software Liberojdoe @ 12:39 pm

Ultimamente c’ho giocherellato un po’.. in verità lo uso per testare il cluster xen (si, faccio gentoo -> kvm->ubuntu->xen->gentoo, qualche problema? :D )

kvm è fantastico, se usato con lvm anzichè le immagini qcow per i file è anche piuttosto veloce. Più o menoc come virtualbox, che magari è più semplice da far andare per i più (cliky-clicky-cliky-kab00m) però non supporta PAE, e io ci devo far girare dentro centos o ubuntuserver, che hanno PAE nel kernel xen.. quindi it’s a no-go :p KVM, invece per ora non fa una piega

L’howto è finalizzato a configurare kvm per andare con le schede di rete in bridged mode, ovvero è come se la macchina virtuale fosse sulla lan insieme al resto dei pc di casa e al router.

In più, una seconda rete, tutta virtuale, per connettere le macchine tra loro (yum :) )

Lo trovate qua


Mar 11 2008

Uhm… sentivate la mancanza?

Tag: Computer World, Family, Personal, Software Libero, tdmjdoe @ 6:13 pm

Non credo…  anche se in effetti potrei scrivere anche un po’ più spesso. :p

Ultimamente sono cambiate un bel po’ di cose nella mia vita personale, ancora mi devo abituare bene ma alla fine sono contento così. Avrei potuto gestire meglio alcune situazioni, ma spesso le cose capitano e basta, e allo stato attuale non cambierei nemmeno una virgola di quello che è stato…

Per il resto, smanetto poco, questo mi dispiace, tdm e replica sono fermi, e probabilmente non verranno completati.

Il primo perchè ho smesso di giocare a tremulous e quindi ho perso anche l’interesse nel farlo, se qualcuno volesse continuare a svilupparlo si senta libero… posso anche dargli l’accesso svn.

Il secondo perchè probabilmente non è il modo giusto di fare le cose, per cui per ora è fermo e non credo che rilascerò mai nulla (attualmente manco funziona).. in più il problema che doveva risolvere non c’è manco più quindi anche li gli stimoli sono pochi.


Oct 26 2007

Javascript include: import a .js file from a .js file

Tag: Computer World, Howtosjdoe @ 3:41 pm

* this post is in english. if you want to code javascript you have to know english, so it’s a non-sense to write this in italian *

Well for those of you that are approaching javascript and miss something like php include/require, python import ecc ecc this is somthing that works in a similar way
The “normal” way for doing this in javascript is to add a <script> tag

<script src="/path/to/file/to/include.js" type="text/javascript"></script>

Well, I don’t like this, cause when I’m editing the js file I don’t explicit which are the file’s deps.
So I’ve wrote a simple function for doing explicit including, lurking the MochiKit source code and basically copying from there.

var included_js = {};
var namespaceID ="ExampleCom";

function include(url,id)
{
	var kXULNSURI = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";

	/* prevent re-include */
	if (url in included_js)
		return;

    if (document.documentElement &&
        document.documentElement.namespaceURI == kXULNSURI) {
        /* XUL based browsers */
        var s = document.createElementNS(kXULNSURI, 'script');
        s.setAttribute("id", namespaceID + "_" + id);
        s.setAttribute("src", url);
        s.setAttribute("type", "application/x-javascript");
        baseElem.parentNode.appendChild(s);
    } else {
    	/* not XHTML standard :(  */
    	document.write('<script src="' + url + '" type="text/javascript"></script>');
    }
    included_js[url] = true;
}

This function really doesn’t do anything that you can do yourself, it just prints out the <script> tag for you (or, if browser is mozilla, use the DOM/XUL to load the file)
I want to improve this function to:

  • Avoid loading the script two time – updated!
  • Permit a behavior similar to require

The usage is really as you can read from the short code above:

include('/path/to/file/to/include.js', 'FILEID');

Where FILEID is a string that identify the javascript file


Sep 18 2007

Trent parte 2

Tag: Music, Net Walkingjdoe @ 1:31 pm


più o meno lo stesso discorso di bologna, che ho raccontato in precedenza.se qualcuno non capisce bene le parole, ecco una trascrizione della parte saliente presa da the inquirer

STEAL IT. Steal away. Steal and steal and steal some more and give it to all your friends and keep on stealin’. Because one way or another these mother****ers will get it through their head that they’re ripping people off and that’s not right.”

[edit] ne parla anche punto informatico. [/edit]


Sep 10 2007

meno male c’è webapp-config

Tag: Computer World, Software Liberojdoe @ 2:43 pm

In effetti poter installare software sulla macchina sulla quale hosti i tuoi siti è una figata :p

Sopratutto se la macchina è gentoo e ha webap-config …

$ paludis -i wordpress –dl-upgrade as-needed

$ webapp-config -U -h jdoe.biz wordpress 2.2.3

$ etc-update

fatto :O

prima era un grosso spaccamento… sopratutto quando ne devi aggiornare 5 o 6 e devi darci dentro di ftp :/ mentre ora… uno scriptino sega di bash scritto direttamente nella commandline… e vai :)


Sep 07 2007

PSU wattage calculator

Tag: Computer World, Net Walkingjdoe @ 9:30 am

Se qualcuno avesse necessità di cambiare alcuni pezzi del suo computer e si chiedesse se il suo alimentatore basterebbe ancora per i nuovi componenti…

http://web.aanet.com.au/SnooP/psucalc.php potrebbe darvi una mano :)

Certo è che vi dovete fidare… nel senso ci sarebbe in verità da controllare un po’ quella applicazione, dato che per quanto ne so io potrebbe prendere i dati di targa (che spesso sono molto differenti rispetto a quelli sul campo, specie nel settore consumi), oppure semplicemente potrebbe calcolare male i consumi in regime di overclock (visto che supporta frequenze non standard) , oppure altro… però, io penso che se preso con le molle un “indice di grandezza” lo da. Tanto quando si tratta di alimentatori le cose da seguire sono due : o maggiori di brutto (mmm mi basterebbe un 400W prendo un 550W) oppure si prende un pezzo valido, che ovviamente costa un po’ di più…spesso

grazie a Ikitt per la segnalazione :)


Aug 17 2007

Guardie e ladri

Tag: Computer World, Net Walking, Software Liberojdoe @ 9:32 pm

Slashdot ha pubblicato una storia abbastanza interessante: pare che un sito stia cercando di bloccare gli utenti firefox (un ritorno all’”ottimizzato per” dei ‘90?)

Il motivo è semplice, pare che ci sia un ad (io non lo uso, forse questo qua? non è importante poi quale di preciso) che permette di cancellare gli ads dai un siti visitati. Questo ovviamente fa perdere soldi a chi gli ads ce li mette, infatti ce li mettono apposta per farceli vedere e spesso per prendere un tot di soldi a click (come il famoso ad-sense di google presente anche su questa pagina, che -per inciso- in sei mesi mi ha fruttato la bellezza di 0.67€). Il tutto ovviamente gridando “al ladro! al ladro!” un po’ come fanno con chi scarica mp3 et simila dal p2p, il che fa perdere punti – e non pochi- ai promotori di questa bagg… ehm, iniziativa

La questione è interessante: io sono d’accordo sia con l’utente che toglie la pubblicità perchè spesso è invadente, sia con i gestori del sito perchè in fondo nessuno fa nulla per nulla (eccetto un bloggettino o il sito dell’hobby/gioco/band/squadra di calcio/quelcheè), e anzi spesso parecchi siti campano proprio sui vari banner/ads, perchè un sito costa, e non poco… sopratuttto se le visite aumentano.

Per me la soluzione, come spesso accade, sta nel mezzo: gli utenti dovrebbero sorbirsi la pubblicità e i web-masters (no non mi è venuto un termine migliore, lo so che questo proprio butta peso) dovrebbero evitare di invadere la quiete della navigazione. ovviamente siamo nell’utopia spinta :D

Intanto secondo me i tizi “iobloccotuttigliutentidifirefoxahahahah” perderanno un po’ di soldi, stando a quanto c’è scritto su quella pagina sembra quasi che nn ci rimettan niente… invece io credo che gli utenti ff sono troppi per essere ignorati… boh, cazzi loro :D


« Previous PageNext Page »