PROJET AUTOBLOG


Korben

Site original : Korben

⇐ retour index

Faire pousser ses légumes et ses fruits, même quand on n’a pas de place et pas la main verte

lundi 27 avril 2015 à 11:09

Ceux qui me suivent sur les réseaux sociaux et qui lisent assidument ce site savent qu'en ce moment, je suis en mode "Nicolas le jardinier". Par conséquent, je n'ai aucun scrupule à publier ici pour mémoire, cette magnifique infographie qui dispense quelques indications sur ce qu'on peut faire pousser en pot chez soi ou dans un petit jardin.

En effet, vous ne le savez peut-être pas, mais il n'y a pas forcément besoin d'un jardin pour faire pousser ses propres légumes ou fruits. Un balcon, une cour ou un petit coin pour ça dans la maison peuvent suffire, surtout si vous vous penchez sur les méthodes de pousse verticales.

À quoi bon s'emmerder avec un ficus ou des bambous alors qu'on peut avoir des tomates, des patates, des fraises...etc.

Quelle terre choisir, quels pots prendre, quelles espèces sélectionner, comment s'en occuper, comment les associer, et comment les positionner dans le potager si vous avez un jardin...etc. Tout est là.

ex2arhyyhhbilmknpzck

Plus aucune excuse pour ne pas avoir quelques fraises, tomates cerises ou radis au bureau ;-)

Source

Cet article merveilleux et sans aucun égal intitulé : Faire pousser ses légumes et ses fruits, même quand on n’a pas de place et pas la main verte ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Une box VPN à faire vous-même pour surfer en toute sécurité

samedi 25 avril 2015 à 20:25

Hier, j'ai déterré mon vieux routeur Linksys WRT54-GL. Mais si, souvenez-vous, c'est celui où j'avais installé OpenWRT et que j'avais même brické.

Objectif : Installer un client OpenVPN dessus, le coller juste derrière ma box ADSL pour faire transiter par le VPN l'intégralité des appareils de la maison. Ça me permet de sécuriser ma connexion et de profiter de la compression OpenVPN.

Du coup, je vais expliquer comment configurer un client OpenVPN sur un WRT54-GL.

Avant de commencer, vous devez avoir :

Allez, on commence... Etape n°1, installer dd-wrt sur le routeur. Tout est expliqué ici. Ahahaha, oui ce n’est pas compliqué, vous verrez.

Concernant les versions du firmware, il faut d'abord installer une version Mini Generic (dd-wrt.v24_mini_generic.bin) puis ajouter par dessus une version VPN Generic (dd-wrt.v24_vpn_generic.bin). Vous les trouverez ici (cherchez le mot clé 54GL ou la ref de votre routeur).

Alors ce qu'il faut savoir c'est que dans les versions dd-wrt post-2011 de je ne sais plus quel mois, il y a tout ce qu'il faut pour configurer un client OpenVPN digne de ce nom en clickodrome. Malheureusement, la version de ddwrt du vieux WRT54GL date de 2010. Y'a bien un client OpenVPN dedans, mais il ne fonctionne pas correctement, en tout cas pour se connecter à un OpenVPN-AS.

Bref, me voilà avec mon dd-wrt tout frais. Mais la partie est loin d'être gagnée, car j'ai rencontré pas mal de soucis et je vais vous raconter tout ça, pour que justement, vous ne cherchiez pas trop. Concernant la config de DD-WRT, faites en sorte que l'accès au net se fasse bien via le routeur, n'hésitez pas à désactiver le Wifi si vous ne vous en servez pas, et configurez le routeur en mode "routeur" (Héééé oui).

routeur

Je ne sais pas si ça a un impact, mais vérifiez que DNSMasq est bien activé.

dnsmas

Dans cette partie VPN, ne cochez rien. Enfin, vous pouvez essayer, peut être que ça marchera directement pour vous, mais en ce qui me concerne, tous mes essais là-dedans n'ont rien donné de concluant.

ddwrt

Non, nous comme on est des punks, on va tout faire en scripts... Ne paniquez pas, c'est super easy !

