Blog personnel d'Alex Sbille sur les technologies, et autres de mes centres d’intérêts.

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

jeudi 10 avril 2014

Chiffrer ses données avec TCPlay, fork de Truecrypt

La license de truecrypt étant parfois critiquée, je préfère me tourner vers un équivalent libre : TCPlay

L'installation sous debian :

apt-get install tcplay
whereis tcplay
tcplay: /usr/sbin/tcplay /usr/share/man/man8/tcplay.8.gz

Il faut ensuite trouver le premier périphérique de boucle disponible:

losetup -f
/dev/loop0

Puis là ou bon vous semble avec un conteneur de 20 Mo :

dd if=/dev/zero of=foo.tc bs=1 count=0 seek=20M
losetup /dev/loop0 foo.tc
tcplay -c -d /dev/loop0 -a whirlpool -b AES-256-XTS

La clé est demandée deux fois puis tcplay va remplir de volume de données aléatoires.

Il est ensuite nécessaire de relier le volume avec le loop et créer un système de fichiers dedans avant de le monter pour la première fois.

tcplay -m foo.tc -d /dev/loop0
mkfs.ext4 /dev/mapper/foo.tc
mount /dev/mapper/foo.tc /mnt/truecrypt/

Puis pour démonter;

umount /mnt/truecrypt 
dmsetup remove foo.tc 
losetup -d /dev/loop0

Enfin, pour remonter à nouveau:

losetup /dev/loop0 foo.tc 
tcplay -m foo.tc -d /dev/loop0
mount /dev/mapper/foo.tc /mnt/truecrypt/

Partage

lundi 7 avril 2014

Get java oracle working with chromium in debian jessy distro

I use openjdk-7-jre 90% of time but somes applications requires more, so:

echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
apt-get install oracle-java7-installer

For choice management:
update-alternatives --config java
Il existe 3 choix pour l'alternative java (qui fournit /usr/bin/java).

  Sélection   Chemin                                          Priorité  État
------------------------------------------------------------
* 0            /usr/lib/jvm/java-7-oracle/jre/bin/java          1072      mode automatique
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      mode manuel
  2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      mode manuel
  3            /usr/lib/jvm/java-7-oracle/jre/bin/java          1072      mode manuel

Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :
ln -s /usr/lib/jvm/java-7-oracle/jre/lib/amd64/libnpjp2.so  /usr/lib/chromium/plugins

Partage

vendredi 4 avril 2014

Mettre le tmpdir de Mysql / Mariadb dans la ram / tmpfs

Sur les disque dur mécaniques, les écritures de mysql sont parfois vraiement mauvaises, même en améiorant sensiblement le my.cnf, j'avais besoin d'aller plus loin.

Alors j'ai mis en place un disque tmpfs réservé au sockage du tmpdir:

Préparation de la config de mysql avec seulement une ligne à changer pour modifier la valeur de tmpdir:

nano /etc/mysql/my.cnf

Ajouter ou remplacer la ligne suivante avec le nouveau chemin:

tmpdir          = /var/lib/mysqltmp

Récupérer les privilèges de mysql qu'il puisse exploiter le tmpfs :

id mysql
uid=110(mysql) gid=113(mysql) groupes=113(mysql)

Ajout de la ligne dans le /etc/fstab

nano /etc/fstab

For 500 MB space:

tmpfs   /var/lib/mysqltmp   tmpfs   rw,gid=113,uid=110,size=500m,mode=0750,noatime   0 0

Pas besoin de rebooter, juste:

mount -a && service mysql restart
[ ok ] Stopping MariaDB database server: mysqld.
[ ok ] Starting MariaDB database server: mysqld . ..
[info] Checking for corrupt, not cleanly closed and upgrade needing tables..
df -h
tmpfs                                                    500M     0  500M   0% /var/lib/mysqltmp

Partage

Mysql / Mariadb tmpdir on tmpfs

On spinning disks, write is dramatically slow for some applications, after tweaking my.cnf, I needed more.

So I'm setting up a tmpfs disk an put mysql tmpdir in it:

Prepare mysql config with only replace the tmpdir value with the future path:

nano /etc/mysql/my.cnf

Add or replace tmpdir value with

tmpdir          = /var/lib/mysqltmp

Create the tmpfs with privileges:

Get uid and gid of mysql / mariadb

id mysql
uid=110(mysql) gid=113(mysql) groupes=113(mysql)

Add a line in the /etc/fstab

nano /etc/fstab

For 500 MB space:

tmpfs   /var/lib/mysqltmp   tmpfs   rw,gid=113,uid=110,size=500m,mode=0750,noatime   0 0

No need to restart, just

mount -a && service mysql restart
[ ok ] Stopping MariaDB database server: mysqld.
[ ok ] Starting MariaDB database server: mysqld . ..
[info] Checking for corrupt, not cleanly closed and upgrade needing tables..
df -h
tmpfs                                                    500M     0  500M   0% /var/lib/mysqltmp

Partage

lundi 24 mars 2014

