RSS
 

Posts Tagged ‘Linux’

Chrooter un utilisateur

15 juil

chroot est une commande permettant de lancer une commande en modifiant l'emplacement du répertoire racine. Ainsi, si l'on choisit comme répertoires racine /usr/local/jail, lorsque l'utilisateur tapera "cd /" il arrivera dans ce qui est pour lui la racine (la commande pwd lui retournera bien /), alors qu'en réalité il sera dans /usr/local/jail. Il ne pourra donc pas accéder à la vraie racine du serveur.

Objectif : permettre à un utilisateur d'accéder à un système Linux de manière étanche avec le reste du système tout en lui permettant d'accéder à certaines ressources ou services, comme par exemple la possibilité de se connecter en ssh et d'utiliser sftp.

En pratique, on obligera l'utilisateur à s'emprisonner lui-même dans un environnement "prison" que l'on aura préparé spécialement pour lui :)

Cette note sera découpée en deux grandes parties : la création de la prison et de son environnement, puis la création des utilisateurs de cette prison.

Logiciels utilisés : chroot, OpenSSH 4

Système d'exploitation : RedHat EL 5, Linux 2.6.x

Read the rest of this entry »

 
 

Générer un mot de passe aléatoire sous Linux

09 juil

Voici un enchainement de commandes simples qui permet de générer très facilement une chaîne de caractère aléatoire composée de lettres minuscules, majuscules et de chiffres, et qui peut donc être utilisée comme générateur de mot de passe :

$ tr -d -c "a-zA-Z0-9" < /dev/urandom | head -c 8

Petite explication de texte :

  • /dev/urandom : interface du générateur de nombres aléatoires du noyau
  • tr : commande utilisée pour supprimer tous les caractères (option -d) ne correspondant pas (option -c) à la chaîne de caractères qui suit. Ici, on garde les lettres minuscules (a-z), les lettres majuscules (A-Z) et les chiffres (0-9). D'autres caractères peuvent être ajoutés, par exemple "a-zA-Z0-9;,:?\!_-" pour compléxifier un peu plus le mot de passe.
  • head : commande qui permet de sélectionner les 8 premiers caractères (option -c 8)
 
No Comments

Posted in Divers

 

Bloquer une plage d’adresse IP avec iptables

09 juin

En observant les logs d'un service exposé sur Internet on se rends parfois compte que des requêtes "pourries" arrivent régulièrement d'adresses IP très ressemblantes.

Après un petit whois très intructif on peut obtenir la plage d'IP correspondante et ainsi la bloquer en amont du service, évitant de polluer les fichiers de logs et de faire travailler le serveur pour rien.

Le blocage d'une plage d'adresse IP se fait très facilement en utilisant iptables et le module iprange.

Par exemple, pour bloquer en entrée une plage d'adresse IP bien connue des serveurs smtp :

$ iptables -A INPUT -p tcp --dport 25 -m iprange --src-range 118.166.0.0-118.166.255.255 -j DROP

Options utilisées :

  • -A : pour ajouter une règle dans la châine (ici, pour les paquets en entrée donc INPUT)
  • -p : protocole
  • --dport : port de destination du paquet
  • -m : utilisation d'un module (ici, on utilise le module iprange)
  • --src-range : plage d'adresse IP source
  • -j : action à effectuer pour le paquet (ici, on ne le prends pas en compte)
 
No Comments

Posted in Linux

 

Installer un serveur Apache avec PHP sous Linux

14 mai

Apache est un serveur HTTP open source utilisé pour hébergé des pages web (html, php, etc.). Il est le serveur web le plus populaire depuis 1996 et plus de 50% des sites Internet du monde tournent avec Apache (barre des 100 000 000 de sites dépassée en 2009).

PHP est un langage de programmation largement utilisé dans le développement Web.

L'objectif de cette note est donc d'installer un serveur Apache ainsi que PHP pas à pas à partir des sources officielles, puis de configurer notre serveur Apache pour interpréter les pages PHP.

Logiciels utilisés : Apache 2.2.16 et PHP 5.3.3

Système d'exploitation : Debian  5.0, Linux 2.6.32

Mis à jour le 03/09/2010 : upgrade des versions Apache et PHP et améliorations diverses

Read the rest of this entry »

 
No Comments

Posted in Apache, PHP

 

Ajouter de la couleur à VIM

02 mai

Pour ajouter la coloration syntaxique à l'éditeur de texte VIM (Vi iMproved), c'est très simple, il suffit de taper cette commande dans vim :

:syntax on

Différents thèmes de couleurs sont disponibles par défaut, on peut les choisir en tapant colorscheme puis la touche TAB pour faire défiler les différents thèmes disponibles. Par exemple :

:colorscheme delek

D'autre thèmes sont disponibles sur le Net, il suffit de les télécharger et de les placer dans /usr/share/vim/vimcurrent/colors/.

Pour que la coloration syntaxique et le thème choisi soit permanent il suffit de rajouter ces mêmes commandes dans le fichier ~/.vimrc de l'utilisateur (le créer s'il n'existe pas) :

$ vim ~/.vimrc

:syntax on
:colorscheme delek

 
No Comments

Posted in Divers

 

Installer un serveur MySQL sur Linux

29 avr

MySQL est un SGBDR (Système de Gestion de Base de Données Relationnelles). Il est disponible en version open source (utilisée ici) et commerciale. Concurrent direct d'Oracle ou de Microsoft SQL Server, il est très utilisé pour des applications Web, notamment en association avec les serveurs Web Apache & Tomcat ainsi que les langages PHP & Java.