Pour commencer, il faut que vous récupériez le fichier Autologin de votre compte OpenVPN AS.

openvpn

Bon, si vous n'avez pas de fichier de conf en autologin, vous pouvez toujours utiliser un fichier de conf (user-locked profile) + un fichier contenant votre login et votre mot de passe que vous passerez en paramètre à OpenVPN avec --auth-user-pass, mais il faudra adapter un peu mon script.

Là où ça devient drôle, c'est qu'on ne peut rien "écrire" sur le routeur. Enfin, si, mais à chaque reboot tout est effacé. C'est moche. Il faut donc générer vos fichiers de conf lors du boot du routeur. Pour ce faire, rendez-vous ici.

commandes

Et copiez-collez-y le script suivant :

echo "XXXXXX" > /tmp/myopenvpn.conf
(sleep 20 ; ntpclient -h ns3.vedur.is ; sleep 60 ; killall openvpn ; /usr/sbin/openvpn --config /tmp/myopenvpn.conf --daemon ; sleep 60 ; iptables -I FORWARD -i br0 -o tun0 -j ACCEPT ; iptables -I FORWARD -i tun0 -o br0 -j ACCEPT ; iptables -I INPUT -i tun0 -j REJECT ; iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE;)&

Je vous explique tout ça... Vous voyez les XXXXX ? Et bien il faut les remplacer par le contenu de votre fichier ovpn (celui en autologin). Le petit echo est utilisé pour créer le fichier de config ovpn.

Ensuite, on a un enchainement de commandes, toutes très utiles... Après avoir fait mon echo, je lance un petit sleep pour faire une pause de 20 secondes, puis je synchronise la date et l'heure via NTP. Alors pour la petite histoire, j'avais tout bien fait, mais impossible de me connecter en sur mon serveur OpenVPN et j'avais l'erreur suivante :

TLS Error: Unroutable control packet received from...

Après avoir cherché un moment, je me suis rendu compte que c'était parce que la date et l'heure du routeur n'étaient pas la même que la date et l'heure de mon serveur OpenVPN. Mon serveur OpenVPN étant en Islande, il fallait que je synchronise la date de mon routeur sur le fuseau islandais. J'ai bien essayé de le faire directement depuis l'interface de ddwrt, à cet endroit-là (SETUP -> BASIC SETUP):

time

Mais rien à faire, quand je me connectais via SSH à mon routeur, et que je tapais la commande "date", j'avais toujours le 1er janvier 1970 (apparemment, la synchro prenait un temps indéterminé). J'ai donc du forcer une synchro NTP dans mon script de commande (ntpclient -h ns3.vedur.is) pour synchroniser correctement la date et l'heure sur un serveur NTP islandais (le même que celui qu'utilise mon serveur. Je le sais grâce à la commande "ntpq -p" qui sort la liste des serveurs NTP utilisés par l'OS) puis je patiente 60 secondes (sleep 60) pour être certain que la date et l'heure sont bien récupérées par le routeur. 60 secondes, c'est surement trop, mais je n'ai pas encore affiné les durées.

Après je shoote tous les openvpn pour être bien sûr qu'aucun ne tourne (killall openvpn) et je lance openvpn en mode daemon en spécifiant le fichier de config myopenvpn.conf qui contient les clés nécessaires à la connexion (/usr/sbin/openvpn --config /tmp/myopenvpn.conf --daemon).

Et j'attends à nouveau 60 secondes pour être certain que la connexion est bien établie. Une fois que c'est fait, votre routeur WRT54GL est bien connecté à l'OpenVPN, mais vos paquets n'y passent pas encore. C'est pourquoi il faut ajouter les 3 règles suivantes dans votre iptables pour que tout soit correctement redirigé via l'interface tun0 du VPN (iptables -I FORWARD -i br0 -o tun0 -j ACCEPT ; iptables -I FORWARD -i tun0 -o br0 -j ACCEPT ; iptables -I INPUT -i tun0 -j REJECT ; iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE;)

Et voilà pour les explications.

