unix4fun

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 31 décembre 2009

Vas-y, montre moi tes doigts ?!

Tu aimes Netfilter mais voilà, tu voudrais bien aussi faire... de l'OS fingerprinting ? C'est possible depuis la version 2.6.31, grâce au module xt_osf qui a été inclu officiellement. Donc voilà comment ça marche, un petit exemple :

  1. insmod ./xt_osf.ko
  2. ./nfnl_osf -f ./pf.os
  3. iptables -I INPUT -j ACCEPT -p tcp -m osf log 0 ttl 2

Tout d'abord un commentaire sur pf.os, c'est le fichier utilisé par packet filter, donc le fichier de définition de p0f, le tool de mister Zalewski. Ensuite on fait un test de connexion, et on voit dans les logs :

Windows 2000:SP4 : 192.168.028.131:2007 -> 192.168.028.124:22 hops=0

L'archive pour le programme userland (nfnl_osf) et les infos sont sur le bleurg de l'auteur du patch initial : http://ioremap.net/projects/osf

samedi 20 juin 2009

un week end de glande, netbsd, un macmini..

J'ai recu un mac mini et j'ai installe un NetBSD dessus, comme c'est un tout petit peu different, voici quelques liens qui peuvent etre utiles a d'autres :

Alors comme c'est relou de compiler sur un truc pareil et que netbsd te permet de cross compiler sans effort, voila deux ligne de plus:

# ./build.sh -m macppc -T tooldir.NetBSD-5.0_STABLE-macppc tools
# ./build.sh -m macppc -T tooldir.NetBSD-5.0_STABLE-macppc kernel=GENERIC

et pratiques, au moins ca traine pas sur mon laptop de compet multicore avec une hotte et des plaques a inductions integree..

et voila la bete:

capsule# uname -a
NetBSD capsule.unix4fun.net 5.0 NetBSD 5.0 (GENERIC) #0: Sun Apr 26 22:53:55 UTC 2009  builds@b4.netbsd.org:/home/builds/ab/netbsd-5-0-RELEASE/
macppc/200904260229Z-obj/home/builds/ab/netbsd-5-0-RELEASE/src/sys/arch/macppc/compile/GENERIC macppc
capsule#

me reste juste a cross compiler qqes package!

mercredi 13 mai 2009

salade, tomates, oignons, sauce rouge, sauce blanche?!

A l'epoque j'ai fantasme sur un NAS NetBSD a base de HW RAID (ou du RAIDframe) et de cgd le tout en sfs, nfs, cifs etc...

un petit NAS maison, avec du hotplug tout ca, les finances n'etaient pas terribles a l'epoque alors j'ai laisse tomber...

Aujourd'hui je me demande comment refaire le coup, j'ai bien reflechis a Solaris X ou OpenSolaris mais bon niveau empreinte memoire,

je cite: "c'est sympa Solaris, mais qu'est ce que ca suce..." et c'est clair qu'il suce, j'apprends petit a petit a domestiquer le "biniou" (c) et avec ZFS y a quand meme un joli fantasme...

En cherchouillant un peu je suis tombe sur les deux projets suivants:

En gros, des gens (bravo messieurs) qui se sont dit, on va gzip, bzip (ou soyons fou, soyons jeune, soyons mode) xz une installation et son empreinte memoire afin que ca puisse de "runner"sur du "petit" matos.

Ca a l'air sympa, le monsieur arrive a faire tenir un OpenSolaris sur 50 MB avec ZFS/NFS/SAMBA et l'admin qui faut pour runner ca...

Ca m'a fait tout chose, il ne me reste plus qu'a patienter (ou participer pour ceux qui ont du temps libre) pour que ca:

soit enfin stable et puisse encrypter le root pool. a suivre!!

lundi 20 avril 2009

OpenSolaris c'est bon comme des pates aux jambon

Alors voila, j'etais en b104, j'ai decide de tenter la premiere methode d'upgrade pour SXCE aka "liveupgrade"

J'ai suivi betement des instructions que de gentilles personnes ont ecrites (comme un bon mouton!), genre:

Ca a marche du premier coup...*blaze*...

