penthium2.org

Accueil | Tags | Archives

mardi 25 novembre 2014

Prise de contrôle d'une session ouverte à distance de façon sécurisé

  • Problèmatique :

Les technologie de partage de bureau a distance sous linux éxiste ( VNC, Nomachine, X2go,... ) mais ne permette pas dé sécuriser correctement le poste physique prise sous contrôle.

Deux solutions s'offre à nous :

Soit on génère une autre session virtuel attacher a l’application de contrôle a distance ( VNC ). Cela reste sécurisé d'un point de vu poste physique, mais cela ne permet pas de récupérer les application déjà ouverte sur la session physique ( ce qui en entreprise ne permet pas de reprendre son travail a distance ). Cette solution n'est donc pas adaptée.

Soit on prend la session physique, mais losque l'on fait ça, au moment ou vous déverrouillez la session cela déverrouille aussi le poste physique, car les outils de controle à distance ( VNC, Nomachine, X2go ) déporte l'affichage sur le poste client. De plus vous ne pouvez pas réellement et correctement redimensionner la résolution de lécran.

  • Le but est donc :

Pouvoir récupérer une session verrouillée d'un poste physique ( qui peut etre en dual screen, cad avec une grosse résolution ) via un poste distant, qui interdit l'affichage video sur le poste physique et en plus redimensionne la résolution de la session pour qu'elle corresponde à l'écran du poste distant.

  • Mise en place :

Mon astuce va travailler avec le logiciel Nomachine ( je pense qu'il pourait travailler aussi avec X2go).

J'ai configuré Nomachine pour qu'il écoute sur le port 3389 ( pour des raisons de firewall dans mon entreprise ).

A l'ouverture de ma session j'ai ce script qui se lance :

         #!/bin/bash
while :
        do
        netstat -ant | grep '172.16.121.13:3389.*ESTABLISHED' > /dev/null
        if [[ "$?" = "0" ]]
                then
                        if [[ -f ~/.screenlayout/conected ]]
                                then
                                        touch ~/.screenlayout/conected
                                else
                                ~/.screenlayout/Off.sh
                                touch ~/.screenlayout/conected
                                rm ~/.screenlayout/disconected
                        fi
                else
                        if [[ -f ~/.screenlayout/disconected ]]
                                then
                                        touch ~/.screenlayout/disconected
                                else
                               ~/.screenlayout/double.sh
                                touch ~/.screenlayout/disconected
                                rm ~/.screenlayout/conected
                        fi
                fi
        sleep 10
        done

Ce script va surveiller toute les 10 secondes si une connexion est établie ou non sur le port 3389. Si c'est le cas je désactive les sorties vidéos physiques de mon poste physique et je génère un écran virtuel, tout cela via ce script :

#!/bin/sh
xscreensaver-command -lock
xrandr --addmode VIRTUAL1 1280x1024
xrandr --output eDP1 --off --output DP1-3 --off --output VIRTUAL1 --mode 1280x1024 --pos 0x0 --rotate normal --output DP1 --off --output HDMI2 --off --output HDMI1 --off --output DP1-3 --off --output DP1-2 --off --output DP1-1 --off

Je génère aussi un petit fichier vide pour évité de relancer toutes les 10 secondes le script xrandr. Losque que je ferme le client distant ( de nomachine ) le script auto s’aperçoit en 10sec que la connexion sur le port 3389 est fermé et il lance ce script :

#!/bin/sh
xscreensaver-command -lock
xrandr --output VIRTUAL1 --off --output eDP1 --mode 1920x1080 --pos 0x0 --rotate normal --output DP1 --off --output HDMI2 --off --output HDMI1 --off --output DP1-3 --mode 1680x1050 --pos 1920x0 --rotate normal --output DP1-2 --off --output DP1-1 --off

Désactivant l'écran virtuel et remettant en place mon dual screen sur le poste physique et générant un fichier témoin pour éviter de renlancer xrandr toutes les 10secs.

Et voila le tour est joué.

Bien-sur ce script est à adapter a vos besions.

Merci a Core Blah pour son savoir, et sa façont de donnée des solution sans les donner :

Voila les commandes tu dois pouvoir le faire.

Lire la suite»

jeudi 17 mai 2012

Script Cron pour Minecraft

Minecraft étant une application java ! il est parfois important de relancer le serveur ( car il monte en charge inutiliement) Mais comment relancer un serveur si il y a du monde de connecté !! c'est pas classe !

donc voila un petit script maison qui permet de vérifier si des utilisateurs sont connectés, et le cas échéant surveiller les logs du serveur pour relancer le serveur une fois vide de joueurs.

#!/bin/bash
#définition du path log :
logfile=/minecraft/server.log
ipserv="192.168.1.10"
port="25565"
netstat -ant | grep "$ipserv:$port.*ESTABLISHED"
if [[ $? == 0 ]]
       then   
               echo "$(date) il y a du monde sur Minecraft en attende de la déconection des joueurs" >> /var/log/messages


               while   inotifywait -q -e modify  $logfile 
               do
                       if tail -n1 $logfile | grep '\[INFO\] \<..*\> lost connection'
                              then
                               echo "$(date) déconection des joueurs Ok" >> /var/log/messages
                               echo "$(date) redémarage de Minecraft" >> /var/log/messages
                               while netstat -ant | grep "$ipserv:$port.*ESTABLISHED" 
                                        do
                                        echo "$(date) waitting deconection" >> /var/log/messages
                                        sleep 60
                                done
                                (invoke-rc.d minecraft restart && wait )  
         echo "$(date) rédamarage de Minecraft Ok" >> /var/log/messages
                               break
                       fi
               done
       else   
               echo "$(date) redémarage de Minecraft" >> /var/log/messages
               (invoke-rc.d minecraft restart && wait )
               echo "$(date) rédamarage de Minecraft Ok" >> /var/log/messages

fi

Merci a frédéric P pour sont aide sur inotifywait et l'idée d'utiliser netstat

Lire la suite»

jeudi 19 avril 2012

Monitorix

Cela faisait longtemp que je voulais un soft de monitoring sur mon serveur maison, sans non plus installer une usine type Nagios, mais qui me faisait tout de même une interface WEB pour surveiller le serveur à distance.

Avant j'utilisais multitail, glances, htop le tout en ssh via une session screen mais bon voila, c'est pas tip top et on a pas toujours une connexion ssh disponible.

Et voila que je tombe sur un article parlant de monitorix.

Facile à installer, à configurer, possibilité de mettre un htaccess pour bien sécuriser le tout.

Bref que du bonheur.

Exemples de screenshot :

site du projet :

monitorix

Lire la suite»

jeudi 19 janvier 2012

Minecraft Serveur At home

Et oui, je suis un Geek, je joue à MineCraft !

Pire que tout !! je joue seul mais sur un serveur perso !! WTF !!

Cela mérite une petite explication :

Configuration du client :

Je joue sur un eeePc : ASUS 1215B donc une configuration assez faible graphiquement et aussi au niveau du CPU.

J'ai testé de mettre Minecraft en condition minimal mais le FPS n'était pas trop au rendez-vous ( 15FPS max , même avec la version final 1.0).

Là, folie m'a pris de faire un test en créant un serveur Perso et ô bonheur je suis passé au dessus des 24 FPS \o/

Configuration du serveur :

Platforme : NEC Versa S970

CPU : Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz

RAM : 2 Go

System : Ubuntu 10.04 en mode texte. (une migration vers un serveur Fedora est en projet)

Installation et importation de la map solo :

On commence bien-sur par récupérer la version serveur de minecraft sur le site de minecraft

Et on la place dans un répertoire de son choix ( chez moi /media/minecraft )

il est maintenant possible de lancer le serveur sur le serveur avec cette commande :

java -Xmx1024M -Xms1024M -jar /media/minecraft/minecraft_server.jar nogui

Importation de la map perso : il suffit ce copier depuis votre serveur solo le répertoire comportant le monde de votre sauvagarde et la copier sur le serveur dans un répoertoire.

exemple :

scp -r ~/.minecraft/NOM_MAP user@ADRESSE_SERVEUR:/$MINECRAFT-SERVER_PATH/

Le nom de la map ( le répertoire contenant le monde ) doit être indiqué dans le fichier : /$MINECRAFT-SERVER_PATH/server.properties

level-name=NOM_MAP

Mise en place de Minecraft-server en mode service init

Cela évitera de lancer le serveur à la main quand on veut jouer.

voici mon script init :

#!/bin/bash
# /etc/init.d/minecraft

#Settings
SERVICE='minecraft_server.jar'
USERNAME="root"
MCPATH='/media/minecraft/'
BACKUPPATH='/media/minecraft/minecraft.backup/'

ME=`whoami`
as_user() {
  if [ "$ME" == "$USERNAME" ] ; then
    bash -c "$1"
  else
    su - $USERNAME -c "$1"
  fi
}

mc_start() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "Tried to start but $SERVICE was already running!"
  else
    echo "$SERVICE was not running... starting."
    cd $MCPATH
    as_user "cd $MCPATH && screen -dmS minecraft java -Xmx512M -Xms512M -jar minecraft_server.jar  nogui"
    sleep 7
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICE is now running."
    else
      echo "Could not start $SERVICE."
    fi
  fi
}

