Ceci est un "copier-coller" Comment ! La façon la plus simple de suivre ce tutoriel est d'utiliser un client en ligne de commande/client SSH (comme PuTTY pour Windows) et de simplement copier et coller les commandes (sauf si vous devez fournir vos propres informations comme les adresses IP, les noms d'hôte, les mots de passe,... ). Cela permet d'éviter les fautes de frappe.
La configuration parfaite - Debian Sarge (3.1)
Version 1.9
Auteur :Falko Timme
Ceci est une description détaillée des étapes à suivre pour configurer Debian basé sur un serveur (Debian Sarge alias Debian 3.1) qui offre tous les services nécessaires aux FAI et aux hébergeurs (serveur Web (compatible SSL), serveur de messagerie (avec SMTP-AUTH et TLS !), serveur DNS, serveur FTP, serveur MySQL, POP3/POP3s/ IMAP/IMAP, quota, pare-feu, etc.).
J'utiliserai les logiciels suivants :
- Serveur Web :Apache 2.0.x
- Serveur de messagerie :Postfix (plus facile à configurer que sendmail ; a un historique de failles de sécurité plus court que sendmail)
- Serveur DNS :BIND9
- Serveur FTP :proftpd
- POP3/POP3s/IMAP/IMAPs :dans cet exemple, vous pouvez choisir entre le format de boîte aux lettres UNIX traditionnel (nous utilisons ensuite ipopd/ uw-imapd) ou le format Maildir (dans ce cas nous utiliserons Courier-POP3/Courier-IMAP).
- Webalizer pour les statistiques de sites Web
En fin de compte, vous devriez avoir un système qui fonctionne de manière fiable et qui est prêt pour le panneau de contrôle d'hébergement Web gratuit ISPConfig (c'est-à-dire que ISPConfig s'exécute dessus à partir du boîte).
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 !
Exigences
Pour installer un tel système, vous aurez besoin des éléments suivants :
- Un CD d'installation de Debian SargeNet (disponible ici :http://ftp.de.debian.org/debian-cd/3.1_r0a /i386/iso-cd/debian-31r0a-i386-netinst.iso)
- une connexion internet puisque je vais décrire une installation réseau dans ce document
1 Système TheBase
Insérez votre CD d'installation SargeNet dans votre système et démarrez à partir de celui-ci (entrez linux26 à l'invite de démarrage pour installer un noyau 2.6). L'installation démarre, et vous devez d'abord choisir votre langue :
Sélectionnez votre pays :
Choisissez une disposition de clavier :
La détection du matériel commence :
Entrez le nom d'hôte. Dans cet exemple, mon système s'appelle server1 .exemple.com , donc j'entre server1 :
Entrez votre nom de domaine. Dans cet exemple, il s'agit de example.com :
Vous devez maintenant partitionner votre disque dur. Je vais créer une grande partition (avec le point de montage / ) et une petite swappartition :
Maintenant, le système de base est en cours d'installation :
J'installe le GRUBboot loader au secteur de démarrage principal :
Ensuite, retirez le CD Sarge Netinstall de votre système et redémarrez-le :
Configurez votre fuseau horaire :
Entrez un mot de passe pour root :
Créer un second utilisateur admin :
Choisissez votre méthode d'installation. Puisque je veux faire une installation sur le réseau, je sélectionne http ou ftp .
Sélectionnez un miroir pour votre installation :
Entrez un proxy pour l'installation (si nécessaire) .Normalement, vous pouvez laisser ce champ vide.
Sous sélection de logiciels Debian Je choisis uniquement Mailserver . J'installerai tous les autres services manuellement plus tard.
L'installation du réseau commence :
Continuez à installer libc-client sans prise en charge de Maildir. Si vous souhaitez utiliser Maildir, vous pouvez installer Courier-POP3 /Courier-IMAP (expliqué plus tard):
Ne pas configurer Exim car nous le remplacerons par Postfix plus tard :
Félicitations !Votre système de base est maintenant terminé :
Passons à l'étape suivante...
2 Installation et configuration du reste du système
Configurer TheNetwork
Parce que le programme d'installation DebianSarge a configuré notre système pour obtenir ses paramètres réseau via DHCP, nous devons changer cela maintenant car un serveur doit avoir un statique Adresse IP.Modifier /etc/network/interfaces et ajustez-le à vos besoins (dans cet exemple de configuration, j'utiliserai l'adresse IP 192.168.0.100 ):
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) |
Si vous souhaitez ajouter l'adresse IP 192.168.0.101 à l'interface eth0 vous devez modifier le fichier pour qu'il ressemble à ceci :
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) |
Puis redémarrez votre réseau :
/etc/init.d/networkingrestart
Modifier /etc/resolv.conf et ajoutez des serveurs de noms :
search server |
Modifier /etc/hosts et ajoutez vos nouvelles adresses IP :
127.0.0.1 localhost.localdomain localhost server1 |
Définition du nom d'hôte
echo server1.example.com> /etc/hostname
/bin/hostname -F /etc/hostname
Installer/Supprimer certains logiciels
Installons maintenant quelques logiciels dont nous aurons besoin plus tard et supprimons certains packages dont nous n'avons pas besoin :
apt-get install wget bzip2rdate fetchmail libdb3++-dev unzip zip ncftp xlispstat libarchive-zip-perl zlib1g-devlibpopt-dev nmap openssl lynx fileutils g++
apt-get remove lpr nfs-commonportmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig
update-rc.d -f exim remove
update-inetd --removedaytime
update-inetd --remove telnet
update-inetd - -remove time
update-inetd --remove finger
update-inetd --remove talk
update-inetd --remove ntalk
update-inetd --remove ftp
update-inetd --remove rejet
<- Oui
/etc/init.d/openbsd-inetd recharge
Quota
apt-get install quota quotatool
<- Non
Modifier /etc/fstab pour ressembler à ceci (j'ai ajouté ,usrquota,grpquota à la partition avec le point de montage / ):
# /etc/fstab: static file system information. |
Ensuite, exécutez :
toucher /quota.user /quota.group
chmod 600 /quota.*
mount -o remount /
quotacheck -avugm
quotaon -avug
Serveur DNS
apt-getinstall 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
Modifier le fichier /etc/default/bind9 afin que le démon s'exécute en tant qu'utilisateur non privilégié 'bind ', chrooté sur /var/lib/named .Modifiez la ligne :OPTS=" -ubind " pour qu'il affiche OPTS="-u bind-t /var/lib/named" :
OPTIONS="-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
Ensuite, déplacez le répertoire de configuration de /etc à /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 lors de la mise à jour future de bindis) :
ln -s /var/lib/named/etc/bind/etc/bind
Rendez les périphériques nuls et aléatoires, et corrigez les autorisations des répertoires :
mknod /var/lib/named/dev/nullc 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 modifier le script de démarrage /etc/init.d/ sysklogd de sysklogd afin que nous puissions toujours obtenir des messages importants enregistrés dans les journaux système. Modifiez la ligne : SYSLOGD="" de sorte qu'il indique :SYSLOGD="-a/var/lib/named/dev/log" :
#! /bin/sh |
Redémarrez le démon de journalisation :
/etc/init.d/sysklogd restart
Démarrez BIND et vérifiez /var/log/syslog pour toute erreur :
/etc/init.d/bind9 start
MySQL
apt-getinstall mysql-server mysql-client libmysqlclient12-dev
mysqladmin -u root passwordyourrootsqlpassword
Lorsque vous exécutez netstat-tap vous devriez maintenant voir une ligne comme celle-ci :
tcp 0 0 localhost.localdo:mysql *:* LISTEN 2449/mysqld |
ce qui signifie que MySQL est accessible sur 127.0.0.1 sur le port 3306. Vous pouvez passer à la section suivante (Postfix). Si vous ne voyez pas cette ligne, modifiez /etc/mysql/my.cnf et commentez ignorer le réseau :
# skip-networking |
Si vous voulez que MySQL écoute sur toutes les adresses IP disponibles, modifiez /etc/mysql/mon.cnf et commentez bind-address =127.0.0.1 :
#bind-address = 127.0.0.1 |
Si vous deviez modifier /etc/mysql/my.cnf vous devez redémarrer MySQL :
/etc/init.d/mysql restart
Si MySQL écoute sur toutes les interfaces, vous devez maintenant également définir un mot de passe MySQL pour serveur1.exemple.com car sinon n'importe qui pourrait accéder à votre base de données :
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
Suffixe/POP3/IMAP
Afin d'installer Postfix avec SMTP-AUTH et TLS ainsi qu'un serveur POP3 qui fait aussi du POP3(port 995) et un serveur IMAP qui est également capable d'IMAP (port 993) effectuez les étapes suivantes :
apt-get install postfixpostfix-tls libsasl2 sasl2-bin libsasl2-modules ipopd-ssl uw-imapd-ssl (1line !)
<- pop3 et pop3s
<- Non
<- Site Internet
<- AUCUN
<- serveur1.exemple.com
<- serveur1.exemple.com, hôte local.exemple.com, hôte local
<- Non
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_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
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 -days3650
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 :
# See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = no # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h myhostname = server1.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com, localhost.example.com, localhost relayhost = mynetworks = 127.0.0.0/8 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom |
/etc/init.d/postfixrestart
L'authentification sera effectuée par saslauthd .Nous devons changer quelques éléments pour que cela fonctionne correctement. Parce que Postfix s'exécute 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 .Remove # devant START=yes et ajoutez la ligne PARAMS="-m /var/spool/postfix/var/run/saslauthd -r" :
# This needs to be uncommented before saslauthd will be run automatically START=yes PARAMS="-m /var/spool/postfix/var/run/saslauthd -r" # You must specify the authentication mechanisms you wish to use. # This defaults to "pam" for PAM support, but may also include # "shadow" or "sasldb", like this: # MECHANISMS="pam shadow" MECHANISMS="pam" |
Il faut aussi éditer /etc/init.d/saslauthd et changez l'emplacement du fichier PID de saslauthd. Modifiez la valeur de PIDFILE à /var/spool/postfix/var/run/${NAME}/saslauthd.pid :
PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid" |
Démarrez maintenant saslauthd :
/etc/init.d/saslauthd start
Nous créons ensuite le fichier /etc/c-client.cf avec le contenu suivant :
I accept the risk set disable-plaintext 0 |
et redémarrez inetd :
/etc/init.d/openbsd-inetd restart
Si nous ne le faisons pas, nos connexions POP3/IMAP échoueront.
Pour voir si SMTP-AUTH et TLS fonctionnent correctement, exécutez la commande suivante :
telnetlocalhost 25
Après avoir établi la connexion à votre type de serveur de messagerie postfix
ehlolocalhost
Si vous voyez les lignes
250-STARTTLS
et
250-AUTH
tout va bien.
Type
quitter
pour revenir au shell du système.
Courrier-IMAP/Courier-POP3
Si vous souhaitez utiliser un démon POP3/IMAP prenant en charge Maildir (si vous ne souhaitez pas utiliser le format de boîte aux lettres Unix traditionnel), vous pouvez 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). Sinon, vous pouvez procéder à la configuration d'Apache.
apt-get install courier-imapcourier-imap-ssl courier-pop courier-pop-ssl
<- Non
ipopd et UW-IMAP seront alors remplacés.
Configurez ensuite 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 de procmailrecipes. Mais assurez-vous d'activer Maildir sous Gestion -> Paramètres ->EMail dans l'interface Web d'ISPConfig.