Requeriments previs

De Lordwektabyte Wiki
Salta a la navegació Salta a la cerca

PHP 7

Haurem d'afegir primer el repositori EPEL amb

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

i el repositori REMI:

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

També serà necessari instal·lar una utilitat de yum que permet canviar repositoris per defecte, de manera que quan instal·lem PHP, ens agafi el del repositori EPEL amb la versió 7:

yum install yum-utils

Una vegada instal·lades aquestes utilities, seleccionarem el repositori que volem activar segons la sub-versió que volguem instal·lar de PHP: 7.0, 7.1 o 7.2: En aquest cas, instal·lo la versió 7.2

yum-config-manager --enable remi-php72

Una vegada activat el repo amb la versió de PHP seleccionada, instal·larem la versió 7.2 amb la comanda

yum install php php-mcrypt php-cli php-gd php-curl php-mysql php-ldap php-zip php-fileinfo

Per a comprovar la versió de PHP que està instal·lada i en funcionament actualment podem executar un

php -v

I ens donarà una sortida:

PHP 7.2.12 (cli) (built: Nov  6 2018 16:40:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Això és senyal que s'ha instal·lat i està a punt el PHP 7.2.5. Ara és qüestió de recarregar la configuració del servidor web Apache perquè utilitzi la versió PHP nova.

systemctl reload httpd

Development tools

Segons la documentació, hem d'instal·lar un conjunt de paquets amb la següent comanda:

yum -y groupinstall 'Development Tools'

Apache, MariaDB, PHPMyAdmin

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin

Dovecot

yum -y install dovecot dovecot-mysql dovecot-pigeonhole

Crearem un arxiu de configuració buit per al Dovecot:

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

Habilitarem l'engegada automàtica i arrencarem el servei per primera vegada:

systemctl enable dovecot
systemctl start dovecot

Postfix

Instal·larem el programari postfix (pot ser que vagi preinstal·lat amb la minimal install de CentOS):

yum -y install postfix

També engegarem i habilitarem el servidor MariaDB per a la base de dades i reiniciarem el servei de postfix

systemctl enable mariadb
systemctl start mariadb

systemctl enable postfix
systemctl restart postfix

Getmail

L'instal·larem com la resta de paquets

yum -y install getmail

Posada a punt MariaDB

Executarem el mysql_secure_installation per tal de configurar una contrasenya de root per al MariaDB, eliminar taules d'exemple, etc.

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  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] 
 ... 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] 
 ... 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] 
 - 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] 
 ... 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!

Configuració Apache - PHPMyAdmin

Obrirem l'arxiu /etc/httpd/conf.d/phpMyAdmin.conf amb un editor de text i buscarem la aquesta secció i la deixarem de la següent manera:

(...)

<IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       #Require ip 127.0.0.1
       #Require ip ::1
        Require all granted
     </RequireAny>
   </IfModule>

(...)

Després canviarem el mètode d'autenticació de PHPMyAdmin editant l'arxiu /etc/phpMyAdmin/config.inc.php de manera que tingui el següent contingut a la secció corresponent. Canviarem el valor per defecte cookie per http.

(...)

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

(...)

Habilitarem l'arrencada automàtica del servidor web Apache (httpd) i el reiniciarem per carregar els canvis:

systemctl enable  httpd
systemctl restart  httpd

Instal·larem Amavisd-new, SpamAssassin, ClamAV, i Postgrey

Se'ns instal·laran moltes dependències (uns 180MB entre tot, al moment d'escriure això).

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

Configuració ClamAV

Editarem l'arxiu /etc/freshclam.conf i comprovarem que la línia amb Example estigui comentada:

(...)

# Comment or remove the line below.
#Example

(...)

Per tal d'actualitzar automàticament les firmes de malware de ClamAV editarem l'arxiu /etc/sysconfig/freshclam i verificarem que la línia següent estigui comentada:

(...)

# FRESHCLAM_DELAY=

Posada en marxa

Arrencarem els 3 serveis de la manera següent, després d'actualitzar les firmes de malware:

sa-update
freshclam
systemctl enable amavisd.service
systemctl start amavisd.service
systemctl start clamd@amavisd.service
systemctl enable postgrey.service
systemctl start postgrey.service
  • Problema

Si al fer start de amavisd ens surt un error i no arrenca el servei, podem revisar què ha passat amb la comanda journalctl -xe i podem veure, en aquest cas:

