GNU/Linux >> Tutoriels Linux >  >> Debian

La configuration parfaite - Debian Sarge (3.1)

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)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

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)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Puis redémarrez votre réseau :

/etc/init.d/networkingrestart

Modifier /etc/resolv.conf et ajoutez des serveurs de noms :

search server
nameserver 145.253.2.75
nameserver 193.174.32.18
nameserver 194.25.0.60

Modifier /etc/hosts et ajoutez vos nouvelles adresses IP :

127.0.0.1       localhost.localdomain   localhost       server1
192.168.0.100 server1.example.com server1
192.168.0.101 virtual-ip1.example.com virtual-ip1


# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

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.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1
/dev/sda5 none swap sw 0 0
/dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

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
# /etc/init.d/sysklogd: start the system log daemon.

PATH=/bin:/usr/bin:/sbin:/usr/sbin

pidfile=/var/run/syslogd.pid
binpath=/sbin/syslogd

test -x $binpath || exit 0

# Options for start/restart the daemons
# For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

create_xconsole()
{
if [ ! -e /dev/xconsole ]; then
mknod -m 640 /dev/xconsole p
else
chmod 0640 /dev/xconsole
fi
chown root:adm /dev/xconsole
}

running()
{
# No pidfile, probably no daemon present
#
if [ ! -f $pidfile ]
then
return 1
fi

pid=`cat $pidfile`

# No pid, probably no daemon present
#
if [ -z "$pid" ]
then
return 1
fi

if [ ! -d /proc/$pid ]
then
return 1
fi

cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`

# No syslogd?
#
if [ "$cmd" != "$binpath" ]
then
return 1
fi

return 0
}

case "$1" in
start)
echo -n "Starting system log daemon: syslogd"
create_xconsole
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo "."
;;
stop)
echo -n "Stopping system log daemon: syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
echo "."
;;
reload|force-reload)
echo -n "Reloading system log daemon: syslogd"
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
echo "."
;;
restart)
echo -n "Restarting system log daemon: syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
sleep 1
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo "."
;;
reload-or-restart)
if running
then
echo -n "Reloading system log daemon: syslogd"
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
else
echo -n "Restarting system log daemon: syslogd"
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
fi
echo "."
;;
*)
echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
exit 1
esac

exit 0

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.


Debian
  1. Comment configurer le serveur Rsyslog sur Debian 11 (Bullseye)

  2. Comment configurer le serveur Rsyslog sur Debian 11

  3. Mettre à jour le serveur ISPConfig Perfect de Debian 10 à Debian 11

  4. La configuration parfaite - Debian Woody (3.0)

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

La configuration parfaite - Fedora Core 4

La configuration parfaite - SUSE 9.2

La configuration parfaite - SUSE 9.3

Configuration initiale du serveur avec Debian 11

Comment configurer le serveur OpenLDAP sur Debian 10

Configurer Nginx + php-FPM + apc + MariaDB sur Debian 7 – Le serveur LEMP parfait