VPN avec SSH

April 27th, 2010 4 comments

Ce que j’adore avec l’informatique c’est que quand on croit connaître un sujet, on se rend toujours compte qu’il reste encore une montagne de choses à apprendre. :-)

J’avais fait un article sur le port forwarding avec ssh pour faire des tunnels mais depuis j’ai trouvé beaucoup mieux !

SSH permet de faire un VPN grâce aux interfaces virtuelles TUN/TAP. Ici je vais expliquer la méthode que j’utilise avec une interface TUN.

Les prérequis sont d’avoir un client sous *nix (j’ai pas testé avec windows), un serveur ssh avec accès root et sur Mac il faut installer les drivers tun/tap. Il faut également ajouter “PermitTunnel yes” dans votre sshd_config.

Première étape, établir la connexion ssh avec le serveur.

sudo ssh -w 0:0 root@server.com

Des droits root sont nécéssaire du coté client et serveur pour créer les interfaces tun. L’option -w spécifie qu’on crée les interfaces et 0:0 spécifie le numéro des interfaces coté client:serveur. Sur Mac l’interface tun peut être différente de 0, vous pouvez alors utiliser “any:0″ qui permettra d’utiliser n’importe quelle interface tun coté client (le mac).

Ensuite il faut configurer les interfaces des 2 cotés :

server# ifconfig tun0 172.16.0.1 netmask 255.255.255.252

server# ifconfig tun0 up

client# ifconfig tun0 172.16.0.2 netmask 255.255.255.252

client# ifconfig tun0 up

Sur Mac il faut rajouter une ip de destination dans le ifconfig :

clientMac# ifconfig tun15 172.16.0.2 netmask 255.255.255.252 172.16.0.1

A partir de maintenant vous devriez pouvoir faire un ping du client sur l’ip de l’interface tun du serveur.

Ensuite il faut que le serveur autorise l’ip forwarding et qu’on active le NAT.

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

A partir d’ici il n’y a plus de manipulation sur le serveur, il ne reste qu’a configurer les routes coté client.

client# route add 192.168.1.0/24 172.16.0.1

Maintenant vous avez accès au réseau du serveur (192.168.1.0/24) !

Si vous souhaitez faire passer tout votre traffic par le VPN c’est possible aussi, il suffit d’ajouter une route vers l’ip du serveur avec comme gateway l’ip de la gateway coté client pour ne pas perdre la connexion et ensuite mettre la gateway du réseau distant (celui du serveur) comme gateway par défaut sur la machine client.

Il est possible de scripter tout ça, d’utiliser une authentification par clé, de backgrounder la connexion ssh, etc… mais c’est une autre histoire :-)

Categories: Linux, Network, Unix Tags: , , , ,

File server, suite

March 13th, 2010 1 comment

Pour la suite de l’article sur mon petit file server je vais détailler la partie software de celui-ci.

L’idée de base était d’avoir un stockage sécurisé, résistant au panne hardware et évolutif. Il me fallait donc du raid5, comme je l’avais évoqué précédemment, du chiffrement et une gestion des volumes logiques (LVM).

J’ai choisi Debian Lenny pour sa stabilité et sa facilité d’utilisation, je n’avais pas envie d’une distro trop “complexe” ni d’une ubuntu server, Debian est un bon compromis.

Je n’étais pas certain de pouvoir booter le server avec tout ce que je souhaitais faire, j’ai donc fait une petite machine virtuelle pour mes tests qui se sont relevés concluants.

Voici donc mon plan de partition :

2 partitions sur chaque disques : 200 mo et ce qu’il reste (presque 1 To)

Chaque partitions de 200 mo est mis en raid 1 et formaté pour le /boot. Grub ne peut pas fonctionner sur du raid5 mais il faut que ça reste bootable si un des disques tombe. En mettant du raid 1 je suis donc à l’abri.

Les 3 partitions restantes (une par disque) sont également mises en raid mais de niveau 5 cette fois, ce qui donne approximativement un array de 2 To. Cet array est ensuite chiffré dans son entièreté pour donner un nouveau device qui sera utilisé comme volume physique pour le LVM.

Vous suivez ?

Ok alors là il me reste juste a créer mes partoches dans le LVM : de la swap, un root et finalement une grosse partoche pour les datas.

