Problème d’installation de CentOS avec virtualbox
Article publié le 18 Mai 2013
J'ai pu constater une anomalie lors de l'installation de CentOS sur une machine virtuel via VirtualBox.
Pendant l'installation vous pourrez constater que le chargement de l'installation ce fige avec ce message:
NetLable : Initializing
NetLabel: domain hash size=128
NetLabel: protocols = UNLABELED CIPSOV4
NetLabel: unlabled traffic allowed by default
PCI-GART: No AMD northbridge found.
PCI: Ignore bogus resource 6[0:0] of 0000:00:02.0
NET: Registered protocol family2
Pour résoudre le problème et poursuivre sereinement votre installation CentOS il suffit de modifier un petit paramètre dans la configuration de votre machine Virtuel:
Allez dans les paramètre de configuration de votre machine puis cliquez sur "système" à gauche de la fenêtre puis sur l'onglet "Carte mère":
Il suffit de cocher "Activer les IO-APIC". (Si vous vous demandez ce que c'est cliquez ici ;-))
Ensuite démarrez votre VM et recommencez votre installation!
Enjoy 🙂
installation et configuration d’un mirroir/repository local Debian (ou dépot local) via apt-mirror
Article publié le 17 Mai 2013
Vous commencez à avoir une flopée de machine Debian dans votre entreprise?
Vous voulez que apt-get.... aille plus vite??
Il est temps pour vous de mettre en place un miroir Debian(ou dépot local) qui se synchronise directement avec les dépôts officiels!
Ayant déjà mis moi même cette solution en place je peux vous assurer que c'est absolument génial.
Ci-dessous un petit tuto qui vous expliquera la marche à suivre la plus simple:
Tous d'abord prévoyez un stockage assez conséquent ( 200 go pour être tranquille):
- Installez apt-mirror : apt-get install apt-mirror
- Ensuite je vous conseille d'organiser votre arborescence pour vous y retrouver plus facilement
* mkdir /<votre rep>/mirror/mirror
* mkdir /<votre rep>/mirror/skel
* mkdir /<votre rep>/mirror/var
- Par défaut le fichier de configuration se situe dans /etc/apt/mirror.list mais je vous conseil fortement de le placer ailleurs pour cela exécuter les commandes suivantes:
* cp /etc/apt/mirror.list /<votre rep>/mirror/<le nom que vous voulez> (on copie le fichier de configuration ailleurs)
* il faudra ensuite utilisez cette commande pour lancer la synchronisation mais je vous le rappellererai plus tard 🙂 : apt-mirror /<votre rep>/mirror/<le nom de votre fichier de conf>
- Ouvrez votre fichier de configuration. Vous devriez avoir quelque chose comme ceci:
############# config ##################
# set base_path /media/Backup/apt-mirror # # if you change the base path you must create the directories below with write privileges # set mirror_path $base_path/mirror set skel_path $base_path/skel set var_path $base_path/var set cleanscript $var_path/clean.sh ## set defaultarch xxxx (votre architecture i386/hppa/powerPC/ia64...) set defaultarch i386 set nthreads 2 set tilde 0 # ############# end config ############## deb http://archive.ubuntu.com/ubuntu/ hardy main restricted deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted deb http://archive.ubuntu.com/ubuntu/ hardy-security main restricted deb http://archive.ubuntu.com/ubuntu/ hardy universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-security universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse deb http://packages.medibuntu.org/ hardy free non-free deb-amd64 http://packages.medibuntu.org/ hardy free non-free deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy main restricted deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-security main restricted deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy universe multiverse deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-security universe multiverse deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
Décommettez toute les lignes commençant par "set".
Supprimez tous les liens (après le commentaire "end config") et ajoutez des dépôts plus "officiels" par exemple :
deb http://ftp.fr.debian.org/debian/ wheezy main
deb-src http://ftp.fr.debian.org/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
# wheezy-updates, previously known as ‘volatile’
deb http://ftp.fr.debian.org/debian/ wheezy-updates main
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main
Si vous êtes derrière un proxy vous devez configure le wgetrc:
- vi /etc/wgetrc
- Ajouter les lignes suivantes au fichier de configuration:
http_proxy = http://user:passwd@proxy:port use_proxy = on
Il ne vous reste plus qu'à lancer la synchronisation:
apt-mirror /<votre rep>/mirror/<le nom de votre fichier de conf>
Si tout ce passe bien la synchronisation commence, vous devriez avoir ceci qui apparaît :
Cela signifie que vous êtes entrain de synchroniser avec le dépôt officiel!
Maintenant il ne reste plus qu'à rendre votre miroir accessible pour cela nous allons installer un serveur apache:
- apt-get install apache2
- Créez le Virtualhost qui permettra à votre miroir d'être accessible pour cela éditez le fichier /etc/apache2/site-available/default et ajoutez après la balise </VirtualHost> les lignes suivantes:
Alias /debian /<chemin>/mirror
<Directory /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian/>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>
Alias / /<chemin>/mirror
<Directory /var/miroir/mirror/security.debian.org/>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>
Il ne reste plus qu'à redémarrer le service apache.
- /etc/init.d/apache2 restart
Voila votre dépôt est prêt!
Sachez que vous pouvez paramétrer une synchronisation pour plusieurs versions de la distribution de Debian, il suffit de rajouter les adresses des dépôts dans le fichier de configuration de apt-mirror :-)
Voila il ne reste plus qu'à entrer sur tout vos serveurs clients la nouvelle adresse de votre repository (dans le fichier /etc/apt/source.list)
deb http://@IP_de_votre_serveur/debian/ wheezy main
deb-src http://@IP_de_votre_serveur/debian/ wheezy main
deb http://@IP_de_votre_serveur/ squeeze/wheezy main
deb-src http://@IP_de_votre_serveur/ squeeze/wheezy main
- apt-get update
Ça y'est votre repository est fonctionnel!
PS:
N'oubliez pas de cronner (de préférence la nuit) la synchronisation pour garder votre repository à jour en utilisant la commande : apt-mirror /<votre rep>/mirror/<le nom de votre fichier de conf>
Liste des dépots (repositories) Debian
Mise à jour le 29 Novembre 2015
Si dessous la liste des dépots officiels de la distribution debian à mettre dans /etc/apt/source.list
Il est toujours préférable de mettre en place un dépot local dés que vous avez une dizaine de machine sous Debian.
Mon prochaine article sera justement un tuto sur ce sujet 🙂
En attendant:
Debian 8 Jessie:
deb http://ftp.fr.debian.org/debian/ jessie main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ jessie main non-free contrib
deb http://security.debian.org/ jessie/updates main non-free contrib
deb-src http://security.debian.org/ jessie/updates main non-free contrib
# jessie-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ jessie-updates main non-free contrib
deb-src http://ftp.fr.debian.org/debian/ jessie-updates main non-free contrib
deb http://www.deb-multimedia.org wheezy main non-free
# jessie-backports, previously on backports.debian.org
deb http://ftp.fr.debian.org/debian/ jessie-backports main
deb-src http://ftp.fr.debian.org/debian/ jessie-backports main
Debian 7 Wheezy :
deb http://ftp.fr.debian.org/debian/ wheezy main
deb-src http://ftp.fr.debian.org/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
# wheezy-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ wheezy-updates main
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main
Debian 6 Squeeze :
deb ftp://ftp.fr.debian.org/debian/ squeeze main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb ftp://ftp.fr.debian.org/debian/ squeeze-updates main contrib non-free
Debian 5 Lenny :
deb http://archive.debian.org/debian/ lenny main contrib non-free
deb http://archive.debian.org/debian-security/ lenny/updates main contrib non-free
pvresize : changer la taille d’une partition (LVM)
Article publié le 14 Mai 2013
Que faire lorsqu'il n'est plus possible d'étendre un VG (Volume group)? On vous répondra étendre le PV (Physical Volume).
Une demande de ce type m'est déjà tombé dessus et je dois vous avouer que je n'étais pas très serein...
Pour vous expliquer la demande était simple : Rajouter un disque sur un RAID d'une baie de stockage et faire reconnaitre à l'OS que le volume du PV a été modifié.
N'ayant jamais eu besoin d'effectuer cette manip auparavant je ne connaissais pas trop la procédure pour effectuer cette tâche sans tout casser...
En écumant les forums je suis tombé sur des tuto plus ou moins farfelue et c'est pourquoi ce petit article va vous expliquer la marche à suivre la plus simple qui soit!
Admettons que vous ayez une baie de stockage avec vos serveurs reliés dessus en ISCSI avec un multipath et que vous venez juste d'augmenter la capacité de votre volume RAID :
- iscsiadm -m node --rescan (Pour que votre os "ait conscience" du changement)
- /etc/init.d/multipathd reload (uniquement si vous avec un multipath de configuré)
- pvresize /dev/mapper/<votre volume>
Et voila! En faisant un pvdisplay vous pourrez vous voir que la taille de votre PV a augmenté!
Il ne reste plus qu'à resizer vos VG et LV à votre convenance 🙂
Monitorer les entrées sorties avec iotop
Article publié le 14 Mai 2013
Souvent, très souvent dans la vie d'un admin, on est confronté à un problème récurrent: "Problème d'IO".
Un utilisateur vient vous voir et vous déclare fièrement "je pense que c'est un problème d'IO". Après avoir checké votre Baie et vous êtes assuré que vos disques sont en bonnes santés il ne vous reste plus qu'à faire un petit diagnostic sur l'OS.
Et la j'ai quelque chose pour vous!! 🙂
Récemment un collègue (que je remercie) m'a fait découvrir par hasard un outil que je ne connaissais pas du tout IOTOP.
Ce petit outil vous offre un monitoring des IO de votre machine. L'interface similaire à TOP est très claire!
Iotop est dispo dans les dépots de Debian et RED-HAT.
Sinon ce lien vous redirige vers le site de son créateur 🙂
Capture d'écran de l'interface IOTOP:
Récupérer un mot de passe root sous linux
Article publié le 15 Mai 2013
Qui peut se vanter de n'avoir jamais oublié un mot de passe root????
Si cela vous arrive pas de panique une petite manip très simple permet de réinitialiser un mot de passe root sous Linux.
Pour cela il faut que vous ayez un accés physique à la machine.
- Rebooter votre machine jusqu'à ce que l'écran du GRUB apparait
- Selectionnez la deuxième ligne du grub (mode de dépannage) puis appuyer sur "e"
- Vous devez alors être connecté en root;
- Remontez la partition en écriture avec la commande suivante : mount -o remount,rw /
- Tapez la commande passwd pour changer le mot de passe root.
Enjoy 🙂
Problème installation additions invités VirtualBox sur Debian
Article publié le 17 Mai 2013
Lors de l'installation de ma nouvelle Debian un problème m'est tombé dessus lors de l'installation des Addition Invités. En écumant les forums je me suis aperçus que beaucoup ont eu le même problème mais sans solution.
Lors du démarrage du Virtualbox-guest-utils le message suivant est apparu:
#Error: VbglR3Init failed with rc=VERR_FILE_NOT_FOUND.
Hi caramba!!
Ce problème est la conséquence de deux petits oublies!
- Lors de la compilation des librairies manquante ont fait foirés l'install ( Merci au script d'install de ne pas l'avoir signalé..)
Résolution : apt-get install build-essential ( ce package vous installera tout les outils nécessaire pour une compilation réussie ;))
- Oublie d'installer les linux-headers (entête Kernel)... Cela m'arrive malheuresement à chaque fois ...
Résolution : apt-get install linux-headers * ( on shoppe pour toutes les versions du noyau !!!)
Une fois les prérequis installés il ne vous reste plus qu'à réinstaller les additions invités (sans oublier de redémarrer votre machine).
Bonding : Agrégation de plusieurs Interfaces réseaux
options bond0 mode=1 miimon=100 max_bonds=4
iface bond0 inet static
pre-up modprobe bond0
address x.x.x.x.
netmask x.x.x.x
gateway x.x.x.x.
up ifenslave bond0 eth0 eth4
up ethtool -s eth0 autoneg on
up ethtool -s eth4 autoneg on
down ifenslave -d bond0 eth0 eth4
Tutoriel Installation et configuration Red Hat Enterprise Virtualization (RHEV)
1 Présentation de la solution RED HAT Entreprise Virtualization
RHEV offre une solution complète de gestion de la virtualisation de serveurs. Red Hat Enterprise Virtualization a été conçu à partir de la plate-forme Red Hat Enterprise Linux, dont il étend les fonctionnalités, pour faire tomber les barrières élevées face à l'omniprésence de la virtualisation au sein des centres de données. Red Hat Enterprise Linux a su gagner la confiance de milliers d'entreprises et est installé sur des millions de systèmes dans le cadre de charges de travail stratégique.
Installation de la console de management RHEVM
Avant de procéder à l’installation de la console management sur le serveur, il faut vérifier que les prérequis suivant soit bien respecté :
- Le système d’exploitation : Windows Serveur 2003 R2 ou Windows Serveur 2008 (recommandé)
- Le service IIS doit être installé
- Si vous êtes sous Windows Serveur 2003 vous devez installer Powershell 2.0 disponible sur Windows Update ou sur le site de Microsoft.
- Microsoft Frameworks 3.5.1
Une fois le fichier d’installation lancer cliquez sur suivant et accepté les conditions d’utilisation.
Arrivé à l’écran ci-dessus vérifiez que toutes les cases sont cochées et cliquez sur Next.
Cocher « install a SQL Server 2005 Express Locally » et cliquez sur next.
Vérifier le répertoire d’installation et cliquez sur next.
Décocher la case force SSL et cliquez sur next
Renseignez les informations demandées
Cliquez sur next
Port Number: 25285
Cliquez sur next
Cliquez sur ignore, l’installation du Manager commence.
Administration de RHEVM
Cette partie montre la marche à suivre afin se connecter à la console de management de RHEVm
Ouvrez votre navigateur est entrez dans la barre d’adresse :
http://[adresse ip ou nom]/RHEVmanager
Si ce n’est pas le cas installez le certificat en cliquant sur le lien correspondant.
L’écran ci-dessus correspond à l’interface d’authentification de RHEVm.
1 Installation d’un hyperviseur RHEV.
Bootez sur l’ISO de l'hyperviseur. Après le chargement l’interface suivante doit apparaitre :
Appuyer sur 1 et entrée.
Selectionnez « configure » grave à la touche 1 puis valider avec entrée
Selectionnez le disque ou l’hyperviseur sera installer et validez.
Une fois la tâche terminée validez la en selectionnant la 3ème entrée (commit configuration).
Une fois le formattage terminer l’assistant vous réaffichera le menu principal.
Appuyez sur 2 (configure authentification)
Selectionnez la 1er entré et entrez le mot de passe root de l’hyperviseur.
Faites la même chose pour la 2ème entrée.
Une fois configurer selectionnez la 3ème entrée pour revenir au menu principal.
Configurer le hostname en appuyant sur 3 puis entrée.
Quand l’interface vous le demandera tapez le nom complet de l’hyperviseur
Une fois le hostname configuré tapez 4 pour configurer le réseau.
Selectionnez l’interface réseau configuré (généralement ETH0)
Tapez n puis entrer
Tapez n puis entrer.
Tapez S puis entrer
Configurer la configuration IP de l’hyperviseur en suivant les instructions à l’écran.
Configurer ensuite votre serveur DNS de la même façon en selectionnant DNS sur le menu principal de la configuration réseau de votre hyperviseur.
Faites de même pour le serveur NTP.
Selectionnez Save And Return To Menu pour revenir au menu principal.
Enregistrez ensuite votre machine au RHN en tapant 5.
Selectionnez 1) Register to public RHn
Procédez à l'enregistrement avec votre compte Red Hat
Une fois l'enregistrement RHN terminé appuyez sur 6 (Configure the host for red hat entreprise).
Tapez [ip de votre serveur RHEVm]:80
Puis appuyer sur entrer
Si la communication s’établit correctement entre les 2 machines l’hyperviseur doit renvoyer le message suivant :
"The RHEV Manager's address is set"
"The RHEV Manager's port is set."
Tapez [ip de votre serveur RHEVm]:25285
Puis appuyer sur entrer.
Une fois la configuration effectuée vous serez de nouveau au menu principal.
Selectionnez 8 (install locally and reboot).
Une fois l’installation effectuée retournons sur notre console de management.
Si la configuration a bien été effectuée, un nouvel HOST doit être en attente dans votre interface RHEVM.
Pour l’activer, faites un clique droit dessus et cliquez sur approve. Le Host va être rajouté au cluster.
Si aucun host est en attente, allez sur l’hyperviseur concerné et redémarré le service vdsm-reg grâce à la commande service vdsm-reg restart.
2 Configuration du Cluster
Configuration de l’espace de stockage
Une fois vos hyperviseurs ajoutés dans votre cluster, il faut créer un DATASTORE pour hébergé vos VMs.
RHEV est capable de gérer le MULTIPATHING en fibre channel.
Pour cela allez dans l’onglet storage puis cliquez sur le bouton new domain :
Domain Function : DATA
Storage type : FCP
La liste des VMFS va apparaitre. (N’oubliez pas de faire la procédure de création et de présentation de VMFS sur l’interface de la baie). Cochez le VMFS converné et cliquez sur le bouton ADD.
Retournez ensuite sur l’onglet DATASTORE et selectionnez sur en bas l’onglet STORAGE puis cliquez sur le bouton attach storage.
Selectionnez ensuite le VMFS que vous venez de paramétrer précedemment.
Cette procédure permet d’affecter à un DataCenter un esspace de stockage.
Renouveler la procédure en créant un espace de stockage avec les paramètres suivants :
- Domain function : ISO
- Storage Type : NFS
et rattachez le à votre Data Center. Cette espace de stockage permettra de stocker les ISO et les templates.
L’inconvénient est que le protocole de stockage doit etre absolument du NFS.
6 Gestion des ISOs
Comme nous l’avons vu ci-dessus la bibliothèque des ISOs doit posséder son propre DATASTORE dédié utilisant uniquement le protocole NFS.
Pour uploader les ISOs de façons sécurisé, REDHAT fournit un outil installé avec le Manager nommé ISO UPLOADER
ISO UPLOADER detecte automatiquement votre DATACENTER est se paramètre de manière autonome pour être connecter avec votre Serveur NFS.
Pour ajouter une image ISO, cliquez sur ADD et selectionnez les images ISO que vous voulez UPLOADER. Une fois votre liste complété, cliquez sur UPLOAD. ISO UPLOADER se chargera d’incorpérer les ISOs directement dans votre bibliothèque. Nous verrons ci-dessous comment l’exploiter.
En ligne de commande vous pouvez également uploader une ISO:
7 Gestion des VMs
La gestion des machines virtuelles est indentique par rapport aux autres produits de virtualisations.
Créer une nouvelle VM :
Cliquez sur l’onglet Virtual Machines puis sur New Server :
Vous pouvez ici paramétrer ici la configuration « matériel » de votre VM.
Dans cette section, vous pouvez paramétrer le système de haute disponibilté en cochant « highly Available »
Les choix « low », « Medium », « High » permet de définir
Dans cette section, vous pourez paramétrer le boot séquence et affecter à votre VM une ISO que vous aurez eventuellement uploadé grâce à l’outil ISO UPLOADER.
Une fois cette tâche effectuée, cliquez sur OK.
Une fois la tâche de création de la vm terminé, il faudra lui créer un disque et une interface réseau virtuel. Pour cela cliquez sur votre VM fraichement créée et cliquez sur « guide me ».
Cliquez ensuite sur « configure Network Interfaces ». Une fois les paramètres renseignées comme ci-dessous cliquez sur OK.
Cliquez sur Configure Virtual Disks
Paramétrer les paramètres ci-dessous soigneusement.
Size : Définit la taille du disque
Disk type : définit si le disque hébergera un système ou de la DATA (très important pour les performances à venir)
Interface : interface virtuel qui gère les I/O des disques
Format : Pre allocated : taille de disque figé
Thin provisionning : taille de disque variable.
Une fois le disque paramétré, cliquez sur OK pour valider.
Pour ouvrir une console sur la VM cliquez sur l’icône suivant :
Pour susprendre une vm Pour arréter à chaud une VM
Migration d’une nouvelle VM :
La migration d’une machine (équivalent Vmotion) permet de transférer d’un hyperviseur à l’autre (sans interruption de service) une VM. Pou cela cliquez droit sur la VM concerné puis sur « migrate » :
Si « select Host Automatically » est cochez, RHEVm se chargera de migrer la VM vers l’hyperviseur le plus disponible (très pratique pour les grosses architectures), vous pouvez sinon selectionnez manuellement l’hyperviseur cible en cochant « Select Destination host ».
Créer un Template:
Pour créer un template la VM doit être arréter
Cliqez droit sur la VM puis « make a template ».
Une fenètre apparait ou vous devrez renseigner le nom du template et sa description.
Valider en cliquant sur OK
Logguer toutes les commandes exécutées dans une base Mysql
Article publié le 12 Mai 2013
Une problématique qui se pose souvent, lorsqu'un serveur Linux tombe (souvent à cause d'un humain) comment savoir les dernières commandes qui ont été tapées et surtout par qui??
Si vous mettez ça en place dans votre entreprise on risque de vous prendre pour Big Brother mais en même temps je pense que ce petit système peu vous épargner bien des ennuis.
La procédure ci dessous ne fonctionne que sur la distribution Debian et sur les versions antérieur à Red HAT 5.3. Les versions supérieurs à RED HAT 5.3 pose problème lorsque vos partitions sont en LVM, je n'ai jamais pu trouver une solution à ce problème, si l'un de vous trouve je suis preneur :). Je vous suggère de déployer cette solution d'abord sur un serveur de test avant la mise en prod. Merci à la personne qui à conçu cette solution!
1) Création du serveur Bashlog
Installons une petite base de donnée MySQL:
#apt-get install mysql-server-5.0
Ensuite connectez vous à votre base:
#mysql -u root -p <votre mot de passe> -h <votre serveur>
On crée la database:
#create database shell_bash;
#use shell_bash
On crée les tables:
CREATE TABLE `logs`
(`rowid` mediumint(8) NOT NULL auto_increment,
`host` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`user` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`as_user` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`ip` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`ut_line` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL default '',
`command` text character set utf8 collate utf8_unicode_ci NOT NULL,
`ts` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`rowid`))
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Voila votre serveur bashlog est prêt, rien ne vous empêche de vous coder une petite interface en PHP afin que cela soit plus sexy.
Nous allons maintenant passer à la partie cliente.
2) Client
Nous allons recompiler le bash avec des librairies mysql pour que celui ci soit en mesure de se connecter une base MySQL. La compilation fonctionne jusqu'à la version 4.2 (c'est à dire la dernière version du bash à l'époque de l'écriture de ce tuto).
Tous d'abord télécharger ce fichier zip comportant 2 patchs qui seront appliqués sur votre bash et une librairie mysql à insérer dans le répertoire /usr/lib:
Installez ensuite les outils de compilations et un package de librairie mysql:
apt-get install libmysqlclient-dev autoconf patch make
Maintenant on compile!
wget http://ftp.gnu.org/gnu/bash/bash-3.1.tar.gz
patch -p0 < bash-paranoia.patch (fichier présent dans l'archive zip joint à cette article)
patch -p1 < bash-mysql.patch (fichier présent dans l'archive zip joint à cette article)
autoconf
./configure --enable-paranoia --prefix=/usr
make
Voila vous avez votre bash recompilez pret à envoyer toutes les commandes qui seront tapées sur une base MySQL!!
N'oubliez pas de créer un fichier de configuration ou vous aller rentrer les paramètres de connexions à la Base de donnée!
#touch /etc/bash.conf
Ensuite insérez les lignes suivantes:
SERVER=<votre serveur de base de donnée>
USER=shell_bash
PASS=<le mot de passe du user>
DB=shell_bash
Enfin il ne reste plus qu'à écraser l'ancien bash par votre bash modifié! (sans oubliez de faire un petit backup)
# cp /bin/bash /bin/bash.old
#cp /<votre repertoire de compilation>/bash /bin/bash
Ensuite déloguer vous et reloguez vous.
Enjoy!
Création utilisateur restreint
Article publié le 12 Mai 2013
Lors d'une de mes missions on m'a demandé de créer un compte invité spécial avec la possibilité de lui autorisé ou non l'utilisation de tel ou tel commande. C'est une problématique qui se pose souvent en entreprise. Comment donner accès à un utilisateur sans que celui ci le pourrisse avec des commandes grep ou autre qui peuvent consommer toute la mémoire???
Le script ci dessous répond à cette problématique:
v
# Ce script permet de restreindre les commandes sur le compte invite
#il est valide uniquement pour les distributions DEBIAN 4, DEBIAN 5 et DEBIAN 6 et REDHAT 5
#Ce script doit être executer depuis le répertoire /etc
cd /etc
##########################RECHERCHE DU COMPTE INVITE#######################
grep 'invite' passwd
retval=$?
if [ "$retval" -ne 0 ]; then
useradd -m -d /home/invite invite
echo "invite:invite" | chpasswdfi
#############################################################################if [ -f "issue" ]; then###############################PARTIE DEBIAN 5 et 6################################version=$(cat issue)
then
cp /bin/bash /bin/guestbash
usermod -s /bin/guestbash invite
groupmod -g 9999 invite;usermod -u 9999 -g 9999 invite
usermod -G invite -a invitecd /home/invite
echo "export PATH=/usr/local/guestbash" >> .profile
mkdir /usr/local/guestbash
chown -R root:root /home/invite && chmod 511 /home/invite
chmod 444 /home/invite/.profile
cd /usr/local/guestbash
chown invite /home/invite###########################Lien Symbolique Commande autorise#####################
ln -s /usr/bin/alias alias
ln -s /usr/bin/basename basename
ln -s /bin/cat cat
ln -s /usr/bin/clear clear
ln -s /usr/bin/diff diff
ln -s /usr/bin/env env
ln -s /bin/echo echo
ln -s /usr/bin/head head
ln -s /usr/bin/host host
ln -s /bin/less less
ln -s /bin/ls ls
ln -s /usr/bin/man man
ln -s /bin/more more
ln -s /bin/nano nano
ln -s /bin/netstat netstat
ln -s /usr/bin/nslookup nslookup
ln -s /bin/ping ping
ln -s /bin/pwd pwd
ln -s /bin/sed sed
ln -s /usr/bin/size size
ln -s /usr/bin/tail tail
ln -s /usr/bin/telnet telnet
ln -s /usr/bin/top top
ln -s /usr/bin/traceroute traceroute
ln -s /usr/bin/vi vi
ln -s /usr/bin/tty tty
ln -s /usr/bin/vim vim
ln -s /usr/bin/whoam whoami
#################################################################################
echo "La procedure DEBIAN 5 / DEBIAN 6 Terminée"
fi#############################FIN PARTIE DEBIAN 5 et 6#############################################################PARTIE DEBIAN 4 OU RED HAT######################################if [ "$version" = "Debian GNU/Linux 4.0 \n \l" ] || [ -f "redhat-release" ];
thencp /bin/bash /bin/guestbash
usermod -s /bin/guestbash invite
groupmod -g 9999 invite;usermod -u 9999 -g 9999 invite
usermod -G invite -a invite
echo "invite:invite" | chpasswdcd /home/invite
echo "export PATH=/usr/local/guestbash" >> .bash_profile
mkdir /usr/local/guestbash
chown -R root:root /home/invite && chmod 511 /home/invite
chmod 444 /home/invite/.bash_profile
cd /usr/local/guestbash
chown invite /home/invite
ln -s /usr/bin/basename basename;
ln -s /bin/cat cat
ln -s /usr/bin/clear clear
ln -s /bin/date date
ln -s /usr/bin/diff diff
ln -s /usr/bin/env env
ln -s /bin/echo echo
ln -s /usr/bin/head head
ln -s /usr/bin/host host
ln -s /bin/ls ls
ln -s /bin/less less
ln -s /usr/bin/man man
ln -s /bin/more more
ln -s /bin/nano nano
ln -s /bin/netstat netstat
ln -s /usr/bin/nslookup nslookup
ln -s /bin/ping ping
ln -s /bin/pwd pwd
ln -s /bin/sed sed
ln -s /usr/bin/size size
ln -s /usr/bin/tail tail
ln -s /usr/bin/telnet telnet
ln -s /usr/bin/top top
ln -s /usr/bin/traceroute traceroute
ln -s /usr/bin/vi vi
ln -s /usr/bin/tty tty
ln -s /usr/bin/vim vim
ln -s /usr/bin/whoam whoami
#################################################################################echo "La procedure REDHAT / DEBIAN 4 Terminée"
echo "Enjoy ;-)"#############################FIN PARTI DEBIAN 4 et RED HAT 5 ######################################################################################################################
elseecho "BYE :-)"
fi
##############################FIN DU SCRIPT##########################################
fi
Script de vérification de connectivité
declare -a HOSTS=(
"<Nom Host>"
)CONF_HOSTS="OK"
for HOST in ${HOSTS[*]};
do
#Test de connectivité ssh :
#echo "ssh root@"$HOST"..."
ssh root@"$HOST" "ls /" 1>/dev/null 2>&1 || { echo "(EE) Impossible de se connecter à \""$HOSTS"\"" && CONF_HOSTS="KO"; }
T=0
for ALL_HOSTS in ${HOSTS[*]};do
if [ "$HOST" = "$ALL_HOSTS" ];then T=$(($T+1));fi
done
if [ $T -gt 1 ];then
echo "(EE) La machine \""$HOSTS"\" est mentionnée $T fois dans la variable \"HOSTS\"."
CONF_HOSTS="KO"
fiif [ "$CONF_HOSTS" != "OK" ];then echo "(EE) Abandon." && exit 1;fi
Journal d’un admin Linux
Bienvenue cher visiteur.
Que vous soyez geek occasionnel ou ingénieur système ce blog pourra peut être vous aider.
Je recense ici toutes les actualités, infos ou astuces sur le monde du libre et notamment Linux.
J'espère que vous trouverez mes articles de qualités aussi bien pour les admins amateurs à experts 🙂
Etant ingénieur système Linux je suis souvent confronté à des problématiques et, ayant l'esprit open source je publie ici même mes solutions car je pense que la connaissance est la seul chose qui augmente quand on la partage 🙂
Si vous même avez envie d'adhérer à ce blog n'hésitez pas me contacter, une paire de bras est toujours la bienvenue.