Installer et configurer vsFTPd

vsFTPd (pour Very Secure FTP Daemon) s'annonce lui-même comme étant "probablement le plus sur et le plus rapide des serveurs FTP pour systèmes Unix".

La configuration portera essentiellement sur deux usages :

  • utilisation du FTP avec du SSL
  • utilisation du FTP avec des utilisateurs virtuels qui peuvent uloader

L'environnement est un serveur Ubuntu en version 12.04 LTS muni d'un noyau Linux en version 3.2.13.

Continuer la lecture de « Installer et configurer vsFTPd »

Ubuntu Server : installer un serveur LAMP (Linux Apache MySQL PHP)

Un serveur LAMP est un serveur utilisant 4 composants particuliers, destiné dans la plupart des cas à la publication de sites Web :

  • Linux : le système d'exploitation
  • Apache : le serveur Web
  • MySQL : le serveur de base de données
  • PHP : le langage de script

Le but ici est d'installer ces différents composants à partir des paquetages de la distribution Ubuntu Server 13.10 qui utilise actuellement les versions suivantes des composants :

  • Linux v3.10.23
  • Apache v2.4.6
  • MySQL v5.5.37
  • PHP v5.5.3

L'installation de l'ensemble est aisé grâce aux paquetages fournis par la distribution Ubuntu Server, le tout étant de les installer dans le bon ordre 🙂

Les étapes seront les suivantes :

  1. Installer le serveur Apache
  2. Installer le module PHP pour Apache
  3. Installer le serveur MySQL
  4. Installer le module MySQL pour PHP

Article mis à jour pour Ubuntu Server 13.10

Continuer la lecture de « Ubuntu Server : installer un serveur LAMP (Linux Apache MySQL PHP) »

Installer un serveur de mail sous Linux (2/3) : Dovecot

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 : Dovecot 2.0.8

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

Note : dans cette note sera donc traitée la partie 2 (Dovecot).

Pour la partie 1 (Postfix) : http://blog.moncoindunet.fr/linux/installer-un-serveur-de-mail-sous-linux-13-postfix/

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

Installer un serveur MySQL 5.5 sous Linux

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 5.5 pas à pas à partir des sources officielles.

Logiciel utilisé : MySQL 5.5.8

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

Note : les méthodes d'installations ayant évolué à partir de MySQL 5.5, pour l'installation de MySQL 5.1 se référer plutôt à l'article suivant : http://blog.moncoindunet.fr/linux/mysql-linux/installer-un-serveur-mysql-sur-linux/

Continuer la lecture de « Installer un serveur MySQL 5.5 sous Linux »

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 »

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

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.

Bloquer une plage d’adresse IP avec iptables

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)