Ajouter une adresse IP sur une interface existante

On peut, à un moment ou un autre, avoir besoin d'utiliser une deuxième adresse IP, par exemple pour utiliser plusieurs certificats SSL.

Si on a plusieurs interfaces réseaux, ce n'est pas un problème : il suffit de déclarer la nouvelle adresse IP sur une autre interface. Mais que faire si l'on ne dispose que d'une interface ? C'est ici qu'entre en jeu la notion d'alias pour les interfaces.

Le but de cette note est donc d'ajouter une deuxième adresse IP à une interface existante, sur une distribution Linux Debian avec un noyau 2.6.34.

Pour cela, on va déclarer notre alias dans le fichier de configuration des interfaces :

$ vim /etc/network/interfaces

On y ajoute une nouvelle interface eth0:0 (premier alias de l'interface eth0). Si votre interface de base est eth1, le premier alias sera eth1:0. Si vous voulez ajouter un deuxième alias, il sera alors nommé eth1:1 par exemple.

auto eth0:0
iface eth0:0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        broadcast 192.168.0.255

On peut maintenant démarrer cette nouvelle interface :

$ ifup eth0:0

Et vérifier qu'elle est bien montée :

$ ifconfig
eth0:0    Link encap:Ethernet  HWaddr 45:5b:25:41:d9:12
          inet adr:192.168.0.10  Bcast:192.168.0.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interruption:23 Adresse de base:0x6000

Et voilà, c'est pas plus compliqué que ça 😀

Installer un serveur de mail sous Linux (1/3) : Postfix

L'objectif de cette note en trois parties (au départ c'était une, mais c'est devenu trop long ! 😉 ) est d'installer un serveur de mail simple nous permettant d'envoyer et recevoir des mails, mais aussi de les consulter via une interface Web.

Pour réaliser ces fonctions, le serveur de mail sera composé des éléments suivants qui composeront chacun une note :

  • un serveur SMTP pour le transport des mails : Postfix
  • un serveur POP3/IMAP pour la récupération et gestion des mails depuis un client : Dovecot
  • un Webmail pour la gestion de ses mails en ligne : l'application RoundCube

Les installations seront réalisées à partir des codes sources, et non des packages de distribution. Elles peuvent donc être appliquées sur n'importe quelle distribution.

Le but n'est pas ici de monter une usine à gaz. Il s'agit simplement de monter un serveur de mails fonctionnel.

Nous reviendrons dans d'autres notes sur des notions plus avancées telles que l'authentification, la prise en charge SSL ou la gestion du multi-domaines.

Logiciels utilisés : Postfix 2.7.2

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

Note : dans cette note sera donc traitée la partie 1 (Postfix).

Pour la partie 2 (Dovecot) : http://blog.moncoindunet.fr/linux/installer-un-serveur-de-mail-sous-linux-23-dovecot/

Continuer la lecture de « Installer un serveur de mail sous Linux (1/3) : Postfix »

Installer OpenSSL sous Linux

OpenSSL est une boite à outils open source qui implémente SSL/TLS ainsi qu'une bibliothèque de cryptographie.

L'objectif de cette note est d'installer OpenSSL sur un serveur Linux.

Logiciels utilisés : OpenSSL 1.0.0

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

Continuer la lecture de « Installer OpenSSL sous Linux »

Redimensionner un volume logique

L'objectif de cette note est de présenter le redimensionnement d'un volume logique créé grâce au LVM (Logical Volume Manager). Ces opérations ont été réaliasées sur une distribution RedHat avec un noyau Linux 2.6.

Le but n'est pas ici de présenter le LVM, simplement d'avoir une note synthétique sur le redimensionnement. D'autres notes suivront probablement, sur la création d'un volume logique par exemple.

1 – Description

Le redimensionnement (agrandir et réduire) d'un volume logique se fait grâce à la commande lvresize, qui accepte deux types d'unités :

  • les PE (Physical Extent) => option -l
  • les unités classique (Mio, Gio, Tio, etc.) => option -L

La commande lvresize permet en outre 3 types d'opérations sur un volume logique :

  • assigner une taille fixe
  • agrandir d'une certaine taille => option +
  • réduire d'une certaine taille => option -

Si l'on travaille avec les PE on peut également définir les tailles en pourcentage de la taille totale ou de l'espace libre.

2 – Déterminer l'espace du VG (Volume Group)

La première opération à réaliser lorsque l'on veut redimensionner un volume logique est de déterminer quelle est la taille restante sur le Volume Group (VG).

Pour cela, on utilise la commande vgdisplay, éventuellement suivie du nom du VG si on le connait :

$ vgdisplay
  --- Volume group ---
  VG Name               rootvg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  20
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                19
  Open LV               18
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               136.19 GB
  PE Size               32.00 MB
  Total PE              4358
  Alloc PE / Size       1543 / 48.22 GB
  Free  PE / Size       2815 / 87.97 GB
  VG UUID               xxxxxx

On peut notamment consulter l'espace utilisé (Alloc PE / Size) ainsi que l'espace restant (Free PE / Size). Ces deux informations sont indiquées en PE puis en taille classique.

3 – Redimensionner le volume logique

Une fois cette information en tête on peut redimensionner selon la méthode souhaitée.

Par exemple, pour spécifier au volume logique lv_toto situé sur le VG rootvg une taille de 6 Gio :

$ lvresize -L 6G /dev/rootvg/lv_toto

Pour l'agrandir de 100 PE :

$ lvresize -l +100 /dev/rootvg/lv_toto

Pour le réduire de 10% de sa propre taille :

$ lvresize -l -10%LV /dev/rootvg/lv_toto

A noter : attention avec la réduction de taille d'un volume logique, il y a risque de destruction du système de fichier situé dessus si la taille indiqué est inférieure à la taille du système de fichiers.

Et voilà, le volume logique est maintenant redimensionné. On peut consulter sa nouvelle taille grâce à la commande lvdisplay suivie du chemin du volume logique :

$ lvdisplay /dev/rootvg/lv_toto
  --- Logical volume ---
  LV Name                /dev/rootvg/lv_toto
  VG Name                rootvg
  LV UUID                xxxxx
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                6.00 GB
  Current LE             192
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

4 – Redimensionner le système de fichiers

Une fois que le volume logique est redimensionné, on peut vouloir redimensionner un système de fichiers contenu à l'intérieur.

Pour les systèmes de fichiers ext2 & ext3 il y a l'outil resize2fs qui permet de redimensionner. Sur un noyau Linux 2.6 un système de fichiers ext3 peut d'ailleurs être redimensionné à chaud 🙂

Par exemple, pour un système de fichiers ext3 que l'on veut mettre à 6 Gio sur le volume logique lv_toto situé dans le groupe de volume rootvg :

$ resize2fs /dev/rootvg/lv_toto 6G

On peut constater la nouvelle taille grâce à un simple df :

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/rootvg-lv_toto
                       6092936      7653   5771162   1% /toto

Et voilà pour cette petite note sur le redimensionnement d'un volume logique.

Modifier le hostname sous RedHat

Avec une distribution RedHat la modification du hostname de la machine se fait via une modification du fichier /etc/sysconfig/network :

$ vi /etc/sysconfig/network
HOSTNAME=monordinateur

La modification sera prise en compte au prochain démarrage de la machine.

Pour une prise en compte immédiate on utilise la commande hostname :

$ hostname monordinateur

On peut vérifier avec la commande hostname suivi d'aucun argument :

$ hostname
monordinateur

Pour la prise en compte dans l'invite de commande, il faut se déconnecter puis se reconnecter.

 

Créer un alias sous Linux

Créer un alias sous Linux est très utile pour redéfinir des commandes que l'on utilise souvent avec une option particulière, comme par exemple ls -l --color=auto pour afficher le format long et en couleur de la commande ls

La commande alias permet de créer par exemple une commande ll qui exécutera en fait ls -l --color=auto.

Pour cela, on utilise la commande alias de la manière suivante pour définir un nouvel alias :

$ alias ll='ls -l --color=auto'

On peut également utiliser alias sans argument pour afficher la liste des alias actuellement configurés :

$ alias
alias ll='ls -l --color=auto'

Par contre, l'alias ainsi créer n'est valable que pour le shell courant (et les processus fils).

Si l'on veut un alias permanent, il suffit de faire la déclaration dans le fichier .bashrc de l'utilisateur (si on est sous un shell Bash, sinon ça peut être .tcshrc par exemple) :

$ vi ~/.bashrc

Et on y insère par exemple cette ligne à la fin :

alias ll='ls -l --color=auto'

Ainsi, l'alias sera défini à chaque nouveau shell créé pour l'utilisateur.

On peut aussi recharger le shell courant pour prendre en compte le nouvel alias sans attendre la reconnexion :

$ . ~/.bashrc

Configurer Apache avec SSL

SSL (Secure Socket Layer) est un protocole permettant de sécuriser une communication entre deux points, typiquement un client et un serveur.

Il peut être couplé au protocole HTTP pour former le HTTP sécurisé (HTTPS) qui apporte à la communication entre le client et le serveur Web :

  • la confidentialité : les données sont cryptées et donc pas lisibles par un tiers
  • l'intégrité : vérification que les données n'ont pas été modifiées pendant le transport
  • l'authentification : vérification que le serveur (ou le client) est bien celui qu'il prétend être

Le but de cette note est donc de configurer un serveur Web Apache pour qu'il prenne en compte le SSL, permettant ainsi d'accéder à des sites Webs en HTTPS.

Continuer la lecture de « Configurer Apache avec SSL »

OpenSSL : créer un certificat auto-signé

OpenSSL est une boite à outils open source qui implémente SSL/TLS ainsi qu’une bibliothèque de cryptographie.

Il va nous permettre dans cet article de générer un certificat auto-signé. Ce type de certificat est très utile dans un cadre d’utilisation personnelle, par exemple pour implémenter les variantes sécurisées des protocoles tels que HTTP, IMAP ou SMTP qui deviendront alors HTTPs, IMAPs et SMTPs.

Article écrit avec OpenSSL en version 1.0.1e.

Article mis à jour le 12/10/2016

Continuer la lecture de « OpenSSL : créer un certificat auto-signé »

Chrooter un utilisateur

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

Continuer la lecture de « Chrooter un utilisateur »

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

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 complexifier un peu plus le mot de passe.
  • head : commande qui permet de sélectionner les 8 premiers caractères (option -c 8). A adapter selon la longueur du mot de passe souhaitée.