nov 22 15:40:03 baseCentOS7 amavisd[21940]:The value of variable $myhostname is "baseCentOS7", but should have been
nov 22 15:40:03 baseCentOS7 amavisd[21940]: a fully qualified domain name; perhaps uname(3) did not provide such.
nov 22 15:40:03 baseCentOS7 amavisd[21940]: You must explicitly assign a FQDN of this host to variable $myhostname
nov 22 15:40:03 baseCentOS7 amavisd[21940]: in amavisd.conf, or fix what uname(3) provides as a host's network name!
  • Solució

Per tal de definir un FQDN (Fully-Qualified Domain Name) per a la màquina, editarem l'arxiu /etc/sysconfig/network i a la línia següent hi posarem el nom de host nou:

HOSTNAME=ispconfig.local

Per a ser consistents, haurem d'editar l'arxiu /etc/hosts per tal que la màquina sàpiga que aquell nom de domini és ella mateixa. Tenint en compte que aquesta màquina té IP 192.168.56.100, afegirem una línia nova a l'arxiu amb el següent contingut:

192.168.56.100 ispconfig.local ispconfig

Una vegada fet això, per aplicar-ho al mateix moment, farem servir la comanda hostname per a definir el nom de màquina i aplicar-ho:

hostname ispconfig.local

Sempre és bo fer un reinici per tal d'assegurar-nos que els canvis s'han aplicat: init 6

En aquest punt, podem executar systemctl start amavisd.service i no hauria de donar problemes i seguir amb les comandes de l'apartat anterior.

Instal·lació de mòduls Apache: mod_php, mod_fcgi/PHP, PHP-FPM

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

Configuració PHP

Editarem l'arxiu /etc/php.ini i deshabilitarem la mostra d'errors, configurar la zona horària i descomentar cgi.fix_pathinfo=1 de manera que, les línies corresponents, quedin de la manera següent:

(...)

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

(...)

date.timezone = 'Europe/Andorra'

(...)

cgi.fix_pathinfo=1

(...)

Habilitarem PHP-FPM i Apache de nou per tal d'aplicar aquest canvi en el motor de PHP:

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

Suport per a Let's Encrypt (SSL)

Descarregarem el programari:

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

Executarem certbot-auto. Ens sortirà el missatge no names were found in your configuration files. El que farem serà cancel·lar amb c ja que els certificats els farà el propi ISPConfig i aquest script només ens instal·larà possibles dependències que no tinguem i configurarà aspectes de Python com ara els virtual-envs:

[root@ispconfig certbot]# ./certbot-auto

(...)

Completat!
Creating virtual environment...
Installing Python packages...
Installation succeeded.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): guillem_solaboeck@iescarlesvallbona.cat

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: a

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
No names were found in your configuration files. Please enter in your domain
name(s) (comma and/or space separated)  (Enter 'c' to cancel): c
Please specify --domains, or --installer that will help in domain names autodiscovery, or --cert-name for an existing certificate name.

IMPORTANT NOTES:
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.

Instal·lació mod_python

Pot ser que ja estigui instal·lat; sinó:

yum -y install python-devel

Llavors descarregarem el source code del mòdul i el compilarem:

cd /usr/local/src/
wget http://dist.modpython.org/dist/mod_python-3.5.0.tgz
tar xfz mod_python-3.5.0.tgz
cd mod_python-3.5.0

./configure
make

Abans de fer la instal·lació, executarem la següent ordre per evitar un problema que encalla la instal·lació:

sed -e 's/(git describe --always)/(git describe --always 2>\/dev\/null)/g' -e 's/`git describe --always`/`git describe --always 2>\/dev\/null`/g' -i $( find . -type f -name Makefile\* -o -name version.sh )

Després ja podrem:

make install

Habilitarem el mòdul a la configuració d'Apache i farem un restart del servei per recarregar el mòdul:

echo 'LoadModule python_module modules/mod_python.so' > /etc/httpd/conf.modules.d/10-python.conf
systemctl restart httpd

PureFTPd

Instal·lem:

yum -y install pure-ftpd

Habilitem arrencada automàtica i engeguem:

systemctl enable pure-ftpd.service
systemctl start pure-ftpd.service

Suport FTPS (FTP+SSL)

Instal·larem OpenSSL en cas de no estar instal·lat:

yum install openssl

Editarem l'arxiu /etc/pure-ftpd/pure-ftpd.conf per permetre que PureFTP pugui aprofitar els avantatges de SSL per a oferir una protecció al protocol FTP. Descomentarem la línia següent de manera que quedi així:

