ISPConfig sous Linux-VServer

Un article de Bulles.
Révision datée du 2 février 2006 à 23:28 par Philippe (discussion | contribs) (ISPConfig)
Aller à : navigation, rechercher

Installation de ISPConfig sous Linux-VServer

Installation du VServer

Le VServer est installe comme décrit dans le HowTo

Lors de l'exécution du base-config, on ne séléctionne rien dans les paquets et on ne configure pas Exim.

Compilation de bind

Pour pouvoir utiliser bind dans un Linux-VServer, il faut le reconfigurer avec l'option --disable-linux-caps.
A noter que sans les capabilities, le démon ne peut tourner que sous root si bind utilise les POSIX-threads. On désactive donc aussi les threads...

$ apt-get source -t sarge bind9
$ cd bind9-9.2.4
$ vi debian/rules                   # Add the --disable-linux-caps / -disable-threads to configure
$ debchange -i 'Disable capabilities and threads'
$ debuild -us -uc

Il faut aussi que bind écoute sur la bonne IP. Mettre dans named.conf.options

 query-source address <adresse du vserver>;

Post-install

Mettre à jour /etc/hosts. Il est imporant que l'adresse du Linux-VServer se résolve.

Ajout/supression de paquets:

# apt-get install wget bzip2 rdate fetchmail libdb3++-dev unzip zip ncftp xlispstat \
  libarchive-zip-perl zlib1g-dev libpopt-dev nmap openssl lynx fileutils iproute
# apt-get remove lpr nfs-common portmap pidentd

Quotas

Pour que les quotas fonctionnent, il faut que le serveur virtuel soit sur une partition séparée.
C'est le de momment suivre l'article Linux-VServer et Quotas!

Bind

Installation des paquets compilés ci dessus.
On ne fera pas tourner bind en chroot (on est déjà dans un v-server!)

MySQL

Installation de MySQL:

# apt-get install mysql-server-4.1 mysql-client-4.1 libmysqlclient14-dev

On peut éventuellement désactiver le logging de réplication et InnoDB...

--- my.cnf.orig 2006-01-24 22:40:27.000000000 +0100
+++ my.cnf      2006-01-24 22:42:41.000000000 +0100
@@ -77,7 +77,7 @@
 #
 # The following can be used as easy to replay backup logs or for replication.
 #server-id             = 1
-log-bin                        = /var/log/mysql/mysql-bin.log
+#log-bin                       = /var/log/mysql/mysql-bin.log
 # See /etc/mysql/debian-log-rotate.conf for the number of files kept.
 max_binlog_size         = 104857600
 #binlog-do-db          = include_database_name
@@ -93,6 +93,7 @@
 #
 # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
 # Read the manual for more InnoDB related options. There are many!
+skip-innodb
 #
 # * Security Features
 #

On change le mot de passe root et on cree un compte pour ISPConfig

# mysqladmin -u root password <mot de passe>
# mysql --user=root mysql -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'ispconfig'@'localhost' 
    -> IDENTIFIED BY '<pass>' WITH GRANT OPTION;

Mail

PostFix

Installation du MTA PostFix; cela va désinstaller Exim.

# apt-get install postfix postfix-tls libsasl2 sasl2-bin libsasl2-modules
# postconf -e 'inet_interfaces = all'

SASL

Pour pouvoir faire de l'authentification SMPT (SMPTAUH), on utilise SASL

Configuration de PostFix pour SASL:

# postconf -e 'smtpd_sasl_auth_enable = yes'
# postconf -e 'smtpd_sasl_security_options = noanonymous'
# postconf -e 'smtpd_sasl_local_domain ='
# postconf -e 'broken_sasl_auth_clients = yes'
# postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'

Configuration de SASL: creer le fichier /etc/postfix/sasl/smtpd.conf avec:

pwcheck_method: saslauthd
mech_list: plain login

(On ne peux pas utilser md5-digest/md5-cram avec pam...)

Comme par défaut PostFix est chrooté, il faut s'assurer qu'il puisse parler au démon saslauthd:

# mkdir -p /var/spool/postfix/var/run
# mv /var/run/saslauthd /var/spool/postfix/var/run/saslauthd
# ln -s  /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
# adduser postfix sasl

Et on termine par activer le demon SASL dans /etc/default/saslauthd:

# This needs to be uncommented before saslauthd will be run automatically
START=yes

TLS

Configuraton de PostFix pour TLS:

# postconf -e 'smtpd_use_tls = yes'
# postconf -e 'smtpd_tls_auth_only = no'
# postconf -e 'smtpd_tls_key_file = /etc/ssl/private/mail.key'
# postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/mail.crt'
# postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.crt'
# 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'

Pour le client:

# postconf -e 'smtp_use_tls = yes'
# postconf -e 'smtp_tls_note_starttls_offer = yes'
# postconf -e 'smtp_tls_key_file = /etc/ssl/private/mail.key'
# postconf -e 'smtp_tls_cert_file = /etc/ssl/certs/mail.crt'
# postconf -e 'smtp_tls_CAfile = /etc/ssl/certs/cacert.crt'

Generation des certificates (on utilise CAcert pour la certification):

# cd /etc/ssl/private
# openssl req -nodes -new -keyout mail.key -out mail.csr

Le certificat signé va alors dans /etc/ssl/certs/.
Copier aussi le certificat CAcert

# cd /etc/ssl/certs
# wget http://www.cacert.org/cacert.crt

Courier-IMAP et Courier-POP3

Installation des paquets

# apt-get install courier-imap courier-imap-ssl courier-pop courier-pop-ssl

Configuration de PostFix pour les MailDirs

# postconf -e 'home_mailbox = Maildir/'
# postconf -e 'mailbox_command ='

Mise en forme du certificat (on utilise le même certificat que pour smtp):

# cd /etc/courier
# mv imapd.pem imapd.pem.selfsigned
# cat /etc/ssl/private/mail.key /etc/ssl/certs/mail.crt > imapd.pem            
# openssl gendh >> imapd.pem
# chmod 0600 imapd.pem
# mv pop3d.pem pop3d.pem.selfsigned
# cp imapd.pem pop3d.pem

Apache

Installation des paquets

# apt-get install apache2 apache2-doc
# apt-get install curl libwww-perl imagemagick
# apt-get install libapache2-mod-php4 php4 php4-cli php4-common php4-curl php4-dev php4-domxml \
  php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4-mysql php4-odbc php4-pear php4-xslt  
# apt-get install libapache2-mod-perl2

Mise a jour de /etc/apache2/ports.conf pour écouter sur le port 443:

Listen 80
Listen 443

Activation des modules:

# a2enmod ssl
# a2enmod rewrite
# a2enmod suexec 
# a2enmod include

Et redémarrage de Apache:

# /etc/init.d/apache2 restart

ProFTPD

Installation des paquets (le serveur est installé en mode standalone)

# apt-get install proftpd

Et ajout/changement des paramtres dans /etc/proftpd.conf:

ServerName    "<MyName> FTP Server"
ServerIdent   on "FTP Server ready."
DefaultRoot   ~
IdentLookups  off

Redémarrage...

# /etc/init.d/proftpd restart

Webalizer

Installation du paquet

# apt-get install webalizer

Specifier le répertoire de logs de Apache2: /var/log/apache2/error.log.1 lors de la configuration

Perl

Packages nécessaire pour SpamAssassin qui sera intallé avec ISPConfig:

# apt-get install libhtml-parser-perl libnet-dns-perl

ISPConfig

Allez sur ISPConfig et téléchargez le logiciel

# wget http://belnet.dl.sourceforge.net/sourceforge/ispconfig/ISPConfig-2.1.2.tar.gz
# tar xzf ISPConfig-2.1.2.tar.gz
# cd install_ispconfig
# ./setup

Lors de l'install, choisir le mode Expert et acceptez toutes les valeurs par défaut à l'exeption de Web-Root qu'on mettra à /var/www de manière a pouvoir utiliser suexec si nécessaire.

L'installation prend un certain temps, ISPConfig utilise son propre serveur Apache/PHP qu'il doit compiler...

Vous pouvez accepter les défauts pour les certificats SSL, mais ne les encryptez pas, sinon il faudra donner le mot de passe à chaque démarrage du serveur.

Lors de la configuration MySQL, entrez l'utilisateur configuré ci-dessus.

Todo: localhost!!!

Liens