mc_saveoff() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
   then
      echo "$SERVICE is running... suspending saves"
      as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly...\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-off\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
                sync
      sleep 10
   else
                echo "$SERVICE was not running. Not suspending saves."
   fi
}


mc_saveon() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
   then
      echo "$SERVICE is running... re-enabling saves"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-on\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP ENDED. Server going read-write...\"\015'"
   else
                echo "$SERVICE was not running. Not resuming saves."
   fi
}

mc_stop() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE is running... stopping."
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map...\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
                sleep 10
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
                sleep 7
        else
                echo "$SERVICE was not running."
        fi
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE could not be shut down... still running."
        else
                echo "$SERVICE is shut down."
        fi
}

mc_update() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "$SERVICE is running! Will not start update."
  else
    MC_SERVER_URL=http://minecraft.net/`wget -q -O - http://www.minecraft.net/download.jsp | grep minecraft_server.jar\ | cut -d \" -f 2`
    as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update $MC_SERVER_URL"
    if [ -f $MCPATH/minecraft_server.jar.update ]
    then
      as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/minecraft_server.jar"
      echo "Minecraft successfully updated."
    else
      echo "Minecraft update could not be downloaded."
    fi
  fi
}

mc_backup() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
#    echo "$SERVICE is running! Will not start backup."
#  else
    echo "Backing up minecraft data"
    if [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"` ]
    then
      for i in 1 2 3 4 5 6
      do
        if [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"`-$i ]
        then
          continue
        else
          as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%m.%d.%Y"`-$i"
          break
        fi
      done
    else
      as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%m.%d.%Y"`"
    fi
    echo "Backing up the minecraft server executable"
    if [ -f "$BACKUPPATH/minecraft_server_`date "+%m.%d.%Y"`.jar" ]
    then
      for i in 1 2 3 4 5 6
      do
        if [ -f "$BACKUPPATH/minecraft_server_`date "+%m.%d.%Y"`-$i.jar" ]
        then
          continue
        else
          as_user "cd $MCPATH && cp minecraft_server.jar \"$BACKUPPATH/minecraft_server_`date "+%m.%d.%Y"`-$i.jar\""
          break
        fi
      done
    else
      as_user "cd $MCPATH && cp minecraft_server.jar \"$BACKUPPATH/minecraft_server_`date "+%m.%d.%Y"`.jar\""
    fi
  fi
  echo "Backup complete"
}

#Start-Stop here
case "$1" in
  start)
    mc_start
    ;;
  stop)
    mc_stop
    ;;
  restart)
    mc_stop
    mc_start
    ;;
  update)
    mc_stop
    mc_backup
    mc_update
    mc_start
    ;;
  backup)
    mc_saveoff
    mc_backup
    mc_saveon
    ;;
  status)
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICE is running."
    else
      echo "$SERVICE is not running."
    fi
    ;;

  *)
  echo "Usage: /etc/init.d/minecraft {start|stop|update|backup|status|restart}"
  exit 1
  ;;