mais bon petit suspense au reboot, plus d'opengl, plus de "desktop effects", donc plus de compiz-pour-brancher-les-filles-quand-elles-viennent-chez-toi... du coup, j'ai vu ca et la COUP DE THEATRE:

# svccfg -s application/opengl/ogl-select setprop options/vendor=nvidia
# svcadm restart application/opengl/ogl-select
# reboot

et au reboot, opengl etait revenu!!! la raison est expliquee ici

voila now:

[3] eau@deep:~ 
$ uname -a
SunOS deep 5.11 snv_112 i86pc i386 i86pc

Et le tour est joue (merci google!), alors comme je sais qu'il y a bcp de moutons comme moi, si ca peut aider!

mercredi 14 janvier 2009

Dtrace le seul tool qui transforme tes testicules en boule a facettes! (c) bibi

J'ai decouvert Dtrace, alors pour partager mon bonheur et commencer avec dtrace, je conseille THE GUIDE, simple, rapide, clair, didactique, etanche! j'en suis au chapitre 12!!

Pour ceux qui sont curieux ou on envie de tester/voir/gratouiller et avoir une vision full poilue!

DTRACE la TORAH

Bonne lecture!!.


[...]

bordel... qu'est ce que... elfsign(1) ?!?!?!

$ elfsign 
elfsign: invalid number of arguments
usage:
        elfsign sign [-a] [-v] [-e <elf_object>] -c <certificate_file>
                [-F <format>] -k <private_key_file> [elf_object]...
        elfsign sign [-a] [-v] [-e <elf_object>] -c <certificate_file>
                [-F <format>] -T <token_label> [-P <pin_file>] [elf_object]...
...
*COMMUNICATION COUPEE*

mardi 13 janvier 2009

C'est dans les vieux pots...

Bon, pour le boulot, je dois coder pas mal de trucs relatifs aux réseaux. Et c'est suite à mes pérégrinations sur le web que je suis tombé sur ce lien. Un vieuuuux lien, de plus de 10 ans d'âge, mais mis à jour, et très intéressant. Il parle notamment des mesures de la qualité d'un réseau, des méthodes à employer, et renvoie vers plein d'autres documentations. Je me régale, personnellement.

Je mets le tag "code", parce que ça file plein d'idées de trucs à coder :-)

Youpla, c'est par ici

mardi 4 novembre 2008

Fait *wizwiz* avec ton rezal

En étant tombé sur ce truc il y a déjà un ptit moment, je trouvais sympa le visuel. Le problème est que INAV ne gère pas le format netflow. Alors quand on a déjà son archi sous netflow, on peut être intéressé par nvis, dont vous remarquerez (ou pas) la ressemblance.

En creusant un ptit peu plus, on tombe sur la thèse d'un bonhomme qui en parle (entre autre) et nous renvoie sur le toolkit du projet.

Enfin, après vous avoir fait baver, sachez que les sources de ce truc sont introuvables, donc si quelqu'un les a vu passer !@#?

PS : pour ceux qui trouvent que netflow sent pas bon du genou, il y a ce cher sflow, jdis ca comme ca.

dimanche 24 août 2008

NetBSD, openvpn et les 42 passphrases...

J'ai un blem j'utilise assez souvent openvpn et en fonction de l'endroit ou je vais j'ai besoin de tel ou tel access VPN sur telles ou telles resources plus ou moins en meme temps etc.. bref j'ai besoin de plusieurs "profils" utilisateur.

Depuis des mois, je me tape l'edition du /etc/rc.conf et apres je tape la passphrase 2 ou 3 fois vu que j ai 2 ou 3 necessaires... enfin bref, j'en ai eu marre alors j 'ai fait un "hack" tout bete et tout simple en qqes etapes.

le plan:

  • un fichier encrypted avec ma clef pub qui contient la passphrase.
  • un script qui mets a la disposition d'openvpn cette passphrase
  • qqes hack dans les scripts de demarrage et les fichiers de conf.

1 . le fichier: key.asc
il contient la clef utilise pour unlocker le cert utilise pour l'auth, il doit donc rester prive!