LVM permet une gestion très simple des partitions, ici je l’utilise surtout pour pouvoir jouer avec les partoches dans le cas très probable ou je rajoute un disque dans le serveur.

Au final j’ai :

sda1, sdb1, sdc1 (100 mo) -> raid1 -> /boot

sda2, sdb2, sdc2 (~1 to) -> raid5 -> chiffrement -> LVM -> partoche (swap, root, data)

Tout ça peut paraître compliqué et c’est là que l’installateur Debian fait la différence :)

Il m’a fallut un peu plus de 48h pour que les disques soient formatés et chiffrés. Pas de coupures de courant ! Ouf :-)

Après l’install du système on passe à l’install des services. J’ai donc installé Netatalk qui permet d’avoir un share AFP et Samba pour les clients Linux/windows.

Netatalk parait compliqué a configurer mais au final c’est assez simple pour une installation basique. Les fichiers de configs sont bien documentés.

Pour l’instant j’ai encore un petit soucis de permissions avec les users samba mais étant donné que j’utilise l’afp 99% du temps je n’ai pas encore chercher la solution.

Coté perfs, le serveur est très stable et le load presque à 0. Je n’ai pas de réseau gigabit pour faire des tests mais sur le réseau en 100 je n’ai aucun soucis. J’ai fait un bench avec hdparm mais je n’ai pas de point de comparaison…

Timing cached reads:   1908 MB in  2.00 seconds = 953.97 MB/sec
Timing buffered disk reads:  162 MB in  3.01 seconds =  53.84 MB/sec
N’hésitez pas a poster vos tests en commentaire pour comparer :-) (hdparm -Tt /dev/sdx)

File Server

March 9th, 2010 5 comments

Depuis un moment je cherchais une solution pour stocker mes divers fichiers ainsi que mes backup. Mes premières solutions ont été des disques dur externes, à l’époque j’avais récupéré un Lacie Bigger Disk d’1 To qui était en fait un gros boitier de 4x 250 go en raid0 (non configurable).
Bien entendu Murphy s’en est mêlé et j’ai perdu mes données.
D’autres mésaventures du genre m’ont poussées a chercher une solution plus sécuritaire et le raid 5 s’est imposé comme le choix idéale.

Ma deuxième exigence était de pouvoir le partager facilement sur le réseaux pour pouvoir y accéder depuis les autres ordinateur de la maison et pour faire mes backups en wifi.
Dans ces conditions, une seule alternative bon marché était valable : se faire un petit serveur de fichier sous linux. :-)
Pour cela il me fallait une carte mère avec au moins 3 ports sata, j’ai pensé en premier lieu à une petite CM avec un processeur atom intégré mais le prix des cartes avec assez de port sata et du gigabit ethernet revenait beaucoup trop cher par rapport à n’importe quelle carte basique qui permettait beaucoup plus d’évolution.
Mon choix s’est donc porté sur une carte Foxconn G43MX avec un des nouveaux Celeron dual core E3200.
Coté connectivité, la carte comporte 6 ports sata, du gigabit ethernet et plusieurs port pci pour d’éventuelle évolution.
Avec ça, 2 Go de ram, un petit graveur dvd premier prix et le plus important les 3 disques dur Samsung Spinpoint F3 1 To qui sont, parait-il, d’excellente qualité. Ici je n’ai pris que le nombre minimum de disque pour un raid5 par soucis d’économie mais ma configuration logiciel me permettra d’ajouter des disques ultérieurement.

J’ai mis le tout dans un boitier Advance Aeolus 8616G qui avait pour avantage de comporter un ventilo, une alimentation et assez de baies pour un prix très correcte.

Voilà pour la partie hardware du serveur, je ferais le détail de la configuration software dans un prochain article…

Categories: Linux Tags: , , , ,

Mailx truc et astuces

September 23rd, 2009 No comments

Mail ou mailx est un petit client mail en ligne de commande très simple, il est très utilisé dans le monde unix/linux pour des notifications par exemple.

Je vais détailler ici sont utilisation pour l’envoi de mail.
Je suppose dans cet article que vous avez un mta (exim, sendmail,…) installé et fonctionnel.

Premièrement voici comment envoyer un mail simplement :

$ mail -s “Subject” destinataire@mail.com [enter]
Hello,
Your message here.
. [enter]