esac

exit 0

Il faut maintenant configurer ce service pour qu'il se lance au démarrage :

update-rc.d minecraft defaults

Cerise sur le gateau !

J'ai donc un serveur en place ! il est lancé automatiquement au démarrage du système. Et si je mettais en place une carte type google map du mon monde !

Pour cela je vais utiliser overviewer.

Voici un exemple de rendus : http://overviewer.org/example/s

Une fois avoir récupérer et installer overviewer, il faut penser à récupérer un texture pack depuis le répertoire du client et le placer sur le serveur.

Et enfin on peux lancer le rendus :

/usr/local/bin/overviewer.py --rendermodes='lighting,cave,night,spawn' /media/minecraft/p2/ /var/www/minecraft --textures-path /media/minecraft/MAPPER/overviewer-Minecraft-Overviewer-a690771/

bien-sur il faut aussi un serveur Web fonctionnel.

il ne reste plus qu'a mettre dans un script cette ligne de commande, la mettre dans une tache cron 1 fois par jour et le tour est joué.

Lire la suite»

Live-CDs Fedora francisés

Je vais reprendre en partie un post de DarthWound qui avec Casper est à l'origine de la francisation des Live-CD Fedora. Le post original que je vous conseil de suivre est là : LiveCDs Fedora en français.

Le problème est que les Live-CDs Fedora sont de base en anglais, et lorsqu'on les installe sur le disque dur, ceux-ci ne sont pas en français après l'instalation ( je fais cours). Il y a certes des façons de détourner ces problèmes mais elles ne sont pas innées surtout pour un nouvel utilisateur.

Il sera donc proposé dans ce post la liste des Live-CD francisés. Je vous conseille de passer part les fichiers Torrent et si possible de garder le seed une fois le téléchargement finit. Plus on sera nombreux à partager les isos, plus vite les téléchargements se feront.

I - Référencement des liveCDs disponibles :

Fedora 16 Gnome i686, par C@sp€r

Torrent: Fedora-16-Gnome-x86_64-FR.torrent

Fedora-16-Gnome-i686-FR

Fedora-16-Gnome-i686-FR.CHECKSUM

Fedora 16 Gnome x86_64, par slobberbone

Torrent: Fedora-16-Gnome-x86_64-FR.torrent

Fedora-16-Gnome-x86_64-FR.iso

Fedora-16-Gnome-x86_64-FR.CHECKSUM

Fedora 16 KDE i686, par penthium2

Torrent: Fedora-16-KDE-i686-FR.torrent

Fedora-16-KDE-i686-FR.iso

Fedora-16-KDE-i686-FR.CHECKSUM

Fedora 16 KDE x86_64, par Did

Torrent: Fedora-16-LXDE-i686-FR.torrent

Fedora-16-KDE-x86_64-FR.iso

Fedora-16-KDE-x86_64-FR.CHECKSUM

Fedora 16 LXDE i686, par DarthWound

Torrent: Fedora-16-LXDE-i686-FR.torrent

Fedora-16-LXDE-i686-FR.iso

Fedora-16-LXDE-i686-FR.CHECKSUM

Fedora 16 LXDE x86_64, par Did

Torrent: Fedora-16-LXDE-x86_64-FR.torrent

Fedora-16-LXDE-x86_64-FR.iso

Fedora-16-LXDE-x86_64-FR.CHECKSUM

Fedora 16 Xfce i686 et x86_64

Xfce contient un paquet qui déclenche une erreur critique à l'heure où ce post a été rédigé.

Serveur Alternatif ( Merci a Did ) :

http://alez.fr/fedora_FR.php

Lire la suite»

jeudi 12 janvier 2012

shaarli

Un outil très agréable pour stocker et mettre en ligne nos liens favoris trouvés sur internet : c'est Shaarli.

Son créateur est SebSauvage connu généralement pour son site : sebsauvage les trucs qui m'énervent.

Le site de Shaarli : wiki shaarli

Il permet avant tout de mettre en une page Web les liens que l'on trouve sur le Net, les classer par tags, et la possibilité d'avoir des liens strictement personnels.

Voila ses fonctionnalitées :

Minimalist design (simple is beautiful)

FAST

Easy to use: Single button in your browser to bookmark a page

Save url, title, description (unlimited size)

Classify links with tags (with autocomplete)

Bookmarks can be public or private

Browse links by page

Filter by tags

Full text search

Tag cloud

Picture wall (which can be filtered by tag or text search)

Permalinks

Automatic thumbnails for various services (imgur, imageshack.us, flickr, youtube, vimeo, dailymotion…)

RSS and ATOM feeds (which can be filtered by tag or text search)

PubSubHubbub protocol support

No-brainer installation: Drop the files, use it.

No database required (data stored in a single file ; easy to backup)

Compact storage (1315 links stored in 150 kb)

Can import/export Netscape bookmarks (for import/export from/to Firefox, Opera, Chrome, Delicious…)

Automatic ban of IP address if too many failed logins