2. le script de demarrage /usr/pkg/etc/rc.d/openvpn:

la ligne suivante a ete modifie:

openvpn_start()
{
    : ${openvpn_cfg="*.conf"}
[...]
  for f in $openvpn_cfg; do
      doit="$command --askpass `/bin/cat /home/user/.openvpn` 
$command_args --config $f"
      if ! eval $doit; then
[...]
}

3. le fichier /etc/rc.conf, legerement modifie:

[...]
openvpn=YES
. /etc/openvpn_current
[...]

4. le script moisi, ovpn.sh

ce script va choisir/preparer mon "profil" et demarrer les instances openvpn en utilisant la cle temporairement accessible.

#!/bin/sh
#
#
# I sick of typing my password for all VPN instances 
# all the time... $#@!$#@!$#@! :(
#
# there is probably some potential races
#

export TMPDIR=/home/user

MKTEMPCMD=/usr/bin/mktemp
GPGCMD=/usr/pkg/bin/gpg
VPNCMD=/usr/pkg/etc/rc.d/openvpn
RMCMD=/bin/rm
TOUCHCMD=/usr/bin/touch
CHMODCMD=/bin/chmod
CHOWNCMD=/usr/sbin/chown


TMPPREFIX=".openvpn"
VPNCIPHR=/home/user/.local/key.asc
VPNPLAIN=/home/user/.openvpn

VPNCMD_STOP=stop
VPNCMD_RESTART=restart

# OPENVPN PRECONFIG
CURR_CFG=/etc/openvpn_current
HOME_CFG="openvpn_cfg=\"client_vpn1.conf client_vpn2.conf client_vpn3.conf client_vpn4.conf\""
LABS_CFG="openvpn_cfg=\"client_vpn1.conf client_vpn2.conf client_vpn3.conf client_vpn4.conf\""
OUTR_CFG="openvpn_cfg=\"client_vpn1.conf client_vpn2.conf client_vpn3.conf client_vpn4.conf client_vpn5.conf\""


TMPFILE=`${MKTEMPCMD} -t ${TMPPREFIX}`
#echo "[+] using ${TMPFILE}"

ovpn_start()
{
        ${TOUCHCMD} ${VPNPLAIN}
        ${CHOWNCMD} root:wheel ${VPNPLAIN}
        ${CHMODCMD} 600 ${VPNPLAIN}
        echo "$TMPFILE" > ${VPNPLAIN}
        ${GPGCMD} -d ${VPNCIPHR} > ${TMPFILE}
        ${VPNCMD} start
        ${RMCMD} -fP ${VPNPLAIN}
        ${RMCMD} -fP ${TMPFILE}
}

ovpn_stop()
{
        ${VPNCMD} stop
}

CMD=$1
CNF=$2

case ${CMD} in
        start)
                case ${CNF} in
                        home)
                                echo ${HOME_CFG} > ${CURR_CFG}
                        ;;
                        lab)
                                echo ${LABS_CFG} > ${CURR_CFG}
                        ;;
                        out)
                                echo ${OUTR_CFG} > ${CURR_CFG}
                        ;;
                esac
                ovpn_start
        ;;
        stop)
                ovpn_stop
        ;;
        restart)
                $0 stop
                $0 start ${CNF}
        ;;
        *)
                echo "$0 <start|stop|restart> [<home|lab|out>]"
                echo "home: home configuration"
                echo "lab : lab configuration"
                echo "out : untrusted out configuration"
        ;;

esac

5. L'explication,
le fichier rc.conf inclus un fichier qui est genere dynamiquement (/etc/openvpn_current) a chaque demande d'un nouveau "profil" celui ci donne a openvpn les fichier de conf a utiliser pour demarrer les differents VPN.

Le script de demarrage du package openvpn lance openvpn avec un nouveau parametre supplementaire " --askpass file " qui donnera la passphrase pour unlocker le certificat d'authentification.

Le script utilisateur ovpn.sh lui s'occupe simplement de cree le /etc/openvpn_current, il gpg -d le fichier de clef key.asc le rajoute dans un fichier temporaire, demarre openvpn et efface ce fichier immediatement apres.