Comme vous pouvez voir, c’est très simple. L’option -s permet de mettre un sujet, ensuite on écrit son mail puis on le fini par un . ou un ctrl-d.

Entrons maintenant dans la partie amusante.

Imaginons que je lance un emerge world sur un vieux serveur qui traine dans un coin, je vais pas forcement rester devant mais j’aimerais être prévenu quand ca se termine.

$ emerge world && echo “Emerge world fini a `date`” | mail -s “Notification from `hostname`” you@mail.com

Autre exemple, vous ne vous rappelez jamais de l’anniversaire de votre pote Steve et du coup vous oubliez de lui souhaiter…(pas bien !) Mail et cron sont là pour vous !
On va faire un petit script contenant le mail que l’on exécutera chaque année à la date d’anniversaire de votre ami Steve.

#!/bin/bash
$year=1970 # année de naissance
mail -s “Happy Birthday Xy” xy@mail.com <
Salut Xy,
Je te souhaite un joyeux anniversaire pour tes `echo $(( $(date “+%Y”) – $annee ))` ans !
A+
Vincent
EOT

Ensuite…

chmod +x script.sh
crontab -e

Et on ajoute la ligne pour que le script s’exécute, dans ce cas ci, tous les 20 septembre à 8h00 (pour faire plus crédible vous pouvez mettre 12h37, l’heure de réveil du geek normalement constitué).

00 08 20 09 * ./script.sh

Voilà, vous avez compris le principe, mail se combine parfaitement avec toutes les autres subtilités du shell ce qui permet de faire des trucs très amusants, intéressants et pratiques !

Categories: Linux Tags: , , , ,

Installation de FreeBSD sur VMware ESXi

March 16th, 2009 No comments

VMware dans sa grande bonté ne supporte pas par défaut FreeBSD (ni aucune une BSD d’ailleurs). Il va donc falloir bidouille un brin (petit le brin).

Premièrement: Installer ESXi, c’est facile (trop) juste à la fin il faut activer le ssh.

Deuxièmement: Faire une install normale de FreeBSD comme une nouvelle VM normale en sélectionnant Autre/Autre (Non 64 Bits) comme type d’OS.

Troisièmement: Installer les VMware tools, ils ne s’installent pas en mode click-click mais par contre ils sont dispo dans le datastore ou il y a les iso des VMware Tools
Donc:
cp /usr/lib/vmware/isoimages/freebsd.iso /vmfs/volumes/datastore2/ISOIMAGES

Puis le monter dans la VM comme un cd normal en le settant des ses prorpiétés. Ensuite, installer compat6x dans freebsd et executer le script d’install.

Quatrièmement: Shutdown la VM et le guest (le guest se shutdown pas automatiquement après :( ) et éditer un fichier dans /vmfs/volumes/datastore2//.vmx
Chercher les 3 lignes qui commencent par ethernet0. et en rajouter une au dessus avec : ethernet0.virtualDev="e1000"
Cela fait que la carte émulée par VMware est une Intel Pro/1000 qu’il gère beaucoup mieux que celle par défaut (Pas de possibilité de faire du giga par défaut et elle droppe des paquets sous le load.)

Cinquièmement: Démarrer la machine virtuelle, vous n’aurez plus d’ip, c’est normal, editez /etc/rc.conf et changez: ifconfig_le0 pour ifconfig_me0

Et voila vous avez une freebsd prête pour l’action! (Vous pouvez vous en servir comme template 😉 )

Categories: Unix Tags: , , ,

Illégal, le téléchargement gratuit en Belgique ?

March 12th, 2009 No comments

La Belgique ne poursuit pas les internautes qui téléchargent gratuitement. La législation ne le permet pas… Puisqu’elle est inexistante!

Je vous copie/colle la suite de l’article….
Source : http://www.lesoir.be/la_vie_du_net/…
mercredi 11 mars 2009, 12:53

Read more…

Categories: Divers Tags: , ,

Résurrection d’un iPod

March 11th, 2009 4 comments

Ca faisait quelque mois que je n’utilisais plus mon iPod de 3ème génération, ce bon vieux iPod que je baladais partout depuis plus de 5 ans ! En fait le disque dur interne commençait a défaillir, les petits cloc-cloc annonçait sa mort. Malgré qu’il n’avait presque aucun problème pour lire la musique, je n’arrivais plus a rien copier dessus, pas super pratique.

J’ai pensé a remplacer le disque mais c’est assez rare et cher ! J’ai alors trouvé la solution alternative d’un adaptateur carte Compact Flash vers la connectique du disque 1″8 de l’iPod. L’adaptateur coûte 5$ et la carte CF 16 Go un peu moins de 50$, soit un peut moins de 30 euro pour le tout ! La ou ça fait mal c’est pour les frais de port :-)