Loggin ip adress of visitors with Varnish3 and Apache2 as a backend

It is natural to find varnish public ip in apache logs but not very secure in my context, so I'll need to configure Varnish 3 using req.http.X-Forwarded-For and apache2 with mod_rpaf

With a debian like:

On the backend server

apt-get install libapache2-mod-rpaf
nano /etc/apache2/mods-enabled/rpaf.conf
<IfModule rpaf_module>
    RPAFenable On

    # When enabled, take the incoming X-Host header and
    # update the virtualhost settings accordingly:
    RPAFsethostname On

    # Define which IP's are your frontend proxies that sends
    # the correct X-Forwarded-For headers:
    RPAFproxy_ips 5.39.38.60 127.0.0.1 ::1

    # Change the header name to parse from the default
    # X-Forwarded-For to something of your choice:
    RPAFheader X-Forwarded-For

</IfModule>
service apache2 reload

On the reverse proxy / varnish server:

Insert after the start of sub vcl_recv :

if (req.restarts == 0) {
  if (req.http.X-Forwarded-For) {
    set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
  } else {
    set req.http.X-Forwarded-For = client.ip;
  }
}

Then reload the configuration and verify a2 logs.

Partage

Log de l'adresse ip du visiteur dans apache2 derrière un reverse proxy varnish3

Varnish, comme tout reverse proxy laissera naturellement son adresse ip dans les logs du backend, ici apache. Dans mon cas, dans un contexte de sécurité, il est nécessaire que le reverse proxy utilise req.http.X-Forwarded-For pour annoncer au backend l'adresse ip du client.

Avec une debian like:

Sur le serveur de backend

apt-get install libapache2-mod-rpaf
nano /etc/apache2/mods-enabled/rpaf.conf
<IfModule rpaf_module>
    RPAFenable On

    # When enabled, take the incoming X-Host header and
    # update the virtualhost settings accordingly:
    RPAFsethostname On

    # Define which IP's are your frontend proxies that sends
    # the correct X-Forwarded-For headers:
    RPAFproxy_ips 5.39.38.60 127.0.0.1 ::1

    # Change the header name to parse from the default
    # X-Forwarded-For to something of your choice:
    RPAFheader X-Forwarded-For

</IfModule>
service apache2 reload

Sur le reverse proxy / varnish:

Insérer après le début de sub vcl_recv :

if (req.restarts == 0) {
  if (req.http.X-Forwarded-For) {
    set req.http.X-Forwarded-For = req.http.X-Forwarded-For + ", " + client.ip;
  } else {
    set req.http.X-Forwarded-For = client.ip;
  }
}

Suivi d'un reload de la configuration.

Partage

dimanche 2 mars 2014

Mass extention rename with linux bash

for f in *.JPG; do mv $f `basename $f .JPG`.jpeg; done;

Partage

Renommage à la chaîne d'extensions sous linux

for f in *.JPG; do mv $f `basename $f .JPG`.jpeg; done;

Partage

vendredi 28 février 2014

Récolte et préparation de choux fleur bien fournis.

Les semis (tous) que j'ai planté dans des pots "biodégradables" ne se sont jamais correctement développés, je suppose à cause du perçage des fibres trop difficile avec mes types de plants (choux-fleur, choux brocolis, salades, fenouils). Cependant, après un simple bêchage, les plants que j'ai achetés chez ***-land ont bien résisté aux grattages de poules (malgré les racines à nus et pied flanchant), chenilles (assez vite maîtrisées avec du savon noir), et mollusques très agressifs dans un premier temps (puis inexistants sur la fin grâce aux poules). J'ai planté les pieds courant août et récoltés mis février, premier test de choux fleur et j'en suis ravis! En dehors du savon noir appliqué deux fois contre les chenilles, quelques arrosages les deux premières semaines sèches et les rondes de nuit anti-mollusques, je n'ai effectué que la récolte et je trouve que le rapport maintenance / récolte de ces choux robuste est très bonne. Au total, 6 choux sur 8 ont été consommés.

Ci dessous, les photos du plus gros (un peu mature certes mais il fait son poids).

Je le cuisine par la suite en purée permettant de nourrir mon fils Léo avec des petits pots en rajoutant des navets du jardin, patates et un peu d’oignons et ail, et la même en salée et poivrée pour Marina et moi. La purée est ainsi mise en petits pots pour conservation au congélateur. Avec deux pieds, j'ai réussi à préparer un quinzaine de pots de 190g + 3/4 portions pour adultes.

IMG_20140216_191756.jpgIMG_20140216_191844.jpg

Partage

Multi-threaded Uncompression of bz2 files.

I use lbzip2 (exist as a debian package) for unp very large compressed files (mysql dumps).

lbzip2 -d big_file.tar.bz2

The big advantage of this program for me was the availability of set the number of decompressor threads with the -n argument.

We also can compress files with compression level choice.

http://lbzip2.org/quickstart

Partage

Décompression Multi-threaded de fichiers bz2.

J'utilise lbzip2 en packet debian pour décompresser de gros fichiers compressés comme par exemple de gros dumps mysql.