En gros, ça devrait ressembler à ça dans votre zone de commande :

dwrt2

Dès que vous êtes satisfait du résultat, cliquez sur le bouton SAVE STARTUP un peu plus bas.

savestartup

Et redémarrez votre routeur (ADMINISTRATION -> MANAGEMENT -> REBOOT ROUTER).

Ensuite, rendez-vous sur le site whatismyip.com. Vous devriez y voir dans un premier temps votre vraie IP (rien n'est lancé), puis au bout d'une minute, plus d'accès au net (le vpn est actif), puis une minute plus tard vous devriez voir l'adresse IP de votre serveur OpenVPN (les règles iptables sont actives).

Et voilà ! Comme je vous le disais, il faudrait que j'affine la durée des sleep pour que ça prenne moins de temps, mais bon, c'est pas bien grave, car une fois que ça tourne, ça tourne.

Au niveau du débit, évidemment, j'ai perdu un peu (genre 150 Ko/s), mais ça, ça va dépendre fortement de votre VPN. Par contre, je trouvais que les résolutions DNS via VPN mettaient trop de temps. J'ai donc installé un petit serveur unbound pour faire de la résolution DNS en local sur mon serveur islandais et ça va beaucoup mieux.

Une fois Unbound activé, rendez-vous sur l'admin de votre serveur OpenVPN-AS, et dans Configuration -> VPN Settings, mettez 127.0.0.1 en serveur DNS primaire (et un autre si vous voulez, mais c'est pas nécessaire).

ns

Voilà, j'espère que ce petit tuto fait à l'arrache vous inspirera. J'ai utilisé le WRT54-GL parce que c'est ce que j'avais sous la main, mais je pense qu'avec n'importe quel routeur qui supporte dd-wrt, c'est jouable de la même manière. Après c'est pas un modèle dernier cri donc peut mieux faire niveau rapidité mais vu la connexion ADSL pourrie que je me tape, ça suffit largement pour surfer à l'aise.

Bref, amusez-vous bien !

Ps: Cher Monsieur Cazeneuve, si vous désirez consulter l'intégralité de mes communications électroniques, sachez que ma porte est grande ouverte (pas la peine de la défoncer) et que vous ou vos sbires peuvent venir rafler à la maison quand vous le voulez. Je vous donnerais tous les accès dont vous avez besoin pour violer ma vie privée.

Cet article merveilleux et sans aucun égal intitulé : Une box VPN à faire vous-même pour surfer en toute sécurité ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Installer Unbound (serveur DNS) sous Linux

samedi 25 avril 2015 à 20:08

Après vous avoir expliqué comment installer Unbound sous Windows et OSX pour faire votre propre résolution DNS en local chez vous, voici comment faire sous Debian / Ubuntu pour votre serveur.

D'abord, on installe les outils nécessaires :

apt-get install build-essential libssl-dev

Puis on installe Unbound comme ceci :

cd /tmp

wget http://www.unbound.net/downloads/unbound-latest.tar.gz

tar xvfz unbound-latest.tar.gz

cd unbound-x.x.x/

./configure

make

make install

Ensuite, on crée le groupe et l'utilisateur qui vont bien pour faire tourner unbound :

groupadd unbound

useradd -d /var/unbound -m -g unbound -s /bin/false unbound

Le répertoire /var/unbound sera utilisé par Unbound et contiendra les fichiers de config.

Placez vous dedans et récupérez la liste des serveurs racines :

cd /var/unbound

wget ftp://ftp.internic.net/domain/named.cache

Créez ensuite le dossier /var/unbound/var/run qui contiendra unbound.pid et faites un lien symbolique vers le pid du système :

mkdir -p /var/unbound/var/run

chown -R unbound:unbound /var/unbound

ln -s /var/unbound/var/run/unbound.pid /var/run/unbound.pid

Ensuite, pour lancer / arrêter unbound, il nous faut un script de démarrage. Créez un fichier unbound (nano /etc/init.d/unbound) dans le init.d et copiez-collez y le script qui suit :

#!/bin/sh
#
# unbound This shell script takes care of starting and stopping
# unbound (DNS server).