Une fois le matériel livré je me met au travail, démontage de l’iPod, pas trop dur je l’avais déjà fait pour changer la batterie.

iPod + CF + adapteuriPod démonté

Je branche l’adapteur avec la CF à la place du dur, je referme, branche et là le premier petit soucis…rien ne monte !
L’iPod ne fonctionne plus en firewire avec la CF, damn ! Qu’a cela ne tienne ! Je branche en USB, iTunes s’ouvre et je lui demande de réinitialiser le bouzin.Quoi ? Comment ça tu peux pas le faire en USB ?
Pas grave, iTunes sous windows (vmwarisé) veut bien lui :-)
Reboot de l’iPod, le firmware s’install, cool ! Ha, tiens il l’install deux fois ? Ha non petit bug il l’install en boucle sans s’arrêter !
Petit tour sur google, il semble que le 3G pose problème et qu’il faut copier un firmware soit même…
Démontage, remontage du dur, dd if of de la partoche avec le firware, redéremontage avec la CF, dd if of du firmware et ouf ! Ca fonctionne ! 😀

Seule contrainte, synchroniser en usb, recharger en fw…Mais mon iPod chéri est enfin refonctionnel ! :)

Categories: Divers Tags: , , , , ,

Communiqué de l’industrie du divertissement de masse

March 11th, 2009 No comments

msg_industrie_divertissement_de_masse

Categories: Divers Tags:

Tunnel SSH

February 22nd, 2009 No comments

Petit tips utile pour passer les firewall grâce à un tunnel ssh.

Prérequis, un serveur ssh sur un réseau sans firewall restrictif, un client ssh sur un réseau avec un f*** firewall très restrictif (au hasard celui de l’inpres).

Premier exemple : tunnel pour éviter les filtrages web.

ssh -D 8080 moi@serveurssh.chez.moi

Ca va creer un tunnel dynamique sur le port 8080, ensuite il sufit de configurer votre navigateur pour qu’il utilise le tunnel comme un proxy socks à l’adresse local 127.0.0.1 (ou localhost, ça marche aussi).

Deuxième exemple un peu plus complexe mais rien d’insurmontable : un tunnel pour relever ses mails en pop. Première étape, modifier votre fichier /etc/hosts pour que l’adresse du serveur pop pointe sur la boucle locale (127.0.0.1) par exemple :

127.0.0.1 mail.pointslash.net

Ensuite on fait le tunnel :

ssh -L 110:mail.pointslash.net:110 moi@serveurssh.chez.moi

Rien besoin de changer dans le client mail, tout vos mails passeront dans le tunnel et le pop, s’il n’était pas accompagné de ssl, est maintenant bien plus sécurisé ! Ca marche aussi pour l’imap et toutes les autres applications :-)

Il y a encore bien d’autres applications au tunnel ssh, je pense notamment à l’option de remote forwarding, peut-être dans un prochain article.

Enjoy

Categories: Linux, Network, Unix Tags: , , ,

Nostalgeek en photos

January 30th, 2009 No comments

En fouillant mon GSM, j’ai retrouvé quelques images que je me devais de vous faire partager! Je ne tombe malheureusement plus sur les quelques 300 photos que nous avions prises chez François avec la webcam mais je continue de chercher. 😉

  • Les ballades dans les rues de Seraing en 1ère à l’In.Pr.E.S. L’époque ou François avait encore son magnifique Acer et ou la banquette arrière était recouverte d’emballages Quick :

  • Le démontage du feu Powerbook de Vincent… Il n’a jamais redémarré, RIP!

  • La fameuse antenne de Yggdrasharp et tout le bricolage qu’on avait confectionné à notre petite lan :

Si vous en avez d’autres dans le genre, n’hésitez pas! 😉

Categories: Divers Tags: , ,