lbzip2 -d big_file.tar.bz2

L'avantage pour moi dans le choix de ce programme est la possibilité de choisir le nombre de threads alloués avec l'argument -n.

Il est aussi possible de compresser des fichiers avec le choix du niveau de compression.

http://lbzip2.org/quickstart

Partage

Supprimer des doublons avec linux et fdupes

On installe le programme et lance un état des lieux avec:

apt-get install && fdupes -r /target/folder

Voir l'espace occupé avant le nettoyage:

du -sh /target/folder

Supprimer les doublons! (d argument) Seulement conserver le premier fichier trouvé et automatiquement valider la suppression des doubles (N argument).

fdupes -r -dN /target/folder

{{ + /media/neuro/Lexar/2010-11-05/2012-01-17/IMG_1523.JPG

  - /media/neuro/Lexar/2010-11-05/2012-07-16/IMG_1523.JPG
  - /media/neuro/Lexar/2012-01-29/IMG_1523-1.JPG
  - /media/neuro/Lexar/2012-01-29/IMG_1523.JPG
  - /media/neuro/Lexar/2012-09-30/IMG_1523.JPG}}

Voir l'espace occupé pour voir le gain gagné:

du -sh /target/folder

Partage

Find and clean multiples sames files with linux

First, install and test fdupes with:

apt-get install && fdupes -r /target/folder

View size before:

du -sh /target/folder

Clean with delete! (d argument) We keep only one file and no ask before delete (N argument).

fdupes -r -dN /target/folder

{{

  + /media/neuro/Lexar/2010-11-05/2012-01-17/IMG_1523.JPG
  - /media/neuro/Lexar/2010-11-05/2012-07-16/IMG_1523.JPG
  - /media/neuro/Lexar/2012-01-29/IMG_1523-1.JPG
  - /media/neuro/Lexar/2012-01-29/IMG_1523.JPG
  - /media/neuro/Lexar/2012-09-30/IMG_1523.JPG}}

View size after:

du -sh /target/folder

Partage

mardi 25 février 2014

Installer steam sur debian 8 testing (Jessy)

Après avoir mis à jour mon sysème en testing, j'ai été ravis de découvrir que steam y est désormais disponible comme paquet non-free. Les années à devoir essuyer des reboots pour booter sur du ntfs sont pour moi révolues et win ne fait désormais plus partie de ma vie depuis hiers, après une bonne session de parted. On peut voir sur les stats que pour un paquet en testing, le popularity-contest du paquet révèle une popularité assez attendue
Ajout des sources non libres et dans mon cas un peu de pinning pour permettre de résoudre des dépendances que vous aurez vous aussi peut-être de non satisfaites.
nano /etc/apt/sources.list
deb http://http.debian.net/debian/ testing main contrib non-free
deb-src http://http.debian.net/debian/ testing main contrib non-free
deb http://http.debian.net/debian/ unstable main contrib non-free
deb-src http://http.debian.net/debian/ unstable main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
nano  /etc/apt/preferences
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300
Package: *
Pin: release o=Debian
Pin-Priority: -1
dpkg --add-architecture i386
apt-get install multiarch-support
apt-get update && apt-get upgrade
A partir de là on peut désormais faire le fameux:
apt-get install steam
Avec ma carte graphique 760 gtx de chez Nvidia, il faut installer les drivers propriétaires:
#For video drivers with nvidia
apt-get install nvidia-kernel-dkms nvidia-settings nvidia-driver linux-headers-$(uname -r)
Enfin, on peux trouver dans le menu des applications et sous menu jeux l'application steam, le premier lancement provoque un mise à jour assez lourde.

Partage

Install steam in debian testing jessy (8)

My rig was recently upgraded for running a testing Debian Jessy (8) and I was happily surprised to find that steam is now available as a non-free package.
After years of damn horrible dualboot, I have now destroyed my ntfs partition because steam was working very good in my case in stable debian squeeze with non oficial package.
After ubuntu released it, the Debian Games Team mainteners had make a package.
Statistics of steam installations in debian
Adding contrib and non free sources, in my case, I had also to add some pinning rules for get unstable repo.
nano /etc/apt/sources.list
deb http://http.debian.net/debian/ testing main contrib non-free
deb-src http://http.debian.net/debian/ testing main contrib non-free
deb http://http.debian.net/debian/ unstable main contrib non-free
deb-src http://http.debian.net/debian/ unstable main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
nano  /etc/apt/preferences
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300
Package: *
Pin: release o=Debian
Pin-Priority: -1
dpkg --add-architecture i386
apt-get install multiarch-support
apt-get update && apt-get upgrade
At this time, we can install steam package with:
apt-get install steam
With my Nvidia 760 gtx, I should install proprietary drivers:
#For video drivers with nvidia
apt-get install nvidia-kernel-dkms nvidia-settings nvidia-driver linux-headers-$(uname -r)
You can now find in the gnome menu in games the application steam, at first lunch, any update is required.

Partage

- page 1 de 2