exec="/usr/local/sbin/unbound"
prog="unbound"
config="/var/unbound/unbound.conf"
pidfile="/var/run/unbound.pid"
rootdir="/var/unbound"

case "$1" in
start)
[ -x $exec ] || exit 5
[ -f $config ] || exit 6
echo -n $"Starting $prog: "

# setup root jail
if [ -s /etc/localtime ]; then
[ -d ${rootdir}/etc ] || mkdir -p ${rootdir}/etc ;
if [ ! -e ${rootdir}/etc/localtime ] || /usr/bin/cmp -s /etc/localtime ${rootdir}/etc/localtime; then
cp -fp /etc/localtime ${rootdir}/etc/localtime
fi;
fi;
if [ -s /etc/resolv.conf ]; then
[ -d ${rootdir}/etc ] || mkdir -p ${rootdir}/etc ;
if [ ! -e ${rootdir}/etc/resolv.conf ] || /usr/bin/cmp -s /etc/resolv.conf ${rootdir}/etc/resolv.conf; then
cp -fp /etc/resolv.conf ${rootdir}/etc/resolv.conf
fi;
fi;
if ! egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/log' /proc/mounts; then
[ -d ${rootdir}/dev ] || mkdir -p ${rootdir}/dev ;
[ -e ${rootdir}/dev/log ] || touch ${rootdir}/dev/log
mount --bind -n /dev/log ${rootdir}/dev/log >/dev/null 2>&1;
fi;
if ! egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/random' /proc/mounts; then
[ -d ${rootdir}/dev ] || mkdir -p ${rootdir}/dev ;
[ -e ${rootdir}/dev/random ] || touch ${rootdir}/dev/random
mount --bind -n /dev/random ${rootdir}/dev/random >/dev/null 2>&1;
fi;

# if not running, start it up here
start-stop-daemon --start --quiet --pidfile $pidfile --exec $exec -- -c $config
echo
;;

stop)
echo -n $"Stopping $prog: "
start-stop-daemon --stop --quiet --oknodo --pidfile $pidfile
echo
if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/log' /proc/mounts; then
umount ${rootdir}/dev/log >/dev/null 2>&1
fi;
if egrep -q '^/[^[:space:]]+[[:space:]]+'${rootdir}'/dev/random' /proc/mounts; then
umount ${rootdir}/dev/random >/dev/null 2>&1
fi;
;;

restart)
start-stop-daemon --stop --quiet --oknodo --pidfile $pidfile
start-stop-daemon --start --quiet --pidfile $pidfile --exec $exec -- -c $config
;;

reload)
start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile $pidfile --exec $exec
;;

force_reload)
start-stop-daemon --stop --signal 1 --quiet --oknodo --pidfile $pidfile --exec $exec
;;

*)
echo $"Usage: $0 {start|stop|restart|reload|force-reload}"
exit 2
;;
esac

exit 0

Puis rendez ce script exécutable comme ceci :

chmod 755 /etc/init.d/unbound

update-rc.d unbound defaults

Et voilà c'est installé, mais ne lancez pas unbound tout de suite. Maintenant, on va régler les permissions pour que vos autres machines puissent s'y connecter et faire des requêtes DNS.

Créez le fichier de conf comme ceci :

nano /var/unbound/unbound.conf

Et collez-y la conf suivante :

server:
verbosity: 1
interface: 0.0.0.0
port: 53
do-ip4: yes
do-ip6: yes
do-udp: yes
do-tcp: yes
do-daemonize: yes
access-control: 0.0.0.0/0 allow
#access-control: 0.0.0.0/0 refuse
#access-control: 127.0.0.0/8 allow
chroot: "/var/unbound"
username: "unbound"
directory: "/var/unbound"
use-syslog: yes
pidfile: "/var/run/unbound.pid"
root-hints: "/var/unbound/named.cache"