La derniere mouture qui tourne chez moi est tres legerement different en cela que je ne stocke pas la passphrase de mon cert dans un fichier encrypted en gpg, je "read" directement du tty et je feed immediatement le fichier temporaire.

Voila c'etait tout con mais maintenant pour demarrer mes 4-5 vpns en tapant juste ma passphrase gpg, je fais en sudo :

# ovpn.sh start home
You need a passphrase to unlock the secret key for
user: "..."
1024-bit ELG-E key, ID XXXXXXXX, created 2004-05-27 
(main key ID XXXXXXXX)

Enter passphrase:

Et voila! En esperant que ca en inspire d'autres, commentaires are welcome! :)

lundi 31 mars 2008

hack, carton, clavier, keyboard, solaris 10

Groumpf, j'ai des ptites merdes et je m y fais tout doucement a ce solaris convivial en station de travail pour bosser, il restait neanmoins un probleme a la con que je n'arrivais pas a regler.

le KEYBOARD!!!!

eh ouais, j ai un clavier sun type6 USB sur une sunblade 1500 et ce gentil clavier, bah il est tellement intelligent qu'il dit a solaris de quel type il est, du coup moi je suis bien nique et je me retrouve avec le mapping de roumains suisse (QWERTZ$#@$!@, fr ou de j en sais rien!).

Du coup je cherche un truc qui ressemble a "setxkbmap" avec Xorg et la horreur, je ne trouve rien! Comme ca me saoule, je tripatouille et je tombe sur les fichiers suivants :

  • /usr/openwin/share/etc/keytables/keytable.map
  • /usr/openwin/share/etc/keytables/xkbtable.map

En mattant dedans je trouves un moyen hyper laid d'avoir mon keyboard mapped en US, comme ca : keytable.map:

[...]
#6  27 Switzer_Fr6.kt
#6  28 Switzer_Ge6.kt
6 27 US6.kt
6 28 US6.kt
[...]

et xkbtable.map:

[...]
#6   27   sun/all(Switzer_Fr6_usb)     type6_euro_usb  fr_CH
#6   28   sun/all(Switzer_Ge6_usb)     type6_euro_usb  de_CH
6    27   sun/all(Switzer_Fr6_usb)     type6_euro_usb  us
6    28   sun/all(Switzer_Ge6_usb)     type6_euro_usb  us
[...]

Voila je suis une grosse truie, mais voila ca marche now je peux taper normalement sans faire AltGr + 1 pour avoir un | $#!@$#!$!#$!@ Bref c'est hyper laid, je trovuerai probablement la maniere clean de le faire plus tard ou si qqun veut bien me donner le truc..

HTH.

samedi 29 mars 2008

Unix Toolbox

Bon, ce lien a déjà probablement fait plein de fois le tour du Web Intéractif Multimédia Convivial 2.LOL, mais je le poste quand même :

 * UnixToolbox

Au menu : ben c'est simple, c'est un peu le couteau suisse de l'espace, il y a en gros TOUT ce qu'on a l'habitude d'oublier, pour diagnostiquer les problèmes qui apparaissent sur nos systèmes (Linux, *BSD, Solaris, ...), avoir des informations, etc.

A noter la racine de ce site, offrant un mini shell intéractif, avec des commandes à la con, genre "matrix", etc. Rigololesque.

Bref, à bookmarker/del.icio.us-iser, bleh.

vendredi 21 mars 2008

solaris, tips, crimes et botanique (planter des trucs)

dans les autres problemes de la semaine, je galere a avoir un beau firefox compile par mes soins, enfin ca compile mais ca runne pas. bref...

