Mar 272013
 

Ce post  fait suite à mon tutoriel en deux parties concernant l’installation d’un serveur dédié complet en vue de l’utilisation d’ISPConfig 3 pour l’administration. Vous pouvez trouver les deux premières parties du tutoriels aux adresses suivantes:

Installation d’un serveur dédié sous Debian avec ISPConfig 3:
Partie 1
Partie 2

Installation d’ISPConfig 3:

Je pars donc du principe qu’à ce stade, vous disposez d’un serveur Debian avec toutes les dépendances nécessaires au bon fonctionnement d’ISPConfig 3. (Cf. ci-dessus)

Il ne reste donc plus qu’à lancer l’installation à proprement parler (puis nous configurerons Roundcube comme client webmail.)

Récupération de la dernière release d’ISPConfig 3

Dans le dossier de votre choix, (votre répertoire home ou autre) crée un dossier temporaire et récupérer la dernière version d’ISPConfig 3

Installation d’ISPConfig 3

Il ne reste plus qu’à lancer l’installation; une fois dans le dossier ispconfig3_install/install/ lancer le script d’installation:

Le script d’installation se déroule alors selon le schéma suivant: (En rouge les réponses que vous devrez personnaliser.)

root@server:/tmp/ispconfig3_install/install# php -q install.php

ISPConfig 3

>> Initial configuration

Operating System: Debian 6.0 (Squeeze/Sid) or compatible

Following will be a few questions for primary configuration so be careful.

Default values are in [brackets] and can be accepted with .

Tap in « quit » (without the quotes) to stop the installer.
Select language (en,de) [en]: <– ENTER

Installation mode (standard,expert) [standard]: <– ENTER

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [server1.example.com]: <– nomdeserver.votrenomdedomaine.com

MySQL server hostname [localhost]: <– ENTER

MySQL root username [root]: <– ENTER

MySQL root password []: <– votremotdepasserootSql

MySQL database to create [dbispconfig]: <– ENTER

MySQL charset [utf8]: <– ENTER

Generating a 2048 bit RSA private key

….+++

……………………….+++

writing new private key to ‘smtpd.key’

—–

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter ‘.’, the field will be left blank.

—–

Country Name (2 letter code) [AU]: <– fr

State or Province Name (full name) [Some-State]: <– département

Locality Name (eg, city) []: <– ville

Organization Name (eg, company) [Internet Widgits Pty Ltd]: <– nomdevotrecompagnie

Organizational Unit Name (eg, section) []: <– ENTER

Common Name (eg, YOUR name) []: <– votrenom

Email Address []: <– adressemail

Configuring Jailkit

Configuring Dovecot

Configuring Spamassassin

Configuring Amavisd

Configuring Getmail

Configuring Pureftpd

Configuring BIND

Configuring Apache

Configuring Vlogger

Configuring Apps vhost

Configuring Firewall

Installing ISPConfig

ISPConfig Port [8080]: <– portdAccesIspconfig

Configuring DBServer

Installing ISPConfig crontab

no crontab for root

no crontab for getmail

Restarting services …

Stopping MySQL database server: mysqld.

Starting MySQL database server: mysqld.

Checking for corrupt, not cleanly closed and upgrade needing tables..

Stopping Postfix Mail Transport Agent: postfix.

Starting Postfix Mail Transport Agent: postfix.

Stopping amavisd: amavisd-new.

Starting amavisd: amavisd-new.

Stopping ClamAV daemon: clamd.

Starting ClamAV daemon: clamd Bytecode: Security mode set to « TrustSigned ».

.

If you have trouble with authentication failures,

enable auth_debug setting. See http://wiki.dovecot.org/WhyDoesItNotWork

This message goes away after the first successful login.

Restarting IMAP/POP3 mail server: dovecot.

Restarting web server: apache2 … waiting ..

Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -Y 1 -8 UTF-8 -H -D -b -O clf:/var/log/pure-ftpd/transfer.log -E -u 1000 -A -B

Installation completed.

root@server:/tmp/ispconfig3_install/install#

 Le script d’installation configure automatiquement tous les services concernés. Il ne vous est donc normalement pas nécessaire de faire une configuration manuelle supplémentaire.

Premier accès à l’interface web ISPConfig 3

vous pouvez dès à présent accéder à l’interface web via l’adresse suivante: (les valeurs en bleu sont à reprendre selon votre configuration.)

http://nomdeserver.votrenomdedomaine.com:8080

Votre premier login s’effectue sous le nom d’utilisateur admin et mot de passe admin
Il est bien évidemment impératif de changer au moins le mot de passe pour des raisons évidentes de sécurité.

Vous disposez à présent d’une interface de configuration conviviale pour gérer la plupart des opérations courantes sur un serveur web. Un court article suivra concernant l’installation de roundcube via ISPConfig3 afin de disposez également du client webmail que nous avons omis jusqu’à présent. Je présenterais dans les posts suivants les différentes étapes de l’administration d’un serveur à l’aide d’ISPConfig 3.

Une fois de plus, n’hésitez pas à me faire part de vos commentaires.

Sources

Comme précisé dans le premier post sur l’installation d’ISPConfig, celui-ci est grandement tiré du tutoriel d’installation (en anglais) disponible sur le site de howtoforge:

http://www.howtoforge.com/perfect-server-debian-squeeze-with-bind-and-dovecot-ispconfig-3

N’hésitez donc pas à y faire un tour.

Vous trouverez également des informations sur le site d’ISPConfig:

http://www.ispconfig.org/

Mar 162013
 

Ce post fait suite à la première partie de l’installation complète d’un serveur web/mail/ftp/… disponible à l’adresse suivante: Installation Partie 1

A ce stade, vous devez donc disposer d’un serveur sous debian (squeeze) avec le network configuré et un accès ssh (local ou distant.) La première partie de l’installation permet d’effectuer les quelques vérifications fondamentales avant de commencer l’installation. (Entre autre la bonne configuration du réseau, nom de machine etc.)

Il est donc temps de passer à l’installation des différentes dépendances.

Installation de Postfix, Courier, Saslauthd, MySQL, rkhunter, binutils

Nous commençons par la mise en place du serveur mail, de MySQL ainsi que de différents outils nécessaires à la sécurité.

Vous aurez à répondre aux questions suivantes:

General type of mail configuration: <– Internet Site
System mail name: <– nomdeserveur.exemple.com
New password for the MySQL « root » user: <– votremdpsql
Repeat password for the MySQL « root » user: <– votremdpsql
Create directories for web-based administration? <– No
SSL certificate required <– Ok

N’oubliez pas de bien noter votre mot de passe MySQL. Il vous sera nécessaire par la suite.
Nous allons également modifier la configuration de MySQL pour que l’écoute se fasse sur toutes les interfaces du serveur (et non uniquement Localhost)

Commentez la ligne bind-address = 127.0.0.1
Votre fichier my.cnf doit ressembler à cela:

[…]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
[…]

On peut dès à présent vérifier le bon fonctionnement de MySQL:

Doit renvoyer:
root@server1:~# netstat -tap | grep mysql
tcp        0      0 *:mysql                 *:*                     LISTEN      10457/mysqld
root@server1:~#

Il est également nécessaire de recréer les certificats SSL pour courier. (Ceux-ci sont créés avec le hostname localhost. On souhaite les recréer pour intégrer le nom de notre serveur (nomdeserveur.exemple.com.)
On commence par supprimer les certificats présents:

On modifie ensuite les deux fichiers imapd.cnf et pop3d.cnf en remplacant le paramètre CN=localhost par CN=nomdeserver.exemple.com

[…]
CN=server1.example.com
[…]

[…]
CN=server1.example.com
[…]

Puis on recrée les certificats:

Il ne reste plus qu’à redémarrer le serveur courier:

Installation de Amavisd-new, SpamAssassin, And Clamav

Suit l’installation de l’antispam et antivirus, plus leur dépendances, que l’on lancera avec la commande suivante:

Nous pouvons stopper le processus spamassassin et le supprimer du script de démarrage automatique car ISPConfig a sa propre façon de le lancer via amavisd.

Sécuriser son serveur Debian, les règles de base

 Serveurs dédiés  Commentaires fermés sur Sécuriser son serveur Debian, les règles de base
Août 112012
 

Introduction

Dans l’administration d’un serveur, la sécurité doit être un point essentiel et ne doit en aucun cas être prise à la légère. Votre point d’accès central au serveur est (et restera) votre connexion ssh. Dans le cas d’une distribution linux ‘nue’ vous ne disposerez pas d’autre moyen d’accès à votre serveur lors de la première connexion. Enfin, même une fois complètement fonctionnel, vous serez toujours amenés à vous connecter en ssh à celui-ci. Il est donc important de sécuriser correctement cet accès et il peut également s’avérer pratique d’automatiser la connexion à partir d’une machine suffisamment sécurisée physiquement. Je m’attarderais dans ce post à la configuration de la connexion en ssh depuis Windows via Putty. Putty est un logiciel gratuit aux fonctionnalités multiples. Il permet notamment d’établir aisément des connexions de type telnet, ssh, rlogin/rsh et raw. Vous trouverez le logiciel en téléchargement sur le site de l’éditeur: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Premiers réflexes:

Lors de votre première connexion au serveur, il est important de prendre deux précautions.

  1. Penser à changer le mot de passe du root (qui vous a probablement été transmis en clair, par mail.
  2. Créer un nouvel utilisateur et lui donner les droits suffisants pour l’administration afin d’éviter de travailler en root sur le serveur.

Changer le mot de passe root.

Vous avez de cette façon créé un utilisateur héritant des droits des groupes root et admin. Vous pouvez alors vérifier la connexion avec le nouvel utilisateur (commande ‘su’) puis vous déconnecter de root. Il reste maintenant à sécuriser votre connexion ssh.

Utilisation de putty et connexion à l’aide de clés ssh:

Maintenant que les bases sont posées pour la sécurité de votre serveur, vous pouvez être tenté d’en automatiser la connexion à partir de votre poste de travail principal. Bien évidemment, je ne m’attarderais pas sur le fait qu’il convient, dès que l’on pense à ce genre de solution, de s’assurer de la sécurité du poste de travail en question. (D’autant plus si vous gérez plusieurs serveurs.) Toutefois, il est souvent plus simple de sécuriser une machine locale qu’un serveur distant. (Et si l’IP de votre serveur sera facilement accessible par n’importe qu’elle personne accédant à l’un de vos services, il lui sera bien plus difficile de trouver l’IP à partir de laquelle vous administrez le serveur, ce qui rend l’attaque en ligne plus délicate.)

  1. Génération de la clé SSH: Nous allons tout d’abord utiliser PuttyGen (disponible sur la page de téléchargement de putty) afin de générer la clé ssh. Pour la plupart des cas d’utilisation, les paramètres par défaut suffisent amplement. Ils génèrent une clé SSH-2 (Rsa) qui est la clé la plus sécurisé qu’il est en mesure de créer. La clé est cryptée sur 1024bits qui, à ce jour est considérée comme incassable dans des délais humainement raisonnables. (Il va de soit que la technologie évoluant, il sera toujours nécessaire d’augmenter la complexité de cryptage au fil des ans…) Appuyez sur « generate » et bouger votre souris à l’écran pour générer une clé totalement aléatoire. La clé s’affiche dans le premier cadre. Le champ « key comment » vous permet d’entrer une zone de texte pour identifier votre clé. Le champs « passphrase » vous permet de définir un mot de passe pour protéger l’utilisation de votre clé privée. Si vous n’entrez pas de mot de passe, l’utilisation de la clé ne sera pas restreinte. C’est à dire que n’importe quelle personne ayant accès à votre ordinateur ou ayant réussi à se procurer votre clé pourra l’utiliser pour se connecter librement à votre serveur. L’utilisation d’un mot de passe vous permet ainsi de sécuriser votre connexion mais il vous sera toujours demandé lors de la connexion au serveur. Il vous faut alors sauvegarder votre clé privé et votre clé publique (« save public key » et « save private key ») L’extension de la clé privé doit nécessairement être du type .ppk pour la clé publique, il est communément admis l’utilisation de l’extension .pub
  2. Vous pouvez maintenant configurer Putty afin d’utiliser automatiquement la clé ssh que vous venez de configurer. Après avoir configuré votre Host Name et le port pour votre connexion, qui dépend de la configuration de votre serveur ( je recommande d’utiliser un autre port que le port 22 pour des raisons de sécurité…) Dans la catégorie SSH c’est le menu Auth qui vous intéresse. Dans la zone Private key file for authentification saisissez l’emplacement de votre clé privé (extension .ppk si vous avez suivi les instructions ci-dessus.) Vous pouvez ensuite revenir au menu Session afin de sauvegarder la configuration.
  3. Connectez vous à l’aide de votre mot de passe sur votre serveur. Placez vous dans le répertoire home de l’utilisateur pour lequel vous souhaitez activer l’authentification par clé. Il vous suffit ensuite de créer le répertoire .ssh (s’il n’existe pas déjà) qui contiendra vos diverses clés ssh privées ou publique pour les diverses authentifications que vous mettrez en place. Il vous suffit ensuite de créer le fichier  authorized_keys et d’y coller le contenu de votre clé publique. (Si puttygen est toujours ouvert, vous pouvez copier le contenu de la clé, autrement, il vous suffit d’ouvrir votre clé .pub avec un éditeur de texte et d’en copier le contenu.) Enregistrer le fichier et déconnectez vous du serveur.

Vous pouvez alors tenter de vous reconnecter à votre serveur avec putty et la connexion configurée précédemment. Si vous aviez configuré un mot de passe pour votre clé, celui-ci vous sera demandé à chaque connexion (mais n’est plus transmis au serveur ce qui diminue le risque d’interception du mot de passe) si vous n’aviez configuré aucun mot de passe, vous vous connectez directement au serveur. Si la connexion échoue, votre serveur vous demandera votre mot de passe pour vous connecter manuellement. Vérifier alors la bonne mise en place des clés .ppk et .pub sur Putty et sur votre serveur.

Vous avez ainsi pu sécuriser et automatiser la connexion à votre serveur par ssh. Il existe bien évidemment d’autres méthodes pour disposer d’une connexion sure et ceci n’est pas La méthode fondamentale. Toutefois, elle permet déjà de sécuriser convenablement la connexion et éventuellement de l’automatiser afin d’éviter d’avoir à entrer un mot de passe à chaque connexion.