TLS                      1 #El valor 1 significa que es permetran connexions tant xifrades com sense xifrar. Altres valors serien més restrictius: obligar a usar TLS o bé prohibir-lo totalment; per exemple

Per a usar SSL/TLS haurem de crear certificats:

mkdir -p /etc/ssl/private/

[root@ispconfig ~]# openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Generating a 2048 bit RSA private key
.................................................................+++
.........+++
writing new private key to '/etc/ssl/private/pure-ftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:ES
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:Tona
Organization Name (eg, company) [Default Company Ltd]:GSB
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:ispconfig.local
Email Address []:guillem_solaboeck@iescarlesvallbona.cat

[root@ispconfig ~]# chmod 600 /etc/ssl/private/pure-ftpd.pem

[root@ispconfig ~]# openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.......................................................+........................................................................................+.............+........................................................................................+..........................................................................+........................+............................................................................................................
(...)
...............................................+..........+............................................................................................................................+.....................................................................+..........+............+.........................................................++*++*

Finalment, reiniciem el servidor FTP perquè recarregui el certificat TLS generat i pugui fer-lo servir en les comunicacions que ho demanin:

[root@ispconfig ~]# systemctl restart pure-ftpd.service

Instal·lació BIND

yum -y install bind bind-utils haveged

Farem una còpia de l'arxiu named.conf per defecte i en farem un de nou:

cp /etc/named.conf /etc/named.conf_bak
cat /dev/null > /etc/named.conf