solaris 10 deja les systemes de packaging que j'ai teste et qui marche :

  • les packages natifs..
  • blastwave (pkg-get etc.. c'est hyper convi)
  • pkgsrc (cd /usr/pkgsrc && make blablablabla)

Je suis trop surpris par pkgsrc, ca marche quasi direct, avec le compilo SUN si on veut, j ai reussi (apres qqes patches quand meme) a compiler entierement xfce4 la derniere mouture en 64bits avec SUN Studio et ca fonctionne nickel, bref, pkgsrc bien!!!

et now je galere avec svcs... apres avor mendie a gauche a droite sur #u4f, alors maintenant j'ai trouve et je lis ca :

hth.

lundi 26 novembre 2007

encore un filesystem chiffre

Je ne le connaissais pas, eCryptfs utilise FIST et se veut "solide" (je ne sais pas vraiment ce qu'il en est), il rajoute des meta-data au files du FS pour que chaque fichier soit stockes avec ses params d'encryption etc.. enfin voyez par vous meme, je n'ai pas teste..

http://ecryptfs.sourceforge.net/

mardi 18 septembre 2007

ChironFS

Il y en a d'autres qui existent, ça n'est qu'un de plus sur la liste. Similaire à DRBD, voici ChironFS.

De nouveau, je n'ai pas testé, je ne sais pas si ça marche tout ça, ChironFS se base sur FUSE.

Faites partager l'expérience en cas de test.

edit#ppr : précision importante de Luis Furquim en commentaire. La différence conceptuelle majeure entre DRBD et ChironFS est au niveau auquel ils agissent : DRBD fonctionne au niveau du device là où ChironFS est au niveau du filesystem. Merci à lui.

jeudi 13 septembre 2007

openvpn et ocsp !

On est venu me parler dans l'oreille et me dire que openvpn parlait ocsp grâce à ça :

http://www.block64.net

Malheureusement je n'ai pas le temps de tester, donc si quelqu'un veut bien se donner la peine.

vendredi 7 septembre 2007

ubuntu jacky security

Un p'tit truc fait sympa et utile :

http://kernelsec.cr0.org/

Hope it helps.

mercredi 5 septembre 2007

Le noël argentin approche!

Ouhhhhh que c'est beau, le père noël existe alors vraiment !

http://www.netbsd.org/changes/#netbsd-4rc1 ftp://ftp.netbsd.org/pub/NetBSD-daily/netbsd-4-0-RC1/

NetBSD-4.0-RC1 !!!!!

Tout est dit !

vendredi 31 août 2007

le ps est en déroute

Alors là je suis fier de mon jeu de mot. Vraiment, hein..

Bon bah juste une petite news de rien : on remarque souvent qu'avec ps on a des résultats un peu chelous, voire parfois carrément aberrants, en terme d'utilisation de la mémoire. Y'a plusieurs raisons à ça. On regarde l'occupation mémoire d'un process via ps puis pmap :

$ ps -FC Thunar
UID        PID  PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
poz       5426  5414  0  3409  4720   0 Aug26 ?        00:00:00 Thunar --sm-client-id 117f000101000118510838300000138390002 --daemon

Soit en gros 4M de RAM utilisée

$ pmap -d `pidof Thunar`
Address   Kbytes Mode  Offset           Device    Mapping
08048000     480 r-x-- 0000000000000000 008:00002 Thunar
080c0000       8 rw--- 0000000000077000 008:00002 Thunar
080c2000     260 rw--- 00000000080c2000 000:00000   [ anon ]
b727d000      64 r---- 0000000000000000 008:00002 Thunar.mo
b728d000      28 r---- 0000000000000000 008:00002 libexo-0.3.mo
[...]
b7eed000     100 r-x-- 0000000000000000 008:00001 ld-2.5.so
b7f06000       8 rw--- 0000000000019000 008:00001 ld-2.5.so
bff52000      84 rw--- 00000000bff52000 000:00000   [ stack ]
ffffe000       4 r-x-- 0000000000000000 000:00000   [ anon ]
mapped: 13640K    writeable/private: 792K    shared: 84K
$

On remarque que des segments de code sont comptés plusieurs fois (un segment pour la lecture, un pour l'exec, avec recouvrement). Bref, ça confirme juste ce qu'on sait déjà : ps se contente paresseusement d'afficher la quantité théorique maximale de mémoire utilisée (avec certains bouts de code en double, qui plus est), alors que les libs partagées sont pas exclusivement réservées à ce process... Bref, la "vraie" mémoire est indiquée en bas de l'output, "writeable/private: 792K".

$ cat > ~/bin/mem.sh
#!/bin/bash

function usage()
{
        echo "Usage: $(basename $0) PROCESS..."
        echo "display the (real) memory usage of processes"
}

if [ "$#" = "0" ]
then    usage
        exit 0
fi

OUT=
echo "memory usage:"

for i in $*
do
        OUT=$(pidof $i | cut -d' ' -f1)
        if [ "$OUT" = "" ]
        then    echo "[-] process '$i' does not exist"
        else    OUT2=$(pmap -d $OUT | grep private | awk '{print $4}')
                echo "[+] ${i} (pid ${OUT}): $OUT2"
        fi
done
^D
$ chmod +x ~/bin/mem.sh
$ shebang.sh ~/bin/mem.sh
$ mem.sh X firefox-bin ssh prout
memory usage:
[+] X (pid 4965): 415736K
[+] firefox-bin (pid 5582): 295068K
[+] ssh (pid 5580): 796K
[-] process 'prout' does not exist
$

Pour shebang.sh, cf. un commentaire ailleurs :)

Je sais pas trop sur les *BSD si pmap est dispo... feedback ? Pfff, 3:05 du mat', je vais être frais au taff, encore.

mardi 28 août 2007

Chiffrer sa box entièrement et proprement

Bon mes disques ont partiellement crashé. Du coup j'ai dû backuper ce que je pouvais, je me suis mis à tout refaire après avoir changé le disque qui se chiait dessus et pour le plaisir je me suis dit que j'allais être un peu parano.

Hein, vu que je cache les sources de ls(1) et objdump(1) fallait bien encrypter tout ça au cas ou l'OpenSouce (c)(tm)(r) devienne une propagande illégale en Europe, un danger pour l'informatique propriétaire et ses nobles destriers (et leurs piscines en argent massif, bon ok c'est de la provoc' a 2frc, mais c'est relou j'ai pas encore de piscine :/)

Alors j'ai lu ça :

http://gentoo-wiki.com/SECURITY_System_Encryption_DM-Crypt_with_LUKS

Et now je boot sur une jolie clef USB avec une random key encrypted. C'est bien convi, je prépare la même chose sur mon laptop Linux, à voir si c'est possible avec une clef USB et un NetBSD, ce qui serait bien classieux, huhuhu :)

Bref je foutrai des updates si j'ai le temps de faire/tester une version NetBSD, sinon c'est que j'ai été trop fainéant alors voilà...

dimanche 26 août 2007

netcat c'est pas mal, socat c'est le top !

J'ai passé des années (et vous aussi je parie) à utiliser netcat pour faire un tas de trucs, recevoir et envoyer des datas, par tous les trous, dans tous les sens etc...

Pourtant ça fait un moment que je ne l'utilise plus non plus, je suis passé a socat, hyper convivial et tellement plus souple, dans le genre le tool dont on ne peut plus rien faire sans, bah voilà socat ! Rhalala le mec qui a codé ça, j'aimerais tellement remercier ses parents pour l'avoir mis au monde.

C'est ici :

http://www.dest-unreach.org/socat/

Hopla un p'tit exemple à la con, tu veux faire pareil que ton stunnel mais en une ligne pour avoir ton IMAP SSL accessible localement par ton client pas SSL du tout :

# socat tcp4-listen:143,reuseaddr,bind=127.0.0.1,fork \
> openssl:ssl-host:993,verify=0

And voilà, maintenant tu te connectes gentiment en IMAP sur localhost. hth.

(NB: au passage le code aussi est marrant à voir)

La suite de pine !! Bordel !

Wai j'ai viré mon thunderbird et je suis revenu à mes premiers amours, PINE, j'ai aussi decouvert qu'il n'était plus maintenu et qu'il avait un successeur maintenu au même endroit, alors pour ceux qui aiment PINE, c'est là :

http://www.washington.edu/alpine/

(J'aimerais bien essayer mutt, tout le monde me dit qu'il est bien aussi, mais j'ai toujours pas de solutions sympas pour gérer 3 ou 4 comptes et folders IMAPs en plus du NNTP, donc... si quelqu'un voulait bien me montrer comment ou où :))

- page 1 de 2