7. Install Dovecot

Dovecot peut être installé comme ceci :

yum -y install dovecot dovecot-mysql dovecot-pigeonhole

Créez un fichier dovecot-sql.conf vide et créez des liens synonymes :

touch /etc/dovecot/dovecot-sql.conf
ln -s /etc/dovecot/dovecot-sql.conf /etc/dovecot-sql.conf
ln -s /etc/dovecot/dovecot.conf /etc/dovecot.conf

Maintenant créez les liens de démarrage du système et démarrez Dovecot:

systemctl enable dovecot
systemctl start dovecot

 


8. Installez Postfix

Postfix peut être installé comme ceci :

yum -y install postfix

Ensuite désactivez Sendmail et démarrez Postfix et  MariaDB (MySQL):

systemctl enable mariadb.service
systemctl start mariadb.service

systemctl stop sendmail.service
systemctl disable sendmail.service
systemctl enable postfix.service
systemctl restart postfix.service

On désactive sendmail pour être certain qu’il ne va pas démarrer au cas où il était déjà installé sur votre serveur. Aussi le message d’erreur "Failed to issue method call: Unit sendmail service not loaded." peut être ignoré.


9. Installez Getmail

Getmail peut être installé comme ceci  :

yum -y install getmail

 


10. définissez les mots de passe MySQL et configurez phpMyAdmin

Définissez les mots de passe pour le compte racine  MySQL :

mysql_secure_installation

[[email protected] tmp]# mysql_secure_installation

NOTE: Exécutez chaque étape de ce sript est conseillé pour tous les serveurs MariaDB en activité
S’il vous plaît, lisez chaque étape attentivement!

Afin de s’identifier dans MariaDB pour le sécuriser, nous avons besoins de ceci
mot de passe pour le compte racine. Si vous venez juste d’installer MariaDB, et
que vous n’avez pas encore défini le mot de passe du compte racine, le mot de passe sera vierge,
vous devrez juste appuyer sur Entrée ici.

Entrez le mot de passe actuel pour le compte racine (ne rien compéter):
OK, vous avez réussi à passer cette étape, continuons...

Définir le mot de passe du compte racine vous garantit que personne ne pourra se connecter dans MariaDB
pas même un super utilisateur sans sa propre autorisation.

Définir un mot de passe du compte racine ? [Y/n] 
<-- ENTRÉE
nouveau mot de passe: <-- yourrootsqlpassword
répétez le nouveau mot de passe: <-- yourrootsqlpassword
Mot de passe mis à jour avec succès!
Recharger les tables de preference..
 ... Réussi!

Par défaut, une installation MariaDB installation a un utilisateur anonyme, ce qui autorise tout le monde
à s’identifier dans MariaDB  sans avoir un compte utilisateur créé à cet effet.
This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] 
<-- ENTER
 ... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] 
<-- ENTER
 ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.

 

Remove test database and access to it? [Y/n] <-- ENTER
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.Reload privilege tables now? [Y/n] 
<-- ENTER
 ... Success!

Cleaning up...

All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

[[email protected] tmp]#

Maintenant on configure phpMyAdmin. On change la configuration d’Apache pour que phpMyAdmin autorise les connexions pas seulement depuis un hôte local from localhost (en rendant inactive les deux lignes "Require ip" et en ajoutant une nouvelle ligne "Require all granted" dans le   stanza):

nano /etc/httpd/conf.d/phpMyAdmin.conf

# phpMyAdmin - Web based MySQL browser written in php

#

# Allows only localhost by default

#

# But allowing phpMyAdmin to anyone other than localhost should be considered

# dangerous unless properly secured by SSL

 

Alias /phpMyAdmin /usr/share/phpMyAdmin

Alias /phpmyadmin /usr/share/phpMyAdmin

 

 

  

     # Apache 2.4

     

     #  Require ip 127.0.0.1

     #  Require ip ::1
        Require all granted

    

  

  

     # Apache 2.2

     Order Deny,Allow

     Deny from All

     Allow from 127.0.0.1

     Allow from ::1

  

 

           

Ensuite, on change l’authentification dans phpMyAdmin depuis cookie to http:

nano /etc/phpMyadmin_25136gXcDsTRe256oiJHHBG251/config.inc.php

[...]

/* Authentication type */

$cfg['Servers'][$i]['auth_type'] = 'http';

[...]

Puis on créée les liens du système de démarrage d’Apache et on le démarre  :

systemctl enable  httpd.service
systemctl restart  httpd.service

Maintenant vous pouvez administrer votre navigateur dans  http://server1.example.com/phpmyadmin_25136gXcDsTRe256oiJHHBG251/ ou http://192.168.1.100/phpmyadmin_25136gXcDsTRe256oiJHHBG251/ et vous connecter avec votre mot de passe racine et votre nouveau mot de passe racine MySQL :

 


11 Installez Amavisd-new, SpamAssassin, ClamAV, et Postgrey

Pour installer amavisd-new, SpamAssassin et ClamAV, exécutez la commande suivante  :

yum -y install amavisd-new spamassassin clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd unzip bzip2 perl-DBD-mysql postgrey re2c

Editez le fichier de configuration freshclam  /etc/freshclam.conf

nano /etc/freshclam.conf

et verifiez que la ligne "Example" soit désactivée comme indiqué ci-dessous :

 [....]
# Example
[....]

Pour activer la signature automatique ClamAV actualisée avec freshclam, éditez le fichier  /etc/sysconfig/freshclam:

nano /etc/sysconfig/freshclam

et placez un  # en face de la dernière ligne de telle sorte que cela ressemble à ceci, si ce n’était pas encore le cas :

# FRESHCLAM_DELAY=

Ensuite on démarre freshclam, amavisd, et clamd.amavisd :

sa-update
freshclam
systemctl enable amavisd.service
systemctl start amavisd.service
systemctl start [email protected]
systemctl enable postgrey.service
systemctl start postgrey.service

 


12. Installez Apache avec mod_php, mod_fcgi/PHP, PHP-FPM

ISPConfig 3 vous autorise à utiliser mod_php, mod_fcgi/PHP, cgi/PHP, et  PHP-FPM sur la base de deux  sites web.

On peut installer Apache2 avec mod_php, mod_fcgid, et PHP comme ceci :

yum -y install php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel mod_fcgid php-cli httpd-devel php-fpm wget

Ensuite on ouvre  /etc/php.ini...

nano /etc/php.ini

... modifiez l’erreur reportée (pour que ces mentions n’apparaissent plus), sélectionnez la zone temps et décommentez cgi.fix_pathinfo=1:

[...]

;error_reporting = E_ALL & ~E_DEPRECATED

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT

[...]

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's

; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok

; what PATH_INFO is.  For more information on PAppp.tldTH_INFO, see the cgi specs.  Setting

; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting

; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts

; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

; http://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo

cgi.fix_pathinfo=1
[...]
date.timezone = 'Europe/Berlin'

[...]

Activez  httpd et PHP-FPM pour que cela débute lors du démarrage et démarrez le service PHP-FPM.

systemctl start php-fpm.service
systemctl enable php-fpm.service
systemctl enable httpd.service

Enfin, on redémarre Apache:

systemctl restart httpd.service

Maintenant on va ajouter une assistance pour Let's encrypt.

mkdir /opt/certbot
cd /opt/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto

A présent exécutez la commande certboot-auto qui va télécharger et installer le logiciel et ses suites.

./certbot-auto

La commande doit ensuite vous indiquer "aucun nom trouvé dans votre fichier de configuration " et vous demander s’il faut continuer, s’il vous plaît choisissez "c" pur annuler ici , car les certificats seront créés par ispconfig.