Protected against XSRF, session cookie hijacking… and of course SQL injection (since there's no SQL database)

FeedBurner/Google FeedProxy annoying parameters in URL (?utm_source…) are removed automatically

Shaarli is a bookmarking application, but you can use it for micro-blogging (like Twitter), a pastebin, an online notepad, etc.

You will be automatically notified by a discreet popup if a new version is available

Pages are customisable (using simple RainTPL templates)

Téléchargement :

http://sebsauvage.net/files/shaarli.zip

Ce lien est un lien permanent vers la dernière version, et l'auteur modifie sont contenue à chaque changement de version.

Installation :

Il suffit d'avoir sur son serveur un Web-Server (exemple Apache2) avec PHP 5.1 au minimum, PHP 5.2 étant plus agréable.

De créer un répertoire pour shaarli et décompresser le contenu.

Il suffit après de lancer une première fois le site , passer la phase de configuration (login,passeword,time zone) et le tour est joué.

Utilisation :

Une fois Shaarli configuré, aller sur le lien de votre site, identifiez-vous puis rendez vous dans la section tools puis glisser le bouton : SHAARE LINK dans votre navigateur internet ( compatible : Firefox, Opera, Chrome et Safari ).

Une fois le bouton Shaarli dans votre bar de favoris, lorsque vous surfez sur un site que vous voulez partager, il suffira de cliquer sur le bouton : Shaare Link de votre bar de favoris, un pop up s'ouvrira et il suffit de renseigner les tag et un commentaire sur ce lien.

Pour rendre un lien PRIVE n'oubliez pas de cocher la case : PRIVATE

Pour lire ses liens privés il suffit de s’authentifier sur son site shaarli et ils apparaîtront.

Conclusion :

J'utilise Shaarli pour un usage perso, il me permet d'avoir rapidement et de n'importe où des petits liens que j'ai trouvés sur le Net. Certains de ces liens m'étant perso j'utilise bien entendu l'option PRIVATE.

Un exemple d'une utilisation de Shaarli est bien-sur le Shaarli de sebsauvage.

Lire la suite»

jeudi 29 septembre 2011

Archivage des fichiers cachés via TAR

Il est parfois fort utile d'archiver des fichiers cachés ( rien que nos fichier de configuration de nos petits softs adorés dans notre home directory )

Comme vous le savez les fichiers cachés commencent par un "."

Premier réflexe :

cd ~
tar czvf archive-dotfiles.tar.gz .*

Et la c'est le drame, TAR archive tous les fichiers de mon home....

Mais pourquoi tant de haine !!!! Et bien il faut réfléchir un petit peu à la structure même d'un répertoire et se souvenir des notions chemin relatif et absolut; et surtout, du répertoire courant (.) et répertoire parent (..)

Pour bien comprendre la commande d'avant : en mettant .* il devient maintenant évident que les fichier "." et ".." seront interprété et mis en archive par TAR. Hors si TAR prend le répertoire "." en archive, il va obligatoirement prendre son contenue ( TAR est récursif ) donc il prendra en plus des fichiers caché les autres fichiers. et il en ira de même avec l'interprétation du fichier "..".

Comment faire ?

TAR a la possibilité d'exclure des fichiers, et c'est la solution à mettre en place. Notre commande sera donc de la forme :

cd ~
tar czvf archive-dotfiles.tar.gz --exclude . --exclude .. .*

Lire la suite»

jeudi 1 septembre 2011

Migration vers boot express card SSD

Quel bonne nouvelle de voir que le kmod-staging était de retour pour ma fedora 15 et donc le module kernel phison. Celui-ci me permet enfin d'utiliser mon expresscard verbatim SSD 16Go. Et là l'idée me prends de migrer ma partition racine (20Go, ocupé 9.3Go) qui est sur mon HDD SATA 5200rpm 500Go vers l'express card.

Problématique

Mon DELL Studio 1737 ne reconnait pas mon expresscard comme périphérique bootable, donc grub ne le voit pas non plus. Mon ExpressCard SSD demande obligatoirement un module kernel spécifique ( phison ) contenu dans les kmod-staging.

Etat des lieux

voici actuelement la séquance de boot de mon system : grub :

title Fedora (2.6.40.3-0.fc15.x86_64)
        root (hd0,2)
        kernel /boot/vmlinuz-2.6.40.3-0.fc15.x86_64 ro root=UUID=d5cb1ae8-748b-4af6-94cb-92188effabb7 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rhgb quiet
        initrd /boot/initramfs-2.6.40.3-0.fc15.x86_64.img
title Fedora (2.6.40-4.fc15.x86_64)
        root (hd0,2)

grub récupère le kernel et initramfs sur la partition /dev/sda3.

Principe du futur boot

Utilisé la partition STATA /dev/sda3 qui contient grub et les fichiers du kernel comme partition de boot utiliser pour grub et le chargement du noyau et indiquer où est la nouvelle racine du systeme. A la fin du boot la partition /dev/sda3 ne sera pas montée.

Préparation de l'enviroment de travail

Pour bien faire il me faut un live USB qui contient le module phison.

Avec l'aide du soft : Fedora LiveUSB creator je crée donc une distrib fedora 15 avec une persistance des données.

Je boot dessus et j'intègre les dépôts RPM-fusion afin d'installer le kmod-staging.

Hop cela installe en même temps le dernier kernel, et à partir de maintenant le module phison est monté quand le ssd est présent au démarage.

Génaration de la racine SSD

Reboot sur liveUSB et préparation de la futur racine :

une fois booté sur le liveUSB je monte la racine SATA ( /dev/sda3 ) dans /source, et la futur racine SSD ( /dev/sdc1 ) dans /dest

Copie de la racine

cp -a /source/* /dest

Préparation au reboot

INITRD

Là un point important qu'il faut bien prendre en compte est que l'image initramfs-2.6.40.3-0.fc15.x86_64.img actuelle placer sur /dev/sda3 ne contient pas le module phison, donc de base le boot du kernel ne peut pas voir l'expressCard. Il faut donc créer un initramfs avec le module phison. Biensur cette image devra etre dans le répertoire /boot de /dev/sda3 ( actuelement monté dans /source)

 mkinitrd --preload phison -f /source/boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img 2.6.40.3-0.fc15.x86_64

Cette commande est donc composé de :

--preload phison : indique qu'un module complémentaire doit etre intégré à l'image.

-f /source/boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img : indique le nom de l'image à créer

2.6.40.3-0.fc15.x86_64 : indique la version du kernel à utiliser pour générer l'initrd.

Nous somme donc avec une image initrd contenant le module phison, et une image ne contenant pas ce module.

Je rajoute donc une nouvelle ligne dans le grub.conf de la partition /dev/sda3 (/source/boot/grub.conf) :

title Fedora SSD (2.6.40.3-0.fc15.x86_64)
        root (hd0,2)
        kernel /boot/vmlinuz-2.6.40.3-0.fc15.x86_64 ro root=UUID=6530d8a4-7406-4163-9735-64c4b9175b83 rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=fr_FR.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=fr-latin9 rhgb quiet
        initrd /boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img

J'indique donc à grub que ses fichiers seront du hd0,2 (/dev/sda3) et que la racine du système n'est plus sur UUID du /dev/sda3, mais sur l'UUID de l'expresscard (/dev/sdb1).

Et biensur je lui dis d'utiliser le initrd contenant le module phison ( /boot/initramfs-2.6.40.3-0.fc15.x86_64ssd.img ).

FSTAB

Il faudra bien-sur modifier le fstab de la nouvelle racine ( actuellement monter dans /dest/etc/fstab) et changer l'UUID de /dev/sda3 pour celui de /dev/sdc1.

UUID=6530d8a4-7406-4163-9735-64c4b9175b83 /                       auto    defaults        1 1

SELINUX

Puis qu'on a effectué une simple copie de la racine SATA vers la racine SSD il faut obligatoirement préparer le premier boot en SSD pour que SELINUX relabèlise les fichiers de la nouvelle racine.

Dans le cas contraire le système de démarrera pas car SELINUX refusera de donner accès aux fichiers système ( une solution par très propre est de rajouter selinux=0 dans la ligne du kernel dans grub.conf A NE PAS FAIRE).

Pour cela il faut créer un fichier .autorelabel à la racine du du futur filesystem racine. donc ici :

touch /dest/.autorelabel

Lors du boot, selinux voyant se fichier, il tentera de relabéliser le filesystem, cela peut prendre un certain temps, et dans mon cas j'ai du rebooter 2 fois pour que la relabélisation soit complète.

résumer

On a donc copier la racine sur le ssd, générer un initrd spécifique avec le module phison ( prise en charge de l'expresscard) copier dans le /boot (de la partition SATA), ajouter une entré dans le grub.conf (de la partition SATA), modifier le fstab ( de la partition SSD), préparé la racine SSD pour que selinux relabélise le file system)

REBOOT

C'est le moment de prier crom, car on va rebooté le système. au reboot on indique bien à grub de booter sur l'entrée Fedora SSD (2.6.40.3-0.fc15.x86_64) et la magie s'opère.

Et le futur ?

La dificulté de tout cela sera dans les mise à jours du kernel (c'est pas tout les jours), et de grub ( c'est encore plus rare).

Pour les mise à jours du kernel il ne faudra simplement pas oublier de régénérer un initrd pour la nouvelle version de kernel, copie le nouveau kernel et l'initrd_ssd dans le repertoire /boot de la partition /dev/sad1. et modifier le grub.conf dans la partition /dev/sda3.

Pour les mise a jours de grub, je vois pas trop, à la limite je ne le metterais pas à jours.

Conclusion

temps de boot

voila mon temps de boot avant :

Sep  1 08:12:35 dellp2 systemd[1]: Startup finished in 1s 457ms 538us (kernel) + 7s 17ms 520us (initrd) + 38s 393ms 430us (userspace) = 46s 868ms 488us.

et après :

Sep  1 11:06:29 dellp2 systemd[1]: Startup finished in 1s 415ms 263us (kernel) + 11s 357ms 679us (initrd) + 20s 101ms 712us (userspace) = 32s 874ms 654us.

soit un gain de 14secondes. ce qui est bien mais pas top.

vitesse des disques

hdparm -Tt /dev/sda
/dev/sda:
 Timing cached reads:   3204 MB in  2.00 seconds = 1603.48 MB/sec
 Timing buffered disk reads: 224 MB in  3.04 seconds =  73.71 MB/sec

hdparm -Tt /dev/sdb
/dev/sdb:
 Timing cached reads:   3312 MB in  2.00 seconds = 1657.42 MB/sec
 Timing buffered disk reads: 328 MB in  3.02 seconds = 108.74 MB/sec

Soit un gain de 35MB/sec ce qui là n'est pas négligeable, et l'ouverture des applications est réellement plus rapide.

Pour rappelle l'expresscard Verbatim SSD 16Go sur mon pc est conecté en PCIexpress 1X !!

Donc cela m'ouvre la porte vers l'envie d'acheter un disque SATA SSD qui là donnera bien plus de performances.

Lire la suite»

vendredi 26 août 2011

sécurisation d'une connexion ssh

Un simple logiciel est c'est "finit", certe cela ne fait pas tout mais ca permet de stopper les attaques en brute de force. j'ai nommé fail2ban

Le principe est simple, il regarde les fichiers de log sur les erreurs de login, et si une ip se trompe trop de fois dans une authentification SSH fail2ban demande à Shorewall de modifier dynamiquement NETFILTER pour ajouter aux règles du firewall l'IP incriminée en lui interdisant l’accès.

Instalation :

yum install fail2ban

Les fichiers de conf :

/etc/fail2ban/fail2ban.conf

Permet de configurer le comportement general de fail2ban.

/etc/fail2ban/jail.conf



Permet de configurer les services surveillées par fail2ban, indiqué la durée de bannissement, etc..

Lire la suite»

mardi 16 août 2011

Masse replace !

Il est parfois utile de faire des remplacements d'une occurrence dans un fichier ! là ça reste pas trop dur grace a vim :

:%s/occurrence/remplacement/g

Mais comment farie quand on veut modifier une occurrence qui est dans plusieurs fichiers par une autre ! Hé bien là, shell est mon ami :

grace a la commande sed :

( merci à tshirtman via google+ et son commentaire)

sed -i s/occurence/remplacement/g *

ou bien ( mais c'est pas top )

 for i in `grep -l occurrence *` ; do vim -c '%s/occurrence/remplacement/g' -c 'wq!' $i; done

Lire la suite»

jeudi 11 août 2011

Man Of Man @ HOME

Dans un ancien article je vous avais parler du super Man of Man. Et bien j'ai décidé de l'auto héberger.

Apres une petit configuration DNS en utilisant un CNAME home.penthium2.org vers mon enregistrement DynDNS, l'ouverture du port qui va bien sur ma livebox ( ARG ) voici donc : HOME MAN OF MAN

Lire la suite»

vendredi 29 juillet 2011

La joie du scripting !!

voici un petit site très agréable pour aller plus loin dans le scripting sous shell bash !

Attention ca pique : BASH

Lire la suite»

mercredi 13 juillet 2011

Cerveauuuuuu

Inutile donc indispensable !! faire son petit Zombi maison :D

Si vous êtes curieux et voulez voir comment ressemble à un zombie, vous pouvez créer un zombie avec ce programme c:

Source code:

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main ()
{
  pid_t child_pid;

  child_pid = fork ();
  if (child_pid > 0) {
    sleep (60);
  }
  else {
    exit (0);
  }
  return 0;
}

Enregistrez-le sous zombie.c, le compiler avec:

gcc zombie.c -o zombie

et exécutez-le avec:

./zombie

Maintenant, vérifier la sortie de cette commande (en 1 minute) dans une autre fenêtre:

ps -el | grep " Z "

Lire la suite»

mardi 12 juillet 2011

Man of MAN !!!

Fait par l'un des meilleurs membres du forum fedora-fr.org
voila UNE référence à ne pas louper !!!! http://marionpatrick.free.fr/

Lire la suite»

configuration du clavier en AZERTY pour l'utilisation de VINO

Vino est un logiciel permetant la prise de controle à distance du bureau d'un utilisateur. Hors depuis Fedora 15 je rencontrais un petit problème de clavier !

Sur la machine physique le clavier était en AZERTY mais dans la fenêtre de controle à distance le clavier était en QWERTY.

Pour résoudre cela il va faloir créer un script qui sera lancer à l'ouverture de session utilisateur.

créer un script : vino.sh

setxkbmap fr

puis le rendre executable :

chmod u+x vino.sh

puis lancer la commande

gnome-session-properties

Et ajouter le script.

cela génère un fichier dans : ~/.config/autostart nommé vino.sh.desktop

[Desktop Entry]
Type=Application
Exec=/home/penthium/vino.sh
Hidden=false
X-GNOME-Autostart-enabled=true
Name[fr_FR]=vino.sh
Name=vino.sh
Comment[fr_FR]=reconfiguration du clavier pour vino
Comment=reconfiguration du clavier pour vino

Le tour est joué ! a chaque ouverture de session le clavier est remis en phase pour que les connexions vino soit en azerty \o/

Lire la suite»

vendredi 10 juin 2011

guide du surffeur fou en init 3 (ou La méthode Casper)

Ha les joies de l'init 3 !

une mauvaise mise à jour ! PAF init 3

un soft qui explose gnome 3 ! PAF init 3

Mais alors ! comment faire pour surffer et chatter avec la communauté dans ces cas là ?

Cet article va décrire plusieurs petits softs vous permettant de survivre en milieu hostile ( ou pas ).

Cet article va aussi vous permettre par exemple d'utiliser une connection SSH pour accéder à vos outils de surf et chat quand vos voyager et que vous ne pouvez pas avoir vos soft de chat, mais que vous pouvez avoir une conexion SSH.

Voila donc 4 logiciels important :

1) SCREEN

Certainement le principal lors de l'utilisation de conexion SSH.

Un article est déja present sur ce site, donc je ne reviendrais pas trop dessus. (cf Article :Screen ).

Il permet surtout de garder les logiciels ouvert dans ses session, meme quand votre conexion SSH se coupe ou que vous la coupiez vous meme (dans ce cas la je vous conseil l'utilisation de la combinaison : "Ctrl+a x", elle permet de locker la session en cours).

2) ELINKS

elinks

Le navigateur WEB sous console. il existe d'autres navigateurs comme lynx, mais j'ai une préference pour elinks. Son installation est facile puisse qu'il est déjà intégré au depot fedora :

su -c "yum install elinks"

Le lancement est aussi simple :

elinks
ou 
elinks fedora-fr.org

L'utilisation n'est pas trop compliquer une fois qu'on a compris qu'il faut valider le champs qui nous interesse avec la touche ENTREE.

On poura se déplacer dans une page avec la touche ESPACE pour descendre et Ctrl-B pour monter. Mais la MOLETTE de la sourie marche très bien.

pour plus d'info : elink Keys

3) IRSSI

IRSSI

Irssi est un client IRC, je ne referais pas une documentation sur ce logiciel mais je vous invite plutot à aller voir le wiki fedora qui est très bien fait : wiki fedora Irssi

Je rajouterais juste l'explication de l'installation du script Nicklist.pl et la connection SSL vers un serveur qui l'autorise.

Nicklist.pl : ce script permetera d'avoir une "barre" sur le coté avec la liste des utilisateurs connecter au chan.

installation :
$ mkdir -pv $HOME/.irssi/scripts/autorun && cd $HOME/.irssi/scripts
$ wget http://www.irssi.org/scripts/scripts/nicklist.pl
$ cd autorun
$ ln -sv ../nicklist.pl
configuration et utilisation :

changer la largeur le la bare des speudo :

/set nicklist_width <number>

Faire que la bare de speudo soit lancer au démarage de Irssi:

/set nicklist_automode screen

Déplacement dans la bare de speudo :

/nicklist scroll <+|-number>

ex :

/nicklist scroll -10

Il est possible d’assigner des raccourcis clavier :

/bind something command nicklist scroll -10 
/bind something-else command nicklist scroll +10
Conexion SSL :

Pour avoir une conection SSL qui fonction il faudra avant tout installer les références aux certificats racines :

su -c "yum install ca-certificates"

Puis dans le fichier de configuration de irssi, dans la section serveur on ajoute :

use_ssl = "yes";
ssl_verify = "yes";

soit par exemple pour le serveur freenode :

servers = (
  {
    address = "chat.freenode.net";
    chatnet = "freenode";
    port = "7000";
    term_type = "uth-8";
    use_ssl = "yes";
    ssl_verify = "yes";
    autoconnect = "yes";
  }
);

4) MCABBER

mcabber

mcabber est un client Jabber incluant les fonctionnalités suivantes : support de SSL, journalisation des discussions, complètement des commandes, déclenchement d'actions externes.

installation :
su -c "yum install mcabber"
configuration :

Vous pouvez lancer mcabber sans fichier de configuration, il faudra alors paramétrer les options manuellement. Pour créer un fichier de configuration rapidement, copiez et renommez le fichier exemple :

mkdir ~/.mcabber
chmod 0700 ~/.mcabber
cp /usr/share/doc/mcabber-0.10.1/mcabberrc.example ~/.mcabber/mcabberrc

Ensuite, éditez le fichier. Renseignez votre login et le serveur Jabber et ajouter l'option : set ssl_ignore_checks = 1

Exemple de fichier de conf :

set jid = foo@jabber.fr
set password = "foo"
set server = im.apinc.org
set ssl_ignore_checks = 1
set nickname = foobar
...

Il y a bien sur d'autre setting disponible comme les alias, mais pour cela je vous invite à aller sur le site de mcabber : wiki mcabber

utilisation :

La fenêtre mcabber est divisée en 4 zones. Le roster, alias buddylist (liste de contacts), se trouve à gauche, et la zone de discussion, ou chat buffer, à droite. La zone de commandes est au bas de la fenêtre, sous la zone d'informations. Deux barres d'état entourent la zone d'informations. La barre d'état inférieure est la "barre d'état principale" et reflète l'état général du logiciel (votre état, en somme). L'autre barre est la "barre d'état de la discusion" et affiche l'état du contact actuellement sélectionné.

Pour afficher l'historique des discussions, vous devrez rentrer en mode discussion (Chat Mode). Pour activer ce mode, appuyez sur la touche Entrée, pour en sortir appuyez sur la touche ESC. Envoyer un message permet aussi d'activer le mode discussion.

Utilisez les touches PageUp/PageDown pour vous déplacer dans le roster.

Je vous invite à lire le manuel ( en anglais ) pour prendre connaissance de toutes les fonctionnatlités : Manuel mcabber

Conclusion

Avec c'est 4 outils vous êtes près à pouvoir surffer, chatter, même quand votre interface graphique vous fait défaut, vous permettant ainsi de trouver une solution à votre problème ( en interrogeant par exemple la communauté Fedora sur irc ).

Cela peut aussi vous permettre de chatter surffer dans une connexion SSL sous putty...

Bref il est clair que ce ne sont pas des outils qu'on utilise tous les jours ( quoi que.....) mais les avoir présent sur son système et déjà paramétré pourra dans certain cas vous sauver la vie ( enfin celle de votre système)...

Je remercie Casper pour toutes les infos et aide sur la config et le partage et ses connaissances sur ces logiciels.

Lire la suite»

lundi 30 mai 2011

Vi mon ami pour la vie

Qui n'a pas touché une fois à VI n'a rien fait dans linux.

Mais bon ya tout de meme VIM qui est un peu plus convivial.

Dans ma configuration, il y a bien sur la gestion de la couleur, mais surtout une ligne me permettant de tout de suite savoir où je suis dans mon édition, et une configuration qui me permet quand je quitte un fichier et que je le ré-ouvre un peu plus tard que VIM le ré-ouvre exactement a la ligne ou j'étais.

voici a quoi ressemble mon VIM :

vi le .vimrc dans la suite.

if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"                                                                                                                                       
   set fileencodings=ucs-bom,utf-8,latin1
endif

set nocompatible        " Use Vim defaults (much better!)
set bs=indent,eol,start         " allow backspacing over everything in insert mode
"set ai                 " always set autoindenting on
"set backup             " keep a backup file
set viminfo='20,\"50    " read/write a .viminfo file, don't store more
                        " than 50 lines of registers
set history=50          " keep 50 lines of command line history
set ruler               " show the cursor position all the time

" Only do this part when compiled with support for autocommands
if has("autocmd")
  augroup fedora
  autocmd!
  " In text files, always limit the width of text to 78 characters
  " autocmd BufRead *.txt set tw=78
  " When editing a file, always jump to the last cursor position
  autocmd BufReadPost *
  \ if line("'\"") > 0 && line ("'\"") <= line("$") |
  \   exe "normal! g'\"" |
  \ endif
  " don't write swapfile on most commonly used directories for NFS mounts or USB sticks
  autocmd BufNewFile,BufReadPre /media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
  " start with spec file template
  autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec
  augroup END
endif

if has("cscope") && filereadable("/usr/bin/cscope")
   set csprg=/usr/bin/cscope
   set csto=0
   set cst
   set nocsverb
   " add any database in current directory
   if filereadable("cscope.out")
      cs add cscope.out
   " else add database pointed to by environment
   elseif $CSCOPE_DB != ""
      cs add $CSCOPE_DB
   endif
   set csverb
endif
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

filetype plugin on

if &term=="xterm"
     set t_Co=8
     set t_Sb=^[[4%dm
     set t_Sf=^[[3%dm
endif

" Don't wake up system with blinking cursor:
" http://www.linuxpowertop.org/known.php
let &guicursor = &guicursor . ",a:blinkon0"

" Ajout perso"
set cursorline
highlight CursorLine guibg=#001000
"reouverture a la meme position
if has("autocmd")
        filetype plugin indent on
        autocmd FileType text setlocal textwidth=78
autocmd BufReadPost *
        \ if line ("'\"") > 0 && line("'\"") <= line("$") |
        \ exe "normal g`\"" |
        \ endif
endif

Lire la suite»

Tuning Bash

Avoir un bash intéressant et jolie.

voila ce que ca donne :

bash

Il y a une detection de l'utilisateur et si l'utilisateur est ROOT le premier carré devient rouge, sinon il reste bleu.

De plus si une commande à générer un retour d'erreur le deuxième carré devient rouge.

La première ligne est aussi réserver a afficher le chemin du répertoire courant, ce qui est très utile quand on navigue profondément dans l’arborescence.

la configuration complète dans la suite.

* Configuration de bash :

Pour bien faire tout cela il faudra configuré les fichier ~/.bashrc de votre utilisateur et celui de root.
il suffit d'insérer ces quelques lignes :

 GRAY="\[\e[0;30m\]"
CYAN="\[\e[0;36m\]"
LIGHT_CYAN="\[\e[01;36m\]"
RED="\[\e[1;31m\]"

SQUARE='\342\226\210'

if [ "$UID" -eq "0" ]  # Si root 
then
    PS1="\n$RED$SQUARE $CYAN\u @ $LIGHT_CYAN\w\n\`if [ \$? = "0" ]; then echo '${LIGHT_CYAN}'; else echo '${RED}'; fi\`$SQUARE $CYAN\t $GRAY#\!$LIGHT_CYAN $ \[\033[0;39m\]"
else
    PS1="\n$LIGHT_CYAN$SQUARE $CYAN\u @ $LIGHT_CYAN\w\n\`if [ \$? = "0" ]; then echo '${LIGHT_CYAN}'; else echo '${RED}'; fi\`$SQUARE $CYAN\t $GRAY#\!$LIGHT_CYAN $ \[\033[0;39m\]"
fi 

Lire la suite»

Screen

Où comment gardez une session "ouverte" malgrès une coupure SSH.

L'un des grand intéret de screen est que c'est utilitaire permettant d'ouvrir plusieurs terminaux dans une même console, de passer de l'un à l'autre et de les récupérer plus tard. Ceci explique sa désignation de «multiplexeur de terminaux».

Le plus important étant le fichier de configuration :
Il sera à placer dans le home de l'utilisateur ~/.screenrc

startup_message off
deflogin on
vbell off
vbell_msg " !!! "
hardstatus off
hardstatus string "%h%? users: %u%?"
caption always "%{+u wk}%?%-w%?%{+b rk}/%n:%t\%{-b wk}%?%+w%?%{-u}%=%{+b wk}%H%{gk} %c %{yk}%d/%m/%Y%-0=%{wk}"
termcapinfo xterm ti@:te@

bindkey -k k8 prev
bindkey -k k9 next
  • Gérer des fenêtres de console

Un des autres intérêts de screen, c’est de pouvoir gérer plusieurs consoles. Dans l’idée des crtl + Fx sur son poste de travail.

Sur une même session, on peut donc faire plusieurs traitements en parallèle comme lancer une commander et visualiser l’aide associée.
ctrl a + c : créer une nouvelle fenêtre
ctrl a + k : pour fermer une fenêtre
ctrl a + " : pour lister les fenêtres

  • Se déplacer entre consoles

Une fois qu’on sait créer autant de consoles que voulues, il faut pouvoir passer de l’une à l’autre.

F8 : fenêtre précédente
F9 : fenêtre suivante

  • Se déplacer dans une console

Contrairement à un terminal normal, on ne peut se deplacer verticalement dans la console (scroller). Heureusement screen propose un raccourcis clavier pour se mettre en mode copie et ainsi parcourir la fenetre active.

ctrl a + echap : se mettre en mode copie echap : annuler le mode copie

  • Découper l’écran

Lorsqu’on veut voir à la fois un fichier de log et lancer la commande associée, il serait pratique de découper l’écran et voir les 2 consoles en meme temps.

ctrl a +S : découper l’écran (Attention S majuscule)
ctrl a + tab : pour se déplacer entre zone
ctrl a + X : pour fermer la zone active

  • Rendre la connexion à Screen automatique :

Il suffit d'ajouter ces trois ligne dans le fichier ~/.bachrc

# test la présence de screen et si il n'est pas présent lancement d'une session screen :
ps aux | grep SCREEN$ > /dev/null
if [[ $? = "0" ]]; then screen -r >/dev/null; else screen >/dev/null; fi


  • Source :

http://km.azerttyu.net/Screen-ssh-q...

http://en.gentoo-wiki.com/wiki/Scre...

http://fiat-tux.fr/fr/2010/06/scree...

Lire la suite»

Quelques liens utiles

Petite liste que je tenterais de mettre à jours des liens où je trouve mes infos :

* Linux :

http://www.planet-libre.org/
http://forums.fedora-fr.org/
http://doc.fedora-fr.org/wiki/
http://www.tux-planet.fr/

* Information informatique :

http://irp.nain-t.net/
http://www.bind9.net/manuals
http://www.frameip.com/

http://www.phoenixjp.net/news/fr/in...
http://www.korben.info/
http://www.monitoring-fr.org/

* Information diverses :

http://reflets.info/

Lire la suite»

- page 1 de 2