Vous voyez la ligne "access-control: 0.0.0.0/0 allow" ? Ça veut dire que tout le monde peut se servir de votre serveur DNS. Mais vous pouvez changer 0.0.0.0/0 par 192.168.0.0/24 pour autoriser uniquement vos IPs locales...etc. Si c'est juste pour une utilisation par la machine seule, vous pouvez mettre simplement "access-control: 127.0.0.0/8 allow".

Bref, vous voyez l'idée. Concernant le fichier de conf, on peut faire plein de choses, mais je vous laisse lire la doc ici.

Pour vérifier que le fichier de conf est correct, on utilise cette commande :

unbound-checkconf /var/unbound/unbound.conf

Si ça vous dit que c'est bon, faites alors ceci pour démarrer unbound :

/etc/init.d/unbound start

Et voilà... Maintenant y'a plus qu'à entrer l'IP de votre serveur comme serveur DNS sur les clients de votre choix, et ce sera ce serveur qui résoudra lui-même les URL.

Source

Cet article merveilleux et sans aucun égal intitulé : Installer Unbound (serveur DNS) sous Linux ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Comment récupérer tous les fichiers et les sous-répertoires d’un FTP en ligne de commande

vendredi 24 avril 2015 à 14:18

Je déteste FTP. Quand je dois migrer des sites, je passe 99% du temps par SSH/SFTP/SCP. C'est plus pratique, mieux foutu et ça me permet de transférer les fichiers de machine à machine sans passer par mon ordinateur.

Seulement, dans les 1% des cas restant, quand j'ai qu'un accès FTP sous la main, ça me fait rager, surtout que je n'ai pas encore trouvé (ou compris...) la commande FTP qui va bien pour récupérer de manière récursive tous les fichiers et répertoires qui vont bien.

Alors voici comment je fais pour récupérer tous les fichiers d'un FTP de manière récursive (avec tous les sous-répertoires) et en conservant l'arborescence. Pour cela, je passe tout simplement par la commande wget. Il suffit de faire un petit :

wget -m ftp://USER:PASSWORD@SERVEURFTP/www

Le paramètre -m active la récursivité (tout comme -r mais conserve en plus les dates sur les fichiers et va au delà de 5 niveaux de profondeur dans l'arborescence). Et le /www à la fin c'est tout simplement le répertoire que vous voulez récupérer en entier.

Et voilà, le tour est joué ! Plus besoin de passer par un client GUI et vous pouvez bosser directement sur le serveur qui va accueillir le site.

Cet article merveilleux et sans aucun égal intitulé : Comment récupérer tous les fichiers et les sous-répertoires d’un FTP en ligne de commande ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.

Ne manquez plus d’exemples sous Linux

vendredi 24 avril 2015 à 13:22

Quand on cherche un peu d'aide sur une commande Linux ou une autre, en général, tous les barbus qui zones sur les forums répondent aux jeunes padawan : "RTFM, t'as qu'a faire un man".

Les pages man sont très bien, car elles sont complètes avec tous les paramètres qui vont bien, mais peu, voire pas d'exemples du tout. La commande Tar est par définition l'exemple parfait puisqu'en général, les gens qui ne l'utilisent pas régulièrement cherchent l'exemple qui va bien sur un moteur de recherche pour savoir comment l'utiliser.

tar

Heureusement, c'est là qu'intervient l'utilitaire "eg" (Prononcez "iji") qui fournit ce qui manque aux Man Pages, c 'est à dire des exemples corrects et clairs de ce qu'on peut faire avec telle ou telle commande.

Démonstration :

Pour installer eg, 2 possibilités... Soit en passant par pip comme ceci :

pip install eg

Soit en récupérant les sources sur le dépôt :

git clone https://github.com/srsudar/eg ./

ln -s ./eg/eg_exec.py /usr/local/bin/eg

Il ne vous plus qu'à taper ensuite la commande eg suivie du nom du soft pour lequel vous voulez des exemples. Pour tar, ce sera:

eg tar

Et voilà, c'est aussi simple que ça.

Si vous voulez plus d'infos, c'est par ici.

Cet article merveilleux et sans aucun égal intitulé : Ne manquez plus d’exemples sous Linux ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.