Objectif : installer un serveur MySQL pas à pas à partir des sources officielles.

Logiciel utilisé : MySQL 5.1.44

Système d'exploitation : Debian 5.0, Linux 2.6.32

Read the rest of this entry »

 
No Comments

Posted in MySQL

 

PHP, GD et JPEG …

07 mar

Voici une petite histoire qui peut arriver à n'importe qui (sisi !) : un jour, vous compilez PHP avec le support GD, sans autre option. Puis, plus tard, vous avez besoin du support JPEG pour GD. Vous retournez donc fièrement voir vos sources et recompilez joyeusement PHP avec GD et le support JPEG … et là : PAF ! Pas d'erreurs à la compilation, tout se passe bien, sauf que votre phpinfo() persiste à vous dire que, bah non, le support JPEG n'est pas activé !

Voici donc la marche à suivre pour que votre phpinfo() vous donne raison :

  • déjà, on installe le paquet libjpeg62-dev, indispensable pour la compilation de PHP :

$ apt-get install libjpeg62-dev

  • ensuite, on s'assure qu'il existe un fichier libjpeg.so quelque part et on note le nom de son répertoire (ici, /usr/lib) :

$ find / -name "libjpeg.so"
/usr/lib/libjpeg.so

  • s'il n'existe pas, il faut chercher un fichier libjpeg.so.62.0.0 puis créer un lien symbolique :

$ find / -name "libjpeg.so.62.0.0"
/usr/lib/libjpeg.so.62.0.0
$ ln -s /usr/lib/libjpeg.so.62.0.0 /usr/lib/libjpeg.so

  • puis; dans le répertoire des sources de PHP, on purge les compilations précédentes :

$ cd /usr/local/src/php-5.2.13
$ make clean

  • on peut maintenant recompiler avec les bonnes options, dont l'emplacement du fichier libjpeg.so :

$ ./configure <les options de compilation précédentes> --with-gd --with-jpeg-dir=/usr/lib
$ make
$ make install

  • et voilà ! Le support JPEG pour GD est maintenant activé et fonctionnel. Ce peut être vérifié en créant un fichier phpinfo.php avec ce contenu :

<?php
phpinfo();
?>

  • on s'aperçoit alors que, dans la section GD, apparait bien la ligne : JPG Support enabled
 
No Comments

Posted in PHP

 

Sauvegarde et restauration d’une base de données MySQL

07 mar

Sauvegarde (dump) de la base de données avec compression du fichier de sortie :

$ cd /usr/local/mysql/bin
$ mysqldump -u root -p --database <nom de la base> --add-drop-database | gzip -c9 > /tmp/dump_<nom de la base>.gz

Restauration de la base de données (sur la même machine, ou pas) :

$ cd /tmp
$ gzip -d dump_<nom de la base>.gz
$ cd /usr/local/mysql/bin
$ mysql -u root -p < dump_<nom de la base>

 
2 Comments

Posted in MySQL

 

Installer un serveur DNS BIND sous Linux

02 mar

BIND (Berkely Internet Name Domain) est un serveur DNS open source utilisé pour la résolution de noms Internet.

Objectif : installer un serveur BIND pas à pas à partir des sources officielles afin de s'en servir pour porter une zone Internet (serveur autoritaire) ou pour effectuer du cache DNS (serveur cache seulement).

Logiciel utilisé : BIND 9.6.1-P3

Système d'exploitation : Debian 5.0, Linux 2.6.32

Read the rest of this entry »

 
4 Comments

Posted in Bind

 

Passer en locale UTF-8 sous Debian

18 fév

Le but de cette note est de modifier le jeu de caractères par défaut sous Debian pour passer en UTF-8.

L'avantage de l'UTF-8 est qu'il permet la représentation d'un nombre beaucoup plus important de caractères : 90 000 aujourd'hui, contre 256 pour l'ISO-8859-1 (ou ISO-latin1) utilisé par défaut.

La manipulation pour changer le jeu de caractères par défaut est très simple et passe par la commande dpkg-reconfigure. Cette commande permet de reconfigurer un paquet après qu'il soit installé. Ici, nous allons reconfigurer le paquet locales :

~$dpkg-reconfigure locales

Dans la liste déroulante, vérifier que le jeu de caractères fr_FR.UTF-8 UTF-8 est coché :

[ ] fr_CA ISO-8859-1
[ ] fr_CA.UTF-8 UTF-8
[ ] fr_CH ISO-8859-1
[ ] fr_CH.UTF-8 UTF-8
[*] fr_FR ISO-8859-1
[*] fr_FR.UTF-8 UTF-8
[*] fr_FR.UTF-8@euro UTF-8
[*] fr_FR@euro ISO-8859-15
[ ] fr_LU ISO-8859-1
[ ] fr_LU.UTF-8 UTF-8
[ ] fr_LU@euro ISO-8859-15

Après avoir validé, on peut choisir le jeu de caractère par défaut. Sélectionner fr_FR.UTF-8 :

Aucun
fr_FR
fr_FR.UTF-8
fr_FR.UTF-8@euro
fr_FR@euro

Après validation, il faut se déconnecter et reconnecter. On peut alors vérifier le jeu de caractères par défaut qui est maintenant UTF-8 avec la commande locale :

~$locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

 
1 Comment

Posted in Divers