I en farem un de nou amb el següent contingut:

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { any; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
				allow-recursion {"none";};
        recursion no;
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.conf.local";

Per acabar, crearem l'arxiu /etc/named.conf.local que serà el que ISPConfig vagi omplint si afegim noves zones des d'allà:

touch /etc/named.conf.local

Finalment, habilitarem l'arrencada automàtica i engegarem els serveis:

systemctl enable named.service
systemctl start named.service
systemctl enable haveged.service
systemctl start haveged.service

Instal·lació Webalizer i AWStats

yum -y install webalizer awstats perl-DateTime-Format-HTTP perl-DateTime-Format-Builder

Editarem l'arxiu /etc/httpd/conf.d/awstats.conf i deixarem la línia Require local d'aquesta manera:

Require all granted

Reiniciarem el servei per a aplicar els canvis:

systemctl restart httpd.service

Instal·lació Jailkit

És utilitzat per fer chroot als usuaris SSH i als cronjobs.

Nota: és important instal·lar-lo abans de ISPConfig; no pot ser instal·lat després.
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
./configure
make
make install
cd ..
rm -rf jailkit-2.19*

Instal·lació Fail2Ban

És opcional però recomanable; ja que ISPConfig intenta mostrar-ne els logs.

yum -y install iptables-services fail2ban fail2ban-systemd

Fail2ban fa servir iptables per a aplicar les restriccions; per tant, deshabilitarem el firewall del sistema per evitar conflictes:

systemctl stop firewalld.service
systemctl mask firewalld.service
systemctl disable firewalld.service
systemctl stop firewalld.service

Configuració

Editarem l'arxiu /etc/fail2ban/jail.local i hi posarem el contingut:

[sshd]
enabled = true
action = iptables[name=sshd, port=ssh, protocol=tcp]

[pure-ftpd]
enabled = true
action = iptables[name=FTP, port=ftp, protocol=tcp]
maxretry = 3

[dovecot]
enabled = true
action = iptables-multiport[name=dovecot, port="pop3,pop3s,imap,imaps", protocol=tcp]
maxretry = 5

[postfix-sasl]
enabled = true
action = iptables-multiport[name=postfix-sasl, port="smtp,smtps,submission", protocol=tcp]
maxretry = 3

L'engegarem i habilitarem la càrrega automàtica:

systemctl enable fail2ban.service
systemctl start fail2ban.service

Instal·lació rkhunter

yum -y install rkhunter

Instal·lació Mailman

Permet fer llistes de distribució de correu. Com que és compatible amb ISPConfig, permetrà crear noves llistes des de l'ISPConfig mateix:

yum -y install mailman

Una vegada instal·lat, hem de crear una mail list original:

[root@ispconfig ~]# touch /var/lib/mailman/data/aliases

[root@ispconfig ~]# postmap /var/lib/mailman/data/aliases

[root@ispconfig ~]# /usr/lib/mailman/bin/newlist mailman
Introduïu l'adreça electrònica de l'encarregat de la llista: guillem_solaboeck@iescarlesvallbona.cat
Contrasenya inicial de mailman: 
Haureu d'editar el fitxer /etc/aliases (o equivalent) per a finalitzar la
creació de la vostra llista de correu. Hi haureu d'afegir les línies
següents i possiblement executar el programa «newaliases»:

## Llista de correu mailman
mailman:              "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"

Premeu la tecla de retorn per a notificar el propietari de mailman...


[root@ispconfig ~]# ln -s /usr/lib/mailman/mail/mailman /usr/bin/mailman

Tal com ens ha suggerit, editarem el fitxer /etc/aliases i hi afegirem el següent contingut al final:

(...)

mailman:              "|/usr/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/usr/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/usr/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/usr/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/usr/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/usr/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/usr/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/usr/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/usr/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/usr/lib/mailman/mail/mailman unsubscribe mailman"

I executarem la següent comanda:

newaliases

Reiniciarem Postfix:

systemctl restart postfix.service

Ara obrirem l'arxiu de configuració de Mailman - Apache /etc/httpd/conf.d/mailman.conf. . Comment out Alias /pipermail/ /var/lib/mailman/archives/public/ and add the line Alias /pipermail /var/lib/mailman/archives/public/

  • Afegirem ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/
  • Comentarem Alias /pipermail/ /var/lib/mailman/archives/public/
  • Afegirem Alias /pipermail /var/lib/mailman/archives/public/

De manera que quedi l'arxiu:

#
#  httpd configuration settings for use with mailman.
#

ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
ScriptAlias /cgi-bin/mailman/ /usr/lib/mailman/cgi-bin/
<Directory /usr/lib/mailman/cgi-bin/>
    AllowOverride None
    Options ExecCGI
    Require all granted
</Directory>


#Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /pipermail /var/lib/mailman/archives/public/
<Directory /var/lib/mailman/archives/public>
    Options MultiViews FollowSymLinks
    AllowOverride None
    Require all granted
    AddDefaultCharset Off
</Directory>

# Uncomment the following line, replacing www.example.com with your server's
# name, to redirect queries to /mailman to the listinfo page (recommended).

# RedirectMatch ^/mailman[/]*$ http://www.example.com/mailman/listinfo

Restart Apache:

systemctl restart httpd.service

Habilitar i arrencar mailman:

systemctl enable mailman.service
systemctl start mailman.service

Ens arribarà un correu electrònic com a owners de la mail list que hem creat.

Instal·lació Roundcube Mail

Roundcube és un client de correu web: com ara l'aplicació de Gmail o Outlook per accedir al correu de G00gle o Micro$oft, respectivament.

yum -y install roundcubemail

Configurarem l'arxiu de l'Apache nano /etc/httpd/conf.d/roundcubemail.conf i el deixarem de la següent manera:

Línies modificades:
  • Nº 6: Afegir Alias /webmail /usr/share/roundcubemail
  • Nº 11-23: Comentar tot el bloc <Directory>
  • Nº 25: Afegir
<Directory /usr/share/roundcubemail/>
        Options none
        AllowOverride Limit
        Require all granted
</Directory>
  • Nº 34-46: Comentar tot el bloc <Directory>
  • Nº 48: Afegir
<Directory /usr/share/roundcubemail/installer>
        Options none
        AllowOverride Limit
        Require all granted
</Directory>

Resultat:

#
# Round Cube Webmail is a browser-based multilingual IMAP client
#

Alias /roundcubemail /usr/share/roundcubemail
Alias /webmail /usr/share/roundcubemail

# Define who can access the Webmail
# You can enlarge permissions once configured

#<Directory /usr/share/roundcubemail/>
#    <IfModule mod_authz_core.c>
#        # Apache 2.4
#        Require local
#    </IfModule>
#    <IfModule !mod_authz_core.c>
#        # Apache 2.2
#        Order Deny,Allow
#        Deny from all
#        Allow from 127.0.0.1
#        Allow from ::1
#    </IfModule>
#</Directory>

<Directory /usr/share/roundcubemail/>
        Options none
        AllowOverride Limit
        Require all granted
</Directory>

# Define who can access the installer
# keep this secured once configured

#<Directory /usr/share/roundcubemail/installer/>
#    <IfModule mod_authz_core.c>
#        # Apache 2.4
#        Require local
#    </IfModule>
#    <IfModule !mod_authz_core.c>
#        # Apache 2.2
#        Order Deny,Allow
#        Deny from all
#        Allow from 127.0.0.1
#        Allow from ::1
#    </IfModule>
#</Directory>

<Directory /usr/share/roundcubemail/installer>
        Options none
        AllowOverride Limit
        Require all granted
</Directory>


# Those directories should not be viewed by Web clients.
<Directory /usr/share/roundcubemail/bin/>
    Order Allow,Deny
    Deny from all
</Directory>
<Directory /usr/share/roundcubemail/plugins/enigma/home/>
    Order Allow,Deny
    Deny from all
</Directory>

Després, reiniciem Apache per recarregar configuració nova:

systemctl restart httpd

Configuració de Roundcube

Crearem una base de dades per al Roundcube amb la consola de MariaDB:

mysql -uroot -p

I a la consola de MariaDB escirurem:

CREATE DATABASE roundcubedb;

CREATE USER roundcubeuser@localhost IDENTIFIED BY 'roundcubepassword';

GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser@localhost

FLUSH PRIVILEGES;

exit

Després, començarem la posada a punt des de la xarxa a través de la URL http://192.168.56.100/roundcubemail/installer:

M08ISPCONFIG1.png


Problema: veiem l'únic avís de NOT OK que és la versió de PHP. La versió instal·lada de Roundcube (1.1.x) no és compatible amb PHP 7.
S'ha produït un error en crear la miniatura: No es pot desar la miniatura a la destinació


Segons la web de Roundcube, a la secció de Releases, veiem com Roundcube 1.2 és compatible. Aleshores, sembla més factible descarregar la versió 1.2 de Roundcube i actualitzar la instal·lació en comptes d'intentar fer una barreja de versions de PHP.

Solució:

Primer de tot, aturaré el servei web per evitar que mentre canvio els arxiu del directori web de Roundcube algú faci una petició i es malmeti:

systemctl stop httpd

Després faré una còpia del directori actual on Roundcube s'ha instal·lat /usr/share/roundcubemail per poder tornar enrere i prendre alguna altra decisió si l'actualització no va bé.

mv /usr/share/roundcubemail /usr/share/roundcubemail.bak

Ara descarregaré la versió 1.2 des de la web oficial fent servir wget i descomprimiré el directori resultant a /var/www/html per simplificar la configuració d'Apache.

cd /tmp
wget https://github.com/roundcube/roundcubemail/releases/download/1.2.9/roundcubemail-1.2.9-complete.tar.gz
tar -xf roundcubemail-1.2.9-complete.tar.gz
mv roundcubemail-1.2.9 roundcubemail
mv roundcubemail /var/www/html/roundcubemail
chown -R apache.apache roundcubemail-1.2.9

"Desactivaré" l'arxiu .conf que s'ha generat a /etc/httpd/conf.d/roundcubemail.conf durant la instal·lació des de repositoris:

mv /etc/httpd/conf.d/roundcubemail.conf /etc/httpd/conf.d/roundcubemail.conf.bak

En aquest punt, hauríem de poder engegar Apache de nou i accedir a la pàgina web de l'instal·lador de Roundcube:

systemctl start httpd

I tornar a accedir a la web per començar la instal·lació de Roundcube:

Aquesta vegada no tenim cap NO OK i podem clicar Next


El següent pas és definir paràmetres de la instal·lació:

M08ISPCONFIG4.png


M08ISPCONFIG5.png


Quan ho tinguem llest, a baix de tot trobarem el botó: create config i quan el cliquem ens retornarà a la part superior i tindrem el botó de Continue

M08ISPCONFIG6.png


El següent pas és inicialitzar la BBDD amb el que Roundcube necessiti com a base per a posar-se en marxa:

Farem clic a Initialize database


Un cop inicialitzada, tindrem també l'aprovació amb un OK de color verd

M08ISPCONFIG8.png


També podem comprovar que el servidor de correu funciona enviant un correu de prova:

S'ha produït un error en crear la miniatura: No es pot desar la miniatura a la destinació


...i comprovar que el receptor l'hagi rebut

M08ISPCONFIG10.png


Una vegada testejat i funcionant, editarem el fitxer /var/www/html/roundcubemail/config/config.inc.php per tal de deshabilitar l'instal·lador; perquè ningú pugui tornar a fer una instal·lació i sabotejar la nostra o extreure dades sensibles com ara usuaris i contrasenyes d'accés a la BBDD. Afegirem la següent línia al final del fitxer:

$config['enable_installer'] = false;

Ara ja podem navegar a http://192.168.56.100/roundcubemail i veure la pantalla de login:

M08ISPCONFIG11.png



Amb això acaba la secció de requeriments previs. En la següent secció passem a instal·lar l'ISPConfig en sí.