Archive

Archive for the ‘Linux’ Category

Programmer un shutdown sous Unix/Linux

March 26th, 2012 No comments

Il m’arrive souvent d’utiliser la commande shutdown -r now pour faire un redémarrage d’une machine. Dernièrement j’ai eu besoin de la programmer pour rebooter un serveur en dehors des heures d’utilisation de celui-ci.

Rien de plus simple, je fais un crontab -e en root et j’ajoute la ligne avec les heures qui vont bien et la fameuse commande !

Hé bien il ne s’est rien passé…

L’explication c’est que le cron n’a pas le même $PATH que vous dans la console :-)

La solution est donc de mettre le chemin complet pour la commande :

#min hour dom mon dow command
00 02 26 03 * /sbin/shutdown -r now

C’est bien sur applicable à toutes autres commandes dans le cron :-)

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

Shairport

May 9th, 2011 No comments

Apple a développé une technologie appelé Airplay (précédemment AirTunes) qui est proposé depuis un moment sur les bornes Airport Express via une sortie jack mais qui commence seulement à se faire connaître.

Ce protocole permet de steamer sa musique depuis iTunes à travers le réseau sur n’importe quel appareil compatible. Très agréable lorsqu’on utilise iTunes évidement Airplay

Malheureusement, je n’avais pas de borne AE ni non plus d’ampli à 9999 euro… J’ai donc cherché et testé plusieurs solutions pour transformer mon serveur en “haut parleur réseau”.

La meilleure solution que j’avais trouvé était finalement un MPD mais je n’ai jamais eu le courage de faire la réorganisation de ma bibliothèque musicale pour entièrement passer sur ce système.

On va arriver dans le vif du sujet. Il y a quelques semaines, un petit malin décide de reverse engineerer Airplay, trouve la clé privé du système et release un petit soft appelé Shairport qui permet de faire exactement la même chose qu’une borne Airport !

Après une petite install des dépendances et de Shairport en lui même, Oh joie ! J’ai enfin mon serveur qui stream la musique depuis iTunes sur mon Macbook vers mes JBL Creature connectées à mon serveur ! :)

Vous pourrez trouver Shairport ici, ça s’installe sans soucis sur Linux, Mac OS et je pense qu’il y a même un portage sur Windows !

Reste à savoir si Apple compte ou non laisser vivre ce petit projet…

Categories: Linux, Mac, Network Tags: , , ,

Wondershaper AKA Qos for dummies

June 6th, 2010 1 comment

It’s noob time!

J’ai découvert un truc pas trop mal pour les gateway linux (que je sais que vous ne manquez pas tous d’avoir!).

Avez vous déja vécu une situation telle que: La secrétaire X a décidé qu’elle allait envoyer l’entièreté de son album photo de vacances (soit ±1500 photos) à une amie. Après avoir essayé par mail et que ce dernier l’ai envoyé péter, une amie lui recommande un super site de partage de fichier légaux (megaupload.com). Elle en fait un tar (non, plutôt un zip) et après six jour de compression, elle l’upload. C’est à ce moment que ça devient intéressant, vous avez déja remarqué que lorsqu’on sature l’upload, le download devient lent à mourir (ou inversement)?

C’est pour l’essentiel dût à une mauvaise gestion des priorité de la file des paquets TCP (oui, oui je vais vous parlez de Qos). Jusqu’à maintenant, on était obligé de définir plein de paramètres chiants “spéciaux” pour paramétrer le Qos correctement.

C’est là que wondershaper entre en scène, c’est tellement compliqué que je vous tape la presqu’entièreté du man ici:

NAME
wondershaper – simple traffic shaping script

SYNOPSIS
wondershaper [interface]
wondershaper clear [interface]
wondershaper [interface] [downlink] [uplink]
[…]
wondershaper is a traffic shaping script that provides low latency,
prioritizes bulk transfers below normal web traffic, prioritizes inter‐
active shells above normal web traffic, and attempts to prevent upload
and download traffic from affecting each other’s ack packets. Put sim‐
ply, the wondershaper makes your internet connection more “responsive”
[…]
wondershaper [ interface ]
Shows the status of traffic shaping on that interface.

wondershaper clear [ interface ]
Removes all traffic shaping from that interface.

wondershaper [ interface ] [ downlink ] [ uplink ]
Configures the wondershaper on the specified interface, given
the specified downlink speed in kilobits per second, and the
specified uplink speed in kilobits per second.

En gros, si vous avez vraiment une grosse flemme: wondershaper . Cela va setter certains params pour rendre les connexions interactives plus “réactives”, et faire en sorte que l’up et le down ne se cannibalisent pas l’un l’autre (et autres cfr. le man).

Sinon, vous êtes en forme, vous tapez wondershaper pour être sur qu’il pige bien quelle BW vous avez à lui accorder.

Ca peut aussi servir à limiter la BW volontairement, j’ai utilisé ça pour limiter le débit sur un tunnel VPN (wondershaper tun0 …).

Alors, compliqué hein le Qos? Ca valait bien la peine de se taper le CCIP ^^

Pour le plus noob d’entre nous: je crois qu’il y a même un gui pour ClarkConnect ^^

Categories: Linux, Network Tags:

Monitorix

May 6th, 2010 2 comments

Monitorix n’est pas un Gaulois du village d’Asterix et n’a rien a voir non plus avec la VOIP :-)

C’est un petit système de monitoring que j’ai découvert il y a peu en cherchant une solution simple mais assez complète pour monitorer mon serveur à la maison.

Monitorix - CPU, Week

Le but premier était surtout d’avoir de joli graphique avec l’utilisation des diverses ressources au fil du temps ainsi que l’évolution de la température des composants du serveur. N’ayant pas prévu une super ventilation du boîtier je voulais pouvoir suivre les changements de température. Maintenant que les beaux jours reviennent ça risque de chauffer plus.

Monitorix - LMTemp, Week

Monitorix s’install à partir des sources que l’ont peut trouver sur le site, pour les distributions classiques il y a un script d’installation, très simple. Il dépend de rrdtool qu’il faut donc installer et il faut aussi prévoir un serveur web, ici j’ai un apache avec le mod_ssl et tout fonctionne parfaitement.

Monitorix - Network, Week

La configuration est assez simple, tout se trouve dans le fichier /etc/monitorix.conf, il faut juste y adapter quelques paramètres à votre configuration. Par contre j’ai toujours quelques soucis a faire fonctionner le monitoring de certains ports réseaux. Mais vu qu’il gère out of the box la surveillance des principaux services de bases comme le file sharing (smb, afp,…) ou le web ce n’est pas très important dans mon cas.

Monitorix - Disk, Week

Si votre serveur sert aussi de gateway, vous pouvez monitorer le trafic de chaque noeud du réseau en l’ajoutant dans le fichier de config. Je n’ai malheureusement pas pu testé cette fonction.

Sinon pour conclure, je suis vraiment satisfait de ce petit outil, j’vais surement le déployer autre part.

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: , , , ,

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: , , ,

Flash or not flash ?

January 30th, 2009 No comments

Peut-etre trouverez vous ceci rechauffe ou trop ancien pour votre toute derniere distro kikoolol hyper conviviale qui tourne sur votre sublime ultra portable a memoire flash.
Pourtant les liens reellement interessants sur les differents (bons) moyens de preserver un tant soit peu votre flash ne sont pas legion.
C’est pourquoi je vous propose ici un lien peut-etre pas tout jeune, mais qui a le merite d’etre bien fait et de donner une explication sur le pourquoi du comment.

Sans plus attendre, voici donc le lien en question : Linux on flash

Categories: Linux Tags: , ,