GNU/Linux >> Tutoriels Linux >  >> Panels >> Panels

Le serveur parfait - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]

Le serveur parfait - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2]

Ce tutoriel montre comment configurer un serveur Ubuntu Natty Narwhal (Ubuntu 11.04) qui offre tous les services nécessaires aux FAI et aux hébergeurs :serveur Web Apache (compatible SSL), serveur de messagerie Postfix avec SMTP-AUTH et TLS, serveur DNS BIND, Proftpd Serveur FTP, serveur MySQL, Courier POP3/IMAP, quota, pare-feu, etc. En fin de compte, vous devriez avoir un système qui fonctionne de manière fiable, et si vous le souhaitez, vous pouvez installer le panneau de contrôle d'hébergement Web gratuit ISPConfig 2 (c'est-à-dire que ISPConfig s'exécute dessus prêt à l'emploi).

J'utiliserai le logiciel suivant :

  • Serveur Web :Apache 2.2.17 avec PHP 5.3.5, Python, Ruby et WebDAV
  • Serveur de base de données :MySQL 5.1.54
  • Serveur de messagerie :Postfix
  • Serveur DNS :BIND9
  • Serveur FTP :proftpd
  • POP3/IMAP :Je vais utiliser le format Maildir et donc installer Courier-POP3/Courier-IMAP.
  • Webalizer pour les statistiques de sites Web

Veuillez noter que cette configuration ne fonctionne pas pour ISPConfig 3 ! Il n'est valable que pour ISPConfig 2 !

Je veux d'abord dire que ce n'est pas la seule façon de mettre en place un tel système. Il existe de nombreuses façons d'atteindre cet objectif, mais c'est la voie que je prends. Je n'émets aucune garantie que cela fonctionnera pour vous !

1 Exigences

Pour installer un tel système, vous aurez besoin des éléments suivants :

  • le CD du serveur Ubuntu 11.04, disponible ici :http://releases.ubuntu.com/releases/11.04/ubuntu-11.04-server-i386.iso (i386) ou http://releases.ubuntu.com/releases /11.04/ubuntu-11.04-server-amd64.iso (x86_64)
  • une connexion Internet rapide.

2 Remarque préliminaire

Dans ce tutoriel, j'utilise le nom d'hôte server1.example.com avec l'adresse IP 192.168.0.100 et la passerelle 192.168.0.1. Ces paramètres peuvent différer pour vous, vous devez donc les remplacer le cas échéant.

3 Le système de base

Insérez votre CD d'installation Ubuntu dans votre système et démarrez à partir de celui-ci. Sélectionnez votre langue :

Sélectionnez ensuite Installer le serveur Ubuntu :

Choisissez à nouveau votre langue (?) :

Sélectionnez ensuite votre emplacement :

Si vous avez sélectionné une combinaison inhabituelle de langue et de lieu (comme l'anglais comme langue et l'Allemagne comme lieu, comme dans mon cas), le programme d'installation peut vous dire qu'il n'y a pas de paramètres régionaux définis pour cette combinaison ; dans ce cas, vous devez sélectionner les paramètres régionaux manuellement. Je sélectionne en_US.UTF-8 ici :

Choisissez une disposition de clavier (il vous sera demandé d'appuyer sur quelques touches et l'installateur essaiera de détecter votre disposition de clavier en fonction des touches sur lesquelles vous avez appuyé) :

Le programme d'installation vérifie le CD d'installation, votre matériel et configure le réseau avec DHCP s'il y a un serveur DHCP dans le réseau :

Le serveur parfait - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] - Page 2

4 Obtenir les privilèges root

Après le redémarrage, vous pouvez vous connecter avec votre nom d'utilisateur créé précédemment (par exemple, administrateur). Étant donné que nous devons exécuter toutes les étapes de ce didacticiel avec les privilèges root, nous pouvons soit ajouter la chaîne sudo à toutes les commandes de ce didacticiel, soit nous devenons root dès maintenant en tapant

sudo su 

(Vous pouvez également activer la connexion root en exécutant

sudo passwd racine

et donner un mot de passe à root. Vous pouvez ensuite vous connecter directement en tant que root, mais cela est mal vu par les développeurs et la communauté Ubuntu pour diverses raisons. Voir http://ubuntuforums.org/showthread.php?t=765414.)

5 Installer le serveur SSH (facultatif)

Si vous n'avez pas installé le serveur OpenSSH lors de l'installation du système, vous pouvez le faire maintenant :

apt-get install ssh openssh-server

À partir de maintenant, vous pouvez utiliser un client SSH tel que PuTTY et vous connecter depuis votre poste de travail à votre serveur Ubuntu 11.04 et suivre les étapes restantes de ce didacticiel.

6 Installer vim-nox (facultatif)

J'utiliserai vi comme éditeur de texte dans ce tutoriel. Le programme vi par défaut a un comportement étrange sur Ubuntu et Debian; pour résoudre ce problème, nous installons vim-nox :

apt-get install vim-nox

(Vous n'avez pas à le faire si vous utilisez un autre éditeur de texte tel que joe ou nano.)

7 Configurer le réseau

Parce que le programme d'installation d'Ubuntu a configuré notre système pour obtenir ses paramètres réseau via DHCP, nous devons changer cela maintenant car un serveur doit avoir une adresse IP statique. Modifier /etc/network/interfaces et ajustez-le à vos besoins (dans cet exemple de configuration, j'utiliserai l'adresse IP 192.168.0.100 ):

vi /etc/network/interfaces
# Ce fichier décrit les interfaces réseau disponibles sur votre système# et comment les activer. Pour plus d'informations, voir interfaces(5) pré> 

Redémarrez ensuite votre réseau :

/etc/init.d/networking restart

Modifiez ensuite /etc/hosts. Faites en sorte qu'il ressemble à ceci :

vi /etc/hosts
127.0.0.1 localhost.localdomain localhost192.168.0.100 server1.example.com server1# Les lignes suivantes sont souhaitables pour les hôtes compatibles IPv6 ::1 ip6 -localhost ip6-loopbackfe00 ::0 ip6-localnetff00 ::0 ip6-mcastprefixff02 ::1 ip6-allnodesff02 ::2 ip6-allrouters

Maintenant lancez

echo server1.example.com> /etc/hostname
/etc/init.d/hostname restart

Ensuite, lancez

nom d'hôte
nom d'hôte -f

Les deux devraient maintenant afficher server1.example.com.

8 Modifier /etc/apt/sources.list et mettre à jour votre installation Linux

Modifiez /etc/apt/sources.list. Commentez ou supprimez le CD d'installation du fichier et assurez-vous que les référentiels univers et multivers sont activés. Cela devrait ressembler à ceci :

vi /etc/apt/sources.list
## deb cdrom :[Ubuntu-Server 11.04 _Natty Narwhal_ - Release amd64 (20110426)]/ natty main limited#deb cdrom :[Ubuntu-Server 11.04 _Natty Narwhal_ - Release amd64 (20110426)]/ natty main limited# Voir http://help.ubuntu.com/community/UpgradeNotes pour savoir comment mettre à niveau vers# les nouvelles versions de distribution.deb http://de.archive. ubuntu.com/ubuntu/ natty main restreintdeb-src http://de.archive.ubuntu.com/ubuntu/ natty main restreint## Mises à jour de corrections de bogues majeures produites après la version finale de ## distribution.deb http:// de.archive.ubuntu.com/ubuntu/ natty-updates main restreintdeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates main restreint## N.B. le logiciel de ce dépôt est ENTIÈREMENT NON SUPPORTÉ par l'équipe Ubuntu##. Veuillez également noter que les logiciels de l'univers NE RECEVRONT AUCUNE ## révision ou mise à jour de la part de l'équipe de sécurité Ubuntu.deb http://de.archive.ubuntu.com/ubuntu/ natty universedeb-src http://de.archive. ubuntu.com/ubuntu/ natty universdeb http://de.archive.ubuntu.com/ubuntu/ natty-updates universdeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates univers## N.B. les logiciels de ce référentiel sont ENTIÈREMENT NON SUPPORTÉS par l'équipe Ubuntu## et peuvent ne pas être sous licence libre. Veuillez vous assurer de ## vos droits d'utilisation du logiciel. Veuillez également noter que les logiciels dans ## multiverse NE RECEVRONT AUCUNE révision ou mise à jour de la part de l'équipe de sécurité Ubuntu##.deb http://de.archive.ubuntu.com/ubuntu/ natty multiversedeb-src http://de. archive.ubuntu.com/ubuntu/ natty multiversedeb http://de.archive.ubuntu.com/ubuntu/ natty-updates multiversedeb-src http://de.archive.ubuntu.com/ubuntu/ natty-updates multiverse## Décommentez les deux lignes suivantes pour ajouter des logiciels depuis le dépôt 'backports'##.## N.B. Les logiciels de ce référentiel peuvent ne pas avoir été testés aussi ## intensivement que ceux contenus dans la version principale, bien qu'ils incluent ## des versions plus récentes de certaines applications qui peuvent fournir des fonctionnalités utiles. toute révision## ou mise à jour de l'équipe de sécurité d'Ubuntu.# deb http://de.archive.ubuntu.com/ubuntu/ natty-backports main limited universe multiverse# deb-src http://de.archive.ubuntu.com /ubuntu/ natty-backports principal univers restreint multiversedeb http://security.ubuntu.com/ubuntu natty-security principal restreintdeb-src http://security.ubuntu.com/ubuntu natty-security principal restreintdeb http://security. ubuntu.com/ubuntu natty-security universdeb-src http://security.ubuntu.com/ubuntu natty-security universdeb http://security.ubuntu.com/ubuntu natty-security multiversedeb-src http://security.ubuntu .com/ubuntu natty-security multiverse## Décommentez les deux lignes suivantes pour ajouter un logiciel à partir du dépôt ## 'partenaire' de Canonical ory.## Ce logiciel ne fait pas partie d'Ubuntu, mais est proposé par Canonical et les## fournisseurs respectifs en tant que service aux utilisateurs d'Ubuntu.# deb http://archive.canonical.com/ubuntu natty partner# deb-src http ://archive.canonical.com/ubuntu natty partner## Décommentez les deux lignes suivantes pour ajouter des logiciels à partir du référentiel ## 'extras' d'Ubuntu.## Ce logiciel ne fait pas partie d'Ubuntu, mais est proposé par un tiers## les développeurs qui souhaitent livrer leur dernier logiciel.# deb http://extras.ubuntu.com/ubuntu natty main# deb-src http://extras.ubuntu.com/ubuntu natty main

Puis lancez

apt-obtenir la mise à jour

pour mettre à jour la base de données des packages apt et

apt-get upgrade

pour installer les dernières mises à jour (s'il y en a). Si vous constatez qu'un nouveau noyau est installé dans le cadre des mises à jour, vous devez ensuite redémarrer le système :

redémarrer 

9 Modifier le shell par défaut

/bin/sh est un lien symbolique vers /bin/dash, cependant nous avons besoin de /bin/bash, pas de /bin/dash. C'est pourquoi nous procédons comme suit :

dpkg-reconfigure tiret

Utiliser dash comme shell système par défaut (/bin/sh) ? <-- Non

Si vous ne le faites pas, l'installation d'ISPConfig échouera.

10 Désactiver AppArmor

AppArmor est une extension de sécurité (similaire à SELinux) qui devrait fournir une sécurité étendue. À mon avis, vous n'en avez pas besoin pour configurer un système sécurisé, et cela cause généralement plus de problèmes que d'avantages (pensez-y après avoir effectué une semaine de dépannage car un service ne fonctionnait pas comme prévu, puis vous découvrez que tout allait bien, seul AppArmor était à l'origine du problème). Par conséquent, je le désactive (c'est indispensable si vous souhaitez installer ISPConfig plus tard).

Nous pouvons le désactiver comme ceci :

/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

Le serveur parfait - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] - Page 4

11 Installer des logiciels

Maintenant, nous installons quelques packages qui seront nécessaires plus tard. Exécuter

apt-get install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.6-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential

(Cette commande doit tenir sur une ligne !)

12 Quota journalisé

(Si vous avez choisi un schéma de partitionnement différent du mien, vous devez ajuster ce chapitre afin que le quota s'applique aux partitions où vous en avez besoin.)

Pour installer le quota, exécutez

apt-get quota d'installation

Modifiez /etc/fstab. Le mien ressemble à ceci (j'ai ajouté ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 à la partition avec le point de montage /):

vi /etc/fstab
# /etc/fstab :informations sur le système de fichiers statiques.## Utilisez 'blkid -o value -s UUID' pour imprimer l'identifiant universel unique# pour un dispositif; cela peut être utilisé avec UUID=comme un moyen plus robuste de nommer # les périphériques qui fonctionnent même si des disques sont ajoutés et supprimés. Voir fstab(5).##     
 proc /proc proc nodev,noexec,nosuid 0 0/dev/mapper/server1-root / erreurs ext4 =remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1# /boot était sur /dev/sda1 lors de l'installationUUID=deae7cd1-b106-47aa-9a7c-512f046d2ebf /boot ext2 par défaut 0 2/ dev/mapper/server1-swap_1 aucun swap sw 0 0/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0

Pour activer le quota, exécutez ces commandes :

monter -o remonter /

quotacheck -avugm
quotaon -avug

13 Serveur DNS

Exécuter

apt-get install bind9

Pour des raisons de sécurité, nous souhaitons exécuter BIND chrooté, nous devons donc suivre les étapes suivantes :

/etc/init.d/bind9 stop

Modifiez le fichier /etc/default/bind9 afin que le démon s'exécute en tant que lien d'utilisateur non privilégié, chrooté sur /var/lib/named. Modifiez la ligne :OPTIONS="-u bind" pour qu'elle affiche OPTIONS="-u bind -t /var/lib/named":

vi /etc/default/bind9
# run resolvconf?RESOLVCONF=yes# options de démarrage pour le serveurOPTIONS="-u bind -t /var/lib/named"

Créez les répertoires nécessaires sous /var/lib :

mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Déplacez ensuite le répertoire de configuration de /etc vers /var/lib/named/etc :

mv /etc/bind /var/lib/named/etc

Créez un lien symbolique vers le nouveau répertoire de configuration à partir de l'ancien emplacement (pour éviter les problèmes lorsque bind sera mis à jour à l'avenir) :

ln -s /var/lib/named/etc/bind /etc/bind

Créez des périphériques nuls et aléatoires et corrigez les autorisations des répertoires :

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/null /var /lib/named/dev/random
chown -R bind:bind /var/lib/named/var/*
chown -R bind:bind /var/lib/named/etc/bind

Nous devons créer le fichier /etc/rsyslog.d/bind-chroot.conf...

vi /etc/rsyslog.d/bind-chroot.conf

... et ajoutez la ligne suivante afin que nous puissions toujours obtenir les messages importants consignés dans les journaux système :

$AddUnixListenSocket /var/lib/named/dev/log

Redémarrez le démon de journalisation :

/etc/init.d/rsyslog redémarrage

Démarrez BIND et vérifiez /var/log/syslog pour les erreurs :

/etc/init.d/bind9 start

14 MySQL

Pour installer MySQL, nous lançons

apt-get install mysql-server mysql-client libmysqlclient-dev

Il vous sera demandé de fournir un mot de passe pour l'utilisateur root MySQL - ce mot de passe est valable pour l'utilisateur [email protected] ainsi que [email protected], nous n'avons donc pas à spécifier manuellement un mot de passe root MySQL plus tard :

Nouveau mot de passe pour l'utilisateur "root" MySQL :<-- yourrootsqlpassword
Répétez le mot de passe pour l'utilisateur "root" MySQL :<-- yourrootsqlpassword

Nous voulons que MySQL écoute sur toutes les interfaces, pas seulement sur localhost, donc nous éditons /etc/mysql/my.cnf et commentons la ligne bind-address =127.0.0.1 :

vi /etc/mysql/my.cnf
[...]# Au lieu de sauter le réseau, la valeur par défaut est maintenant d'écouter uniquement sur # localhost qui est plus compatible et n'est pas moins sécurisé. #bind-address =127.0.0.1[...]

Ensuite, nous redémarrons MySQL :

/etc/init.d/mysql restart

Vérifiez maintenant que la mise en réseau est activée. Exécuter

netstat -tap | grep mysql

La sortie devrait ressembler à ceci :

[email protected] :~# netstat -tap | grep mysql
tcp        0      0 *:mysql                * :*                     ÉCOUTER      7220/mysqld
[email protected] :~#

Le serveur parfait - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] - Page 5

15 Postfix avec SMTP-AUTH et TLS

Pour installer Postfix avec SMTP-AUTH et TLS, procédez comme suit :

apt-get install postfix libsasl2-2 sasl2-bin libsasl2-modules procmail

Deux questions vous seront posées. Répondez comme suit :

Type général de configuration de messagerie :<-- Site Internet
Nom de messagerie système :<-- serveur1.exemple.com

Puis lancez

dpkg-reconfigure postfix

Encore une fois, quelques questions vous seront posées :

Type général de configuration de messagerie :<-- Site Internet
Nom de messagerie système :<-- server1.example.com
Destinataire de messagerie racine et postmaster :<-- [vide]
Autres destinations vers accept mail for (vide pour aucun) :<-- server1.example.com, localhost.example.com, localhost.localdomain, localhost
Forcer les mises à jour synchrones dans la file d'attente de messagerie ? <-- Non
Réseaux locaux :<-- 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Utiliser procmail pour la livraison locale ? <-- Oui
Limite de taille de boîte aux lettres (octets) :<-- 0
Caractère d'extension d'adresse locale :<-- +
Protocoles Internet à utiliser :<-- tous

Ensuite, faites ceci :

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable =yes'
postconf -e 'smtpd_sasl_security_options =noanonymous'
postconf -e 'broken_sasl_auth_clients =yes'
postconf -e 'smtpd_sasl_authenticated_header =yes'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces =all'
echo 'pwcheck_method:saslauthd'>> /etc/postfix/ sasl/smtpd.conf
echo 'mech_list:plain login'>> /etc/postfix/sasl/smtpd.conf

Ensuite, nous créons les certificats pour TLS :

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Ensuite, nous configurons Postfix pour TLS (assurez-vous que vous utilisez le bon nom d'hôte pour myhostname) :

postconf -e 'monnomhôte =serveur1.exemple.com'

postconf -e 'smtpd_tls_auth_only =no'
postconf -e 'smtp_use_tls =yes'
postconf -e 'smtpd_use_tls =yes'
postconf -e 'smtp_tls_note_starttls_offer =yes'
postconf - e 'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile =/etc/postfix /ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e 'smtpd_tls_session_cache_timeout =3600s'
postconf -e 'tls_random_source =dev:/dev/urandom'

Le fichier /etc/postfix/main.cf devrait maintenant ressembler à ceci :

cat /etc/postfix/main.cf
# Voir /usr/share/postfix/main.cf.dist pour une version commentée plus complète# Spécifique à Debian :spécifier un nom de fichier entraînera la première ligne # de ce fichier à utiliser comme nom. Le numéro par défaut de Debian est /etc/mailname.#myorigin =/etc/mailnamesmtpd_banner =$myhostname ESMTP $mail_name (Ubuntu)biff =no# ajouter .domain est le travail du MUA.append_dot_mydomain =no# Décommentez la ligne suivante pour générer "delayed mail" warnings#delay_warning_time =4hreadme_directory =no# TLS parameterssmtpd_tls_cert_file =/etc/postfix/ssl/smtpd.crtsmtpd_tls_key_file =/etc/postfix/ssl/smtpd.keysmtpd_use_tls =yessmtpd_tls_session_cache_database =btree:${data_directory}/smtpd_scachesmtp_tls_session_cache_database =btree:${ data_directory}/smtp_scache# Voir /usr/share/doc/postfix/TLS_README.gz dans le package postfix-doc pour# des informations sur l'activation de SSL dans le client smtp.myhostname =server1.example.comalias_maps =hash:/etc/aliasesalias_database =hachage :/etc/aliasesmyorigin =/etc/mailnamemydestination =server1.example.com, localhost.example.com, localhost.localdomain, localhostrelayhost =mynetworks =127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128mailbox_command =procmail -a "$EXTENS ION"mailbox_size_limit =0recipient_delimiter =+inet_interfaces =allinet_protocols =allsmtpd_sasl_local_domain =smtpd_sasl_auth_enable =yessmtpd_sasl_security_options =noanonymousbroken_sasl_auth_clients =yessmtpd_sasl_authenticated_header =yessmtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,reject_unauth_destinationsmtpd_tls_auth_only =nosmtp_use_tls =yessmtp_tls_note_starttls_offer =yessmtpd_tls_CAfile =/etc/postfix/ssl/cacert.pemsmtpd_tls_loglevel =1smtpd_tls_received_header =yessmtpd_tls_session_cache_timeout =3600stls_random_source =dev :/dev/urandom

L'authentification sera effectuée par saslauthd. Nous devons changer quelques éléments pour que cela fonctionne correctement. Parce que Postfix s'exécute chrooté dans /var/spool/postfix, nous devons faire ce qui suit :

mkdir -p /var/spool/postfix/var/run/saslauthd

Nous devons maintenant éditer /etc/default/saslauthd afin d'activer saslauthd. Définissez START sur yes et modifiez la ligne OPTIONS="-c -m /var/run/saslauthd" en OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r":

vi /etc/default/saslauthd
## Paramètres du démon saslauthd# Veuillez lire /usr/share/doc/sasl2-bin/README.Debian pour plus de détails.## Faut-il exécuter saslauthd automatiquement au démarrage ? (par défaut :no)START=yes# Description de cette instance saslauthd. Recommandé.# (suggestion :démon d'authentification SASL)DESC="Démon d'authentification SASL"# Nom abrégé de cette instance saslauthd. Fortement recommandé.# (suggestion :saslauthd)NAME="saslauthd"# Quels mécanismes d'authentification saslauthd doit-il utiliser ? (par défaut :pam)## Options disponibles dans ce paquet Debian :# getpwent -- utilisez la fonction de bibliothèque getpwent()# kerberos5 -- utilisez Kerberos 5# pam -- utilisez PAM# rimap -- utilisez un serveur IMAP distant# shadow - - use the local shadow password file# sasldb -- use the local sasldb database file# ldap -- use LDAP (configuration is in /etc/saslauthd.conf)## Une seule option peut être utilisée à la fois. Voir la page de manuel saslauthd# pour plus d'informations.## Exemple :MECHANISMS="pam"MECHANISMS="pam"# Options supplémentaires pour ce mécanisme. (par défaut :aucun)# Consultez la page de manuel saslauthd pour plus d'informations sur les options spécifiques aux mécanismes.MECH_OPTIONS=""# Combien de processus saslauthd devons-nous exécuter ? (par défaut :5)# Une valeur de 0 créera un nouveau processus pour chaque connexion.THREADS=5# Autres options (par défaut :-c -m /var/run/saslauthd)# Remarque :Vous DEVEZ spécifier l'option -m ou saslauthd ne s'exécutera pas !## AVERTISSEMENT :NE SPÉCIFIEZ PAS L'OPTION -d.# L'option -d entraînera l'exécution de saslauthd au premier plan au lieu d'être # un démon. Cela EMPÊCHERA VOTRE SYSTÈME DE DÉMARRER CORRECTEMENT. Si vous souhaitez# exécuter saslauthd en mode débogage, veuillez l'exécuter à la main pour plus de sécurité.## Consultez /usr/share/doc/sasl2-bin/README.Debian pour des informations spécifiques à Debian.# Consultez la page de manuel de saslauthd et la sortie de 'saslauthd -h' pour des informations générales sur ces options.## Exemple pour les utilisateurs de postfix :"-c -m /var/spool/postfix/var/run/saslauthd"#OPTIONS="-c -m / var/run/saslauthd"OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Ajoutez ensuite l'utilisateur postfix au groupe sasl (cela garantit que Postfix a l'autorisation d'accéder à saslauthd) :

adduser suffixe sasl

Maintenant, redémarrez Postfix et démarrez saslauthd :

/etc/init.d/postfix restart
/etc/init.d/saslauthd start

Pour voir si SMTP-AUTH et TLS fonctionnent correctement, exécutez maintenant la commande suivante :

telnet localhost 25

Après avoir établi la connexion à votre serveur de messagerie Postfix, tapez

ehlo localhost

Si vous voyez les lignes

250-STARTTLS

et

250-AUTH PLAIN LOGIN

tout va bien.

La sortie sur mon système ressemble à ceci :

[email protected]:/etc/postfix/ssl# telnet localhost 25
Essai 127.0.0.1...
Connecté à localhost.localdomain.
Le caractère d'échappement est '^]'.
220 server1.example.com ESMTP Postfix (Ubuntu)
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connexion fermée par un hôte étranger.
[email protected]:/etc/postfix/ssl#

Saisissez

quitter

pour revenir au shell du système.

16 Courrier-IMAP/Courrier-POP3

Exécutez ceci pour installer Courier-IMAP/Courier-IMAP-SSL (pour les IMAP sur le port 993) et Courier-POP3/Courier-POP3-SSL (pour les POP3 sur le port 995) :

apt-get install courier-authdaemon courier-base courier-imap courier-imap-ssl courier-pop courier-pop-ssl courier-ssl gamin libgamin0 libglib2.0-0

Deux questions vous seront posées :

Créer des répertoires pour l'administration Web ? <-- Non
Certificat SSL requis <-- Ok

Lors de l'installation, les certificats SSL pour IMAP-SSL et POP3-SSL sont créés avec le nom d'hôte localhost. Pour le remplacer par le nom d'hôte correct (server1.example.com dans ce tutoriel), supprimez les certificats...

cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem

... et modifiez les deux fichiers suivants ; remplacez CN=localhost par CN=server1.example.com (vous pouvez également modifier les autres valeurs, si nécessaire) :

vi /etc/courier/imapd.cnf
[...]CN=server1.example.com[...]
vi /etc/courier/pop3d.cnf
[...]CN=server1.example.com[...]

Recréez ensuite les certificats...

mkimapdcert
mkpop3dcert

... et redémarrez Courier-IMAP-SSL et Courier-POP3-SSL :

/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart

Si vous ne souhaitez pas utiliser ISPConfig, configurez Postfix pour envoyer les e-mails au Maildir* d'un utilisateur :

postconf -e 'home_mailbox =Maildir/'
postconf -e 'mailbox_command ='
/etc/init.d/postfix restart

*Veuillez noter : Vous n'avez pas à le faire si vous avez l'intention d'utiliser ISPConfig sur votre système car ISPConfig effectue la configuration nécessaire à l'aide des recettes procmail. Mais assurez-vous d'activer Maildir sous Gestion -> Serveur -> Paramètres -> EMail dans l'interface Web ISPConfig.

Le serveur parfait - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] - Page 6

17 Apache/PHP5/Ruby/Python/WebDAV

Maintenant, nous installons Apache :

apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils apache2-suexec libexpat1 ssl-cert

Ensuite, nous installons PHP5, Ruby et Python (tous les trois en tant que modules Apache) :

apt-get install libapache2-mod-php5 libapache2-mod-ruby libapache2-mod-python php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Ensuite, nous éditons /etc/apache2/mods-available/dir.conf :

vi /etc/apache2/mods-available/dir.conf

et modifiez la ligne DirectoryIndex :

 #DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm DirectoryIndex index.html index .htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml

Nous devons maintenant activer certains modules Apache (SSL, rewrite, suexec, include et WebDAV) :

a2enmod ssl
a2enmod réécriture
a2enmod suexec
a2enmod include
a2enmod dav_fs
a2enmod dav

Redémarrez Apache :

/etc/init.d/apache2 redémarrage

Nous devons régler un petit problème avec Ruby. Si vous installez ISPConfig et activez Ruby pour un site Web, les fichiers .rbx seront exécutés correctement et affichés dans le navigateur, mais cela ne fonctionne pas pour les fichiers .rb - vous serez invité à télécharger le fichier .rb - la même chose se produit si vous configurez Ruby manuellement pour un vhost (c'est-à-dire que cela n'a rien à voir avec ISPConfig). Pour résoudre ce problème, nous ouvrons /etc/mime.types...

vi /etc/mime.types

... et commentez la ligne application/x-ruby :

[...]#application/x-ruby rb[...]

Redémarrez Apache :

/etc/init.d/apache2 redémarrage

Désormais, les fichiers .rb seront exécutés et affichés dans le navigateur, tout comme les fichiers .rbx.

Dans le chapitre suivant (17.1), nous allons désactiver PHP (cela n'est nécessaire que si vous souhaitez installer ISPConfig sur ce serveur). Contrairement à PHP, Ruby et Python sont désactivés par défaut, nous n'avons donc pas à le faire.

17.1 Désactiver PHP globalement

(Si vous ne prévoyez pas d'installer ISPConfig sur ce serveur, veuillez ignorer cette section !)

Dans ISPConfig, vous configurerez PHP par site Web, c'est-à-dire que vous pouvez spécifier quel site Web peut exécuter des scripts PHP et lequel ne le peut pas. Cela ne peut fonctionner que si PHP est désactivé globalement, car sinon tous les sites Web pourraient exécuter des scripts PHP, peu importe ce que vous spécifiez dans ISPConfig.

Pour désactiver PHP globalement, nous éditons /etc/mime.types et commentons les lignes application/x-httpd-php :

vi /etc/mime.types
[...]#application/x-httpd-php phtml pht php#application/x-httpd-php-source phps#application/x-httpd-php3 php3#application/x-httpd-php3-preprocessed php3p#application/x-httpd-php4 php4#application/x-httpd-php5 php5[...]

Edit /etc/apache2/mods-enabled/php5.conf and comment out the SetHandler lines:

vi /etc/apache2/mods-enabled/php5.conf
  #SetHandler application/x-httpd-php   #SetHandler application/x-httpd-php-source  # To re-enable php in user directories comment the following lines # (from  to .) Do NOT set it to On as it # prevents .htaccess files from disabling it.   php_admin_value engine Off  

Then restart Apache:

/etc/init.d/apache2 restart

18 Proftpd

In order to install Proftpd, run

apt-get install proftpd ucf

You will be asked a question:

Run proftpd:<-- standalone

For security reasons add the following lines to /etc/proftpd/proftpd.conf (thanks to Reinaldo Carvalho; more information can be found here:http://proftpd.org/localsite/Userguide/linked/userguide.html):

vi /etc/proftpd/proftpd.conf
[...]DefaultRoot ~ServerIdent on "FTP Server ready."[...]

ISPConfig expects the configuration to be in /etc/proftpd.conf instead of /etc/proftpd/proftpd.conf, therefore we create a symlink (you can skip this command if you don't want to install ISPConfig):

ln -s /etc/proftpd/proftpd.conf /etc/proftpd.conf

Then restart Proftpd:

/etc/init.d/proftpd restart

The Perfect Server - Ubuntu Natty Narwhal (Ubuntu 11.04) [ISPConfig 2] - Page 7

19 Webalizer

To install webalizer, just run

apt-get install webalizer geoip-database

20 Synchronize the System Clock

It is a good idea to synchronize the system clock with an NTP (n etwork t ime p rotocol) server over the internet. Simply run

apt-get install ntp ntpdate

and your system time will always be in sync.

21 Install Some Perl Modules Needed By SpamAssassin (Comes With ISPConfig)

Run

apt-get install libhtml-parser-perl libdb-file-lock-perl libnet-dns-perl libnetaddr-ip-perl perl-modules

22 ISPConfig

The configuration of the server is now finished, and if you wish you can now install ISPConfig on it. Please check out the ISPConfig installation manual:http://www.ispconfig.org/manual_installation.htm

Before you install ISPConfig, there's one important thing you must do. Open /usr/include/stdio.h and replace getline with parseline in line 671:

vi /usr/include/stdio.h
[...] This function is not part of POSIX and therefore no official cancellation point. But due to similarity with an POSIX interface or due to the implementation it is a cancellation point and therefore not marked with __THROW. */extern _IO_ssize_t parseline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream) __wur;#endif[...]

If you don't do this, the installation will fail because of the following error:

htpasswd.c:101:error:conflicting types for 'getline'
/usr/include/stdio.h:671:note:previous declaration of 'getline' was here
make[2]:*** [htpasswd.o] Error 1
make[2]:Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41/src/support'
make[1]:*** [build-support] Error 1
make[1]:Leaving directory `/home/ISPConfig-2.2.stable/install_ispconfig/compile_aps/apache_1.3.41'
make:*** [build] Error 2
ERROR:Could not make Apache

You can undo the change to /usr/include/stdio.h after the successful ISPConfig installation (but don't forget to change it back whenever you want to update ISPConfig!).

22.1 A Note On SuExec

If you want to run CGI scripts under suExec, you should specify /var/www as the home directory for websites created by ISPConfig as Ubuntu's suExec is compiled with /var/www as Doc_Root. Run

 /usr/lib/apache2/suexec -V

and the output should look like this:

[email protected]:~# /usr/lib/apache2/suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="www-data"
 -D AP_LOG_EXEC="/var/log/apache2/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=100
 -D AP_USERDIR_SUFFIX="public_html"
[email protected]:~#

So if you want to use suExec with ISPConfig, don't change the default web root (which is /var/www) if you use expert mode during the ISPConfig installation (in standard mode you can't change the web root anyway so you'll be able to use suExec in any case).

  • Ubuntu:http://www.ubuntu.com/
  • ISPConfig:http://www.ispconfig.org/

Panels
  1. Le bureau parfait - Ubuntu 11.04 (Natty Narwhal) (avec le bureau Ubuntu Classic)

  2. Comment mettre à niveau un serveur Ubuntu 7.10 ("The Perfect Setup" + ISPConfig) vers Ubuntu 8.04 LTS

  3. Comment mettre à niveau un serveur Ubuntu 7.04 ("The Perfect Setup" + ISPConfig) vers Ubuntu 7.10

  4. Le serveur parfait - Fedora 15 x86_64 [ISPConfig 2]

  5. Le serveur parfait - Fedora 15 x86_64 [ISPConfig 3]

Le serveur parfait - CentOS 5.7 x86_64 [ISPConfig 3]

Le serveur parfait - CentOS 6.0 x86_64 [ISPConfig 2]

Le serveur parfait - CentOS 6.0 x86_64 [ISPConfig 3]

Le serveur parfait - Ubuntu 12.04 LTS (Apache2, BIND, Dovecot, ISPConfig 3)

Le serveur parfait - Ubuntu 12.10 (Apache2, BIND, Dovecot, ISPConfig 3)

Le serveur parfait - Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)