ISPConfig sous Linux-VServer : Différence entre versions

Un article de Bulles.
Aller à : navigation, rechercher
(ISPConfig)
(MySQL)
Ligne 40: Ligne 40:
 
  # apt-get install mysql-server-4.1 mysql-client-4.1 libmysqlclient14-dev
 
  # 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...
+
Par défaut, le serveur ''bind'' 127.0.0.1, ce qui n'est pas possible sur un [http://linux-vserver.org/ Linux-VServer]. On choisi ici de désactiver TCP/IP. Alternativement, on pourrait faire le ''bind'' sur une adresse non publique.<br />
  --- my.cnf.orig 2006-01-24 22:40:27.000000000 +0100
+
On peut éventuellement aussi désactiver le logging de réplication et InnoDB...
  +++ my.cnf     2006-01-24 22:42:41.000000000 +0100
+
  --- my.cnf.orig       2006-01-24 22:40:27.000000000 +0100
  @@ -77,7 +77,7 @@
+
  +++ my.cnf     2006-02-03 10:00:16.000000000 +0100
 +
@@ -49,7 +49,8 @@
 +
  #
 +
  # 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
 +
+# bind-address                = 127.0.0.1
 +
+skip-networking
 +
  #
 +
  # * Fine Tuning
 +
  #
 +
  @@ -77,7 +78,7 @@
 
   #
 
   #
 
   # The following can be used as easy to replay backup logs or for replication.
 
   # The following can be used as easy to replay backup logs or for replication.
   #server-id             = 1
+
   #server-id           = 1
  -log-bin                       = /var/log/mysql/mysql-bin.log
+
  -log-bin                       = /var/log/mysql/mysql-bin.log
  +#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.
 
   # See /etc/mysql/debian-log-rotate.conf for the number of files kept.
 
   max_binlog_size        = 104857600
 
   max_binlog_size        = 104857600
   #binlog-do-db         = include_database_name
+
   #binlog-do-db         = include_database_name
  @@ -93,6 +93,7 @@
+
  @@ -93,6 +94,7 @@
 
   #
 
   #
 
   # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
 
   # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
Ligne 60: Ligne 71:
 
   # * Security Features
 
   # * Security Features
 
   #
 
   #
 +
  
 
On change le mot de passe root et on cree un compte pour ISPConfig
 
On change le mot de passe root et on cree un compte pour ISPConfig

Version du 3 février 2006 à 09:25

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

Par défaut, le serveur bind 127.0.0.1, ce qui n'est pas possible sur un Linux-VServer. On choisi ici de désactiver TCP/IP. Alternativement, on pourrait faire le bind sur une adresse non publique.
On peut éventuellement aussi désactiver le logging de réplication et InnoDB...

--- my.cnf.orig        2006-01-24 22:40:27.000000000 +0100
+++ my.cnf     2006-02-03 10:00:16.000000000 +0100
@@ -49,7 +49,8 @@
 #
 # 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
+# bind-address                = 127.0.0.1
+skip-networking
 #
 # * Fine Tuning
 #
@@ -77,7 +78,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 +94,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