ISPConfig es un panel de control gratuito que permite administrar sitios web, direcciones de correo electrónico y registros DNS  a través de su panel de control web. El software tiene 3 perfiles de usuario: administrador, cliente y revendedor.

Desde el interfaz web se puede administrar servidores únicos o múltiples desde un panel de control, gestionar servidores web para Apache y Nginx, administrar el servidor DNS (BIND, Powerdns y MyDNS), crear revendedores, gestionar servidores virtuales con OpenVZ y visualizar las estadísticas de los sitios web con Webalizer o AWStats.

panel de control hosting ispconfig

Características técnicas ISPConfig

Con el objetivo de conocer más profundamente este panel de control hosting y todas sus variantes, vamos a hablar de las características técnicas de ISPConfig:

  • Interfaz Web: 22 lenguajes
  • DNS: BIND y MyDNS
  • Web: Apache2 y nginx
  • Anti-Spam: SpamAssasin
  • Antivirus: ClamAv
  • Imap / Pop3 Server: Courier y Dovecot
  • Mail Server: Postfix + Round Cube
  • BBDD: MySQL + PHPMyAdmin
  • FTP: PureFTPd
  • Estadísticas: Webalizer y AWStats

Requisitos del servidor para instalar ISPConfig

Para realizar la instalación de ISPConfig necesitamos que nuestro servidor sea Linux ya sea Virtual o Físico, y que tenga instalada alguna de las siguientes distribuciones:

  • Debian 5 -8 (Recomendado)
  • Ubuntu 8.10 – 17.04 (Recomendado)
  • CentOS 5.2 – 7
  • Fedora 10 and 12 – 15
  • OpenSuSE 11.1 – 12.3

Instalación de ISPConfig

Vamos a explicar paso a paso como instalar el panel de control ISPConfig. En primer lugar para realizar la instalación de ISPConfig tenemos que tener acceso a nuestro servidor a través de SSH ya que todo el proceso se realiza a través de la línea de comandos.

Configuración Firewall

Desactivamos el servicio firewalld

systemctl stop firewalld.service

systemctl disable firewalld.service

Comprobamos que el firewall ha sido desactivado

iptables -L

[root@server1 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Deshabilitar SELinux

Deshabilitamos SElinux, para ello editamos el fichero /etc/selinux/config y cambiamos el valor de la variable SELINUX=disabled

vi /etc/selinux/config

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing – SELinux security policy is enforced.

#     permissive – SELinux prints warnings instead of enforcing.

#     disabled – No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted – Targeted processes are protected,

#     mls – Multi Level Security protection.

SELINUXTYPE=targeted

Reiniciamos el servidor: reboot

Habilitar e instalar repositorios

Importamos las claves GPG para los paquetes:

rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Instalamos el repositorio EPEL:

rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-2.noarch.rpm

yum -y install yum-priorities

Editamos el fichero /etc/yum.repos.d/epel.repo y añadimos la línea priority=10 en la sección epel.

[epel]name=Extra Packages for Enterprise Linux 7 – $basearch#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearchmirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearchfailovermethod=priorityenabled=1priority=10gpgcheck=1                                                              gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7[…]

Actualizamos los paquetes del sistema:

yum update

Instalamos los paquetes que vamos a necesitar:

yum –y groupinstall ‘Development Tools’

Instalar Apache, MySQL y phpMyAdmin

Instalamos Apache, MySQL y phpMyAdmin

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

Instalar Dovecot

Instalamos Dovecot

yum -y install dovecot dovecot-mysql dovecot-pigeonhole

Creamos el fichero en blanco dovecot-sql.conf y un enlace simbólico

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

Habilitamos e iniciamos el servicio dovecot

systemctl enable dovecot
systemctl start dovecot

Instalar Postfix

Procedemos a instalar el servicio de correo Postfix

yum –y install postfix

Desactivamos el servicio Sendmail e iniciamos el servicio Postfix y 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

Instalar Getmail

Procedemos a instalar el servicio getmail

Yum –y install getmail

Establecer clave MySQL y configurar phpMyAdmin

Procedemos a establecer la clave del usuario root del servicio MySQL

mysql_secure_installation

[root@server1 tmp]# 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] <– ENTER
New password: <– yourrootsqlpassword
Re-enter new password: <– yourrootsqlpassword
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] <– 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!

[root@server1 tmp]#

A continuación vamos a configurar la herramienta phpMyAdmin para poder permitir conexiones a phpmyadmin desde cualquier ip necesitamos editar la configuración de phpMyAdmin en la configuración de Apache:

vi /etc/hhtpd/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/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/>   <IfModule mod_authz_core.c>     # Apache 2.4     <RequireAny>     #  Require ip 127.0.0.1     #  Require ip ::1
Require all granted     </RequireAny>   </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>

Cambiamos la autentificación en phpMyAdmin de cookie a http, para ello editamos el fichero /etc/phpMyAdmin/config.inc.php

[…]/* Authentication type */$cfg[‘Servers’][$i][‘auth_type’] = ‘http’;[…]

Habilitamos el servicio Apache y lo reiniciamos

systemctl enable httpd.service

    systemctl restart httpd.service

Instalar Amavisd-new, SpamAssasin y ClamAV

Procedemos a instalar Amavis, SpamAssasin y ClamAV

yum -y install amavisd-new spamassassin clamav clamd clamav-update unzip bzip2 unrar perl-DBD-mysql

Editamos el fichero de configuración /etc/freshclam.conf y comentamos la línea Example

vi /etc/freshclam.conf

[….]
#Example
[….]

Inicamos freshclam, amavisd y clamd.amavisd:

sa-update

freshclam
systemctl enable amavisd.service

Instalar Apache2 con mod_php, mod_fcgi/PHP5, PHP-FPM y suPHP

Procedemos a instalar Apache2 con mod_php5, mod_fcgid y PHP5.

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

Editamos el fichero /etc/php.ini y cambiamos los reportes de error y establecemos la zona horaria cgi.fix_pathinfo=1

[…];error_reporting = E_ALL & ~E_DEPRECATEDerror_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED[…]; 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-pathinfocgi.fix_pathinfo=1
[…]
date.timezone = ‘Europe/Berlin'[…]

Instalamos suPHP

cd /usr/local/src
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz

CentOS 7 utiliza apache-2.4, por lo que necesitamos un parche suphp antes de poder compilarlo. El parche se aplica de la siguiente manera:

wget -O suphp.patch https://lists.marsching.com/pipermail/suphp/attachments/20130520/74f3ac02/attachment.patch
patch -Np1 -d suphp-0.7.2 < suphp.patch
cd suphp-0.7.2
autoreconf –if

[root@server1 suphp-0.7.2]# autoreconf -if
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `config’.
libtoolize: copying file `config/ltmain.sh’
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])’ to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
libtoolize: Consider adding `-I m4′ to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:9: warning: AM_INIT_AUTOMAKE: two- and three-arguments forms are deprecated.  For more info, see:
configure.ac:9: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_005fINIT_005fAUTOMAKE-invocation
configure.ac:24: installing ‘config/config.guess’
configure.ac:24: installing ‘config/config.sub’
configure.ac:9: installing ‘config/install-sh’
configure.ac:9: installing ‘config/missing’
src/Makefile.am: installing ‘config/depcomp’
[root@server1 suphp-0.7.2]#

Compilamos la nueva fuente:

./configure –prefix=/usr/ –sysconfdir=/etc/ –with-apr=/usr/bin/apr-1-config –with-apache-user=apache –with-setid-mode=owner –with-logfile=/var/log/httpd/suphp_log
make
make install

Añadimos el módulo suPHP a la configuración de Apache:

vi /etc/httpd/conf.d/suphp.conf

LoadModule suphp_module modules/mod_suphp.so

Creamos el fichero /etc/suphp.conf:

vi /etc/suphp.conf

[global];Path to logfilelogfile=/var/log/httpd/suphp.log;Loglevelloglevel=info;User Apache is running aswebserver_user=apache;Path all scripts have to be indocroot=/;Path to chroot() to before executing script;chroot=/mychroot; Security optionsallow_file_group_writeable=trueallow_file_others_writeable=falseallow_directory_group_writeable=trueallow_directory_others_writeable=false;Check wheter script is within DOCUMENT_ROOTcheck_vhost_docroot=true;Send minor error messages to browsererrors_to_browser=false;PATH environment variableenv_path=/bin:/usr/bin;Umask to set, specify in octal notationumask=0077; Minimum UIDmin_uid=100; Minimum GIDmin_gid=100 [handlers];Handler for php-scriptsx-httpd-suphp=”php:/usr/bin/php-cgi”;Handler for CGI-scriptsx-suphp-cgi=”execute:!self”

Editamos el archivo /etc/httpd/conf.d/php.conf para habilitar el análisis php sólo para phpmyadmin, roundcube y otros paquetes del sistema en /usr/share, pero no para los sitios web en /var /www, ya que ISPConfig activará PHP para cada sitio web de forma individual.

Vi /etc/httpd/conf.d/php.conf

Cambiamos las líneas:

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Por:

<Directory /usr/share>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
</Directory>

Habilitamos e iniciamos los servicios Apache y PHP-FPM

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

systemctl restart httpd.service

Instalar mod_python

El módulo apache mod_python no está disponible como paquete RPM, por lo que lo compilaremos desde el origen. El primer paso es instalar los archivos de desarrollo de python y descargar la versión actual de mod_python como archivo tar.gz

yum -y install python-devel

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

Configuramos y compilamos el módulo:

./configure
make
make install

Habilitamos el módulo en Apache:

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

Instalar PureFTPd

Procedemos a instalar el servicio pure-ftpd:

Yum –y install pure-ftpd

Habilitamos el servicio y lo iniciamos:

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

Ahora configuramos PureFTPd para permitir sesiones FTP y TLS. FTP es un protocolo muy inseguro porque todas las contraseñas y todos los datos se transfieren en texto plano. Mediante el uso de TLS, toda la comunicación puede ser cifrada, lo que hace FTP mucho más seguro.

OpenSSL requiere TLS; Para instalar OpenSSL, simplemente ejecutamos:

Yum install openssl

Abrir /etc/pure-ftpd/pure-ftpd.conf

Vi /etc/pure-ftpd/pure-ftpd.conf

Si queremos permitir sesiones FTP y TLS, establecemos TLS en 1:

[…]# This option can accept three values :# 0 : disable SSL/TLS encryption layer (default).# 1 : accept both traditional and encrypted sessions.# 2 : refuse connections that don’t use SSL/TLS security mechanisms,#     including anonymous sessions.# Do _not_ uncomment this blindly. Be sure that :# 1) Your server has been compiled with SSL/TLS support (–with-tls),# 2) A valid certificate is in place,# 3) Only compatible clients will log in. TLS                      1[…]

Para usar TLS, debemos crear un certificado SSL. Lo creamos en el directorio /etc/ssl/private/, para ello creamos primero ese directorio:

Mkdir –p /etc/ssl/private

Generamos el certificado SSL:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Country Name (2 letter code) [XX]: <– Enter your Country Name (e.g., “DE”).
State or Province Name (full name) []:<– Enter your State or Province Name.
Locality Name (eg, city) [Default City]:<– Enter your City.
Organization Name (eg, company) [Default Company Ltd]:<– Enter your Organization Name (e.g., the name of your company).
Organizational Unit Name (eg, section) []:<– Enter your Organizational Unit Name (e.g. “IT Department”).
Common Name (eg, your name or your server’s hostname) []:<– Enter the Fully Qualified Domain Name of the system (e.g. “server1.example.com”).
Email Address []:<– Enter your Email Address.

Cambiamos los permisos al certificado SSL:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Reiniciamos el servicio PureFTPd:

systemctl restart pure-ftpd.service

Instalar BIND

Procedemos a instalar Bind:

yum -y install bind bind-utils

Realizamos un backup del fichero named.conf y creamos uno nuevo:

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

//// 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”;

Creamos un archivo /etc/named.conf.local , que es incluido al final del fichero /etc/named.conf

touch /etc/named.conf.local

Procedemos a habilitar el servicio y lo iniciamos:

systemctl enable named.service
systemctl start named.service

Instalar Webalizer y AWStats

       Procedemos a instalar Webalizer y AWStats:

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

Instalar Jailkit

Procedemos a instalar Jailkit, esta herramienta se utiliza para chroot SSH usuarios y cronjobs:

cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz
tar xvfz jailkit-2.17.tar.gz
cd jailkit-2.17
./configure
make
make install
cd ..
rm -rf jailkit-2.17*

Instalar fail2ban

Procedemos a instalar fail2ban, esta herramienta es opcional pero es muy recomendable:

yum -y install fail2ban

Procedemos a habilitar e iniciar el servicio:

systemctl enable fail2ban.service
systemctl start fail2ban.service

Instalar rkhunter

Procedemos a instalar rkhunter:

yum -y install rkhunter

Instalar Mailman

Procedemos a instalar Mailman, con esta herramienta podremos crear listas de correo:

yum -y install mailman

Procedemos a crear una lista de correo llamada mailman:

touch /var/lib/mailman/data/aliases
/usr/lib/mailman/bin/newlist mailman

[root@server1 tmp]# /usr/lib/mailman/bin/newlist mailman
Enter the email of the person running the list: <– admin email address, e.g. listadmin@example.com
Initial mailman password: <– admin password for the mailman list
To finish creating your mailing list, you must edit your /etc/aliases (or
equivalent) file by adding the following lines, and possibly running the
`newaliases’ program:
## mailman mailing list
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”

Hit enter to notify mailman owner… <– ENTER
[root@server1 tmp]#

A continuación abrimos /etc/aliases

vi /etc/aliases

Añadimos las siguientes líneas:

[…]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”

Ejecutar

Newaliases

Reinicamos Postfix

systemctl restart postfix.service

Abrimos el fichero de configuración de Mailman de Apache /etc/httpd/conf.d/mailman.conf

/etc/httpd/conf.d/mailman.conf

Agregamos la línea ScriptAlias /cgi-bin /mailman / /usr /lib/mailman/cgi-bin/. Alias /pipermail / /var/lib/mailman/archives/public / y agrega la línea Alias /pipermail /var/lib/mailman/archives/public /:

##  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    Order allow,deny    Allow from all</Directory>  #Alias /pipermail/ /var/lib/mailman/archives/public/Alias /pipermail /var/lib/mailman/archives/public/<Directory /var/lib/mailman/archives/public>    Options Indexes MultiViews FollowSymLinks    AllowOverride None    Order allow,deny    Allow from all    AddDefaultCharset Off</Directory> # Uncomment the following line, to redirect queries to /mailman to the# listinfo page (recommended). # RedirectMatch ^/mailman[/]*$ /mailman/listinfo

Reiniciamos el servicio de Apache

systemctl restart httpd.service

Habilitamos el servicio e iniciamos el servicio Mailman

systemctl enable mailman.service
systemctl start mailman.service

Instalar Roundcube webmail

Procedemos a instalar la herramienta Roundcube:

yum -y install roundcubemail

Cambiamos la configuración del fichero /etc/httpd/conf.d/roundcubemail.conf

vi /etc/httpd/conf.d/roundcubemail.conf

## 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>~

Reiniciamos Apache

systemctl restart httpd.service

Necesitamos una base de datos MySQL para Roundcube , para ello realizamos los siguientes pasos:

mysql -u root –p

CREATE DATABASE roundcubedb;
CREATE USER roundcubeuser@localhost IDENTIFIED BY ’roundcubepassword’;
GRANT ALL PRIVILEGES on roundcubedb.* to roundcubeuser@localhost ;
FLUSH PRIVILEGES;
exit

Para finalizar la instalación de Roundcube es necesario acceder a la url: http://192.168.0.46/roundcubemail/installer

panel control hosting ispconfig

A continuación editamos le fichero de configuración de Roundcube:

Vi /etc/roundcubemail/config.inc.php

<?php /* Local configuration for Roundcube Webmail */ // ———————————-// SQL DATABASE// ———————————-// Database connection string (DSN) for read+write operations// Format (compatible with PEAR MDB2): db_provider://user:password@host/database// Currently supported db_providers: mysql, pgsql, sqlite, mssql or sqlsrv// For examples see http://pear.php.net/manual/en/package.database.mdb2.intro-dsn.php// NOTE: for SQLite use absolute path: ‘sqlite:////full/path/to/sqlite.db?mode=0646’$config[‘db_dsnw’] = ‘mysql://roundcubeuser:roundcubepassword@localhost/roundcubedb’; // ———————————-// IMAP// ———————————-// The mail host chosen to perform the log-in.// Leave blank to show a textbox at login, give a list of hosts// to display a pulldown menu or set one host as string.// To use SSL/TLS connection, enter hostname with prefix ssl:// or tls://// Supported replacement variables:// %n – hostname ($_SERVER[‘SERVER_NAME’])// %t – hostname without the first part// %d – domain (http hostname $_SERVER[‘HTTP_HOST’] without the first part)// %s – domain name after the ‘@’ from e-mail address provided at login screen// For example %n = mail.domain.tld, %t = domain.tld// WARNING: After hostname change update of mail_host column in users table is//          required to match old user data records with the new host.$config[‘default_host’] = ‘localhost’; // provide an URL where a user can get support for this Roundcube installation// PLEASE DO NOT LINK TO THE ROUNDCUBE.NET WEBSITE HERE!$config[‘support_url’] = ”; // this key is used to encrypt the users imap password which is stored// in the session record (and the client cookie if remember password is enabled).// please provide a string of exactly 24 chars.$config[‘des_key’] = ‘FHgaM7ihtMkM1cBwckOcxPdT’; // ———————————-// PLUGINS// ———————————-// List of active plugins (in plugins/ directory)$config[‘plugins’] = array(); // Set the spell checking engine. Possible values:// – ‘googie’  – the default// – ‘pspell’  – requires the PHP Pspell module and aspell installed// – ‘enchant’ – requires the PHP Enchant module// – ‘atd’     – install your own After the Deadline server or check with the people at http://www.afterthedeadline.com before using their API// Since Google shut down their public spell checking service, you need to // connect to a Nox Spell Server when using ‘googie’ here. Therefore specify the ‘spellcheck_uri’$config[‘spellcheck_engine’] = ‘pspell’;

A continuación, pulse el botón “continuar” en el instalador web. En la siguiente página, pulse el botón “Inicializar base de datos“.

Finalmente, deshabilite el instalador de Roundecubemail. Cambie el archivo de configuración de apacheroundcubemail:

vi /etc/httpd/conf.d/roundcubemail.conf

## 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> # 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>~

Reiniciamos Apache:

systemctl restart httpd.service

Reiniciamos Mailman:

systemctl restart mailman.service

Posteriormente puede acceder a ISPConfig 3 en http://server1.example.com:8080/ o http: //192.168.0.46:8080/ (http o https depende de lo que haya elegido durante la instalación). Inicie sesión con el nombre de usuario admin y la contraseña admin (debe cambiar la contraseña predeterminada después de su primer inicio de sesión).

acceso panel de control ispconfig

panel de control ispconfig utilidades

Manual ISPConfig 3

Para aprender a utilizar ISPConfig 3, recomendamos descargar ISPConfig 3 Manual.

En más de 300 páginas, cubre el concepto detrás de ISPConfig (admin, revendedores, clientes), explica cómo instalar y actualizar ISPConfig 3, incluye una referencia para todos los formularios y campos de formulario en ISPConfig junto con ejemplos de entradas válidas y proporciona tutoriales Para las tareas más comunes en ISPConfig 3. También indica cómo hacer que su servidor sea más seguro y viene con una sección de solución de problemas al final.

Enlaces interesantes ISPConfig

Enlaces interesantes de CentOS e ISPConfig:

CentOS: http://www.centos.org/

ISPConfig: http://www.ispconfig.org/

Manual de uso Panel de control ISPConfig

Una vez explicado el proceso de instalación del panel ISPConfig, vamos a explicar la interfaz y las utilidades del mismo para gestionar sitios webs.

Crear planes de hosting en ISPConfig

Lo primero que tenemos que hacer es crear un plan de hosting, para ello accedemos al panel de control ISPConfig, pulsamos en la opción “client” ,en el menú de la izquierda en la pulsamos en la opción “Templates” y por último “Add new record”.

crear planes hosting en ispconfig

A continuación rellenamos el formulario que nos aparece teniendo especial atención a los campos marcados con un “*”, una vez rellenados todos los campos pulsamos en “Save” y ya tendremos nuestro plan de hosting creado.

manual ispconfig

A continuación tenemos que configurar el plan de hosting, para ello pulsamos encima del nombre del plan que acabamos de crear y en la pestaña “Limits”.

panel control ispconfig limites interfaz

Configuramos los valores deseados, por ejemplo, podemos establecer el número de sitios web que se pueden crear (Max. Number of web domains), la cuota del plan (Web Quota) y el ancho de banda (Traffic Quota). Observamos que el valor que aparece por defecto en estos campos es “-1” (ilimitado) , en el campos de los campos indicados anteriormente es recomendable establecer unos limites, pero por ejemplo a la hora de crear cuentas FTP, subdominios, etc… podemos dejar el valor -1 ya que la creación de cuentas FTp o subdominios no ocupa espacio en el servidor.

Podemos personalizar las siguientes opciones:

personalizar panel de control hosting

Crear nuevo cliente en ISPconfig

Lo primero que tenemos que hacer es crear un nuevo cliente, para ello accedemos al panel de control ISPConfig y tenemos que realizar los siguientes pasos:

Accedemos a la opción “client” que se encuentra en la parte superior, pulsamos en el botón “add new client”.

cliente panel de control ispconfig

Para modificar el cliente o los recursos asignados tiene que pulsar encima del nombre del cliente. Si queremos acceder al panel de control del cliente tenemos que pulsar el botón verde que aparece justo al lado del país del cliente, y si queremos eliminarlo pulsamos en el botón rojo de la papelera.

Si queremos limitar los recursos de este cliente, tenemos que acceder al cliente y pulsar en la pestaña “Limits”.

limites en interfaz cliente panel control

Desde la sección Limits, podemos asignarle un template (plan de hosting) ya creado previamente o bien seleccionamos el template que aparece por defecto y lo editamos.

Además podemos convertir si queremos al cliente en Reseller.

Si continuamos una vez seleccionado el template queremos seguir modificando el cliente tenemos que seguir configurando los campos de la sección “web limits

En esta sección nos aparecerá por defecto el nombre del servidor que no tenemos que modificar, y a partir de ahí podemos habilitar o establecer los valores que deseemos para nuestro cliente.

Por defecto en la mayoría de campos con valor numérico está establecido el valor -1 , esto significa que le valor predeterminado es ilimitado. Una vez configurados los parámetros pulsamos en el botón “Save”.

Crear nuevo sitio web en ISPConfig

Para crear un sitio web tenemos que acceder como cliente al panel de control ISPConfig, pulsamos en la opción “Sitios” y en el botón “Añadir sitio web

crear nuevo sitio web en ispconfig

Nos aparecerá una nueva ventana con las siguientes pestañas:

Dominio

En esta sección configuramos la ip asignada al site, si el sitio no tiene una ip dedicada seleccionado la ip del servidor, insertamos el nombre del dominio del sitio web que deseamos crear, la cuota de disco duro, la cuota de tráfico, los módulos de PHP que deseamos habilitar para este sitio, si activamos el soporte para SSL o el certificado gratuito Let´s Encrypt SSL, el modo en el que deseamos que funciona PHP (Fast-CGI, CGI, Mod-PHP, suPHP, PHP-FPM o HHVM), la versión de PHP para el sitio web y por último podemos activar o desactivar el sitio web.

Redirección

 En esta sección podemos redirecciónar el dominio del sitio que acabamos de crear, es decir, si queremos que el dominio test.com redireccione al dominio test.es lo tendremos que configurar desde esta sección. Para ello lo primero que tenemos que seleccionar es el tipo de redirección que deseamos crear (Sin flag, R, L, R,L, R=301,L), lo más común es realizar una redirección 301. En el campo Ruta de redirección insertamos la URL a la que deseamos redireccionar el dominio y por ultimo en redirección SEO indicamos si la redirección es solo para el dominio sin www, con www o para cualquier subdominio (*).

SSL

En esta sección podemos configurar un certificado SSL, para ello tendremos que ir rellenando los campos que nos solicitan.

Estadísticas

En esta sección podemos configurar un usuario para acceder a las estadísticas del sitio web y con que tipo de programa deseamos ver las estadísticas si con AWStats o Webalizer

Backup

En esta sección podemos configurar las copias de seguridad del sitio, su periodicidad y si deseamos excluir algún directorio.

Crear cuentas de correo

Para crear cuentas de correo tenemos que acceder como cliente al panel de control ISPConfig, pulsamos en la opción “Correos” y en el botón verde “Añadir dominio”.

 crear correo en ispconfig

Nos aparece una nueva ventana con las siguientes opciones:

pasos crear correo en panel de control hosting

Dominio:

Insertamos el nombre del dominio del cual queremos crear cuentas de correo.

Filtro de Spam:

Seleccionamos el filtro de spam que deseamos activar para este dominio.

Habilitado:

Podemos indicar si este dominio esta cativado o desactivado.

Correo Identificado por Claves de Dominio (DKIM):

DKIM es un mecanismo de autentificación para las cuentas de correo, por seguridad es recomendable activar esta opción. Para activarlo seleccionamos el tic de en la opción “Activar DKIM” y pulsamos en el botón “Generar clave privada DKIM” para que automáticamente nos rellene el cuadro de texto “Clave privada DKIM”.

Crear zonas DNS

Para crear zonas DNS tenemos que acceder al panel de control de cliente de ISPconfigy pulsa en la sección “DNS”.

pasos generar zonas dns ispconfig

En esta sección podemos añadir una nueva zona DNS usando una existente, añadir uan zona DNS manualmente o importar archivo de zona. Lo que más vamos a utilizar es la sección “Añadir una zona DNS manualmente”.

Seleccionamos “Añadir una zona DNS manualmente” y nos aparece el siguiente formulario:

crear zonas en panel control

En el formulario tenemos que rellenar fundamentalmente los siguientes campos:

Zona (SOA):

En esta sección tenemos que introducir el nombre del dominio.

NS:

En esta sección tenemos que introducir el nombre del servidor de nombres (Name Server) , por ejemplo, ns1.dominio.com o dns1.dominio.com , etc…

Correo:

En esta sección tenemos que introducir una cuenta de correo de contacto

Actualiza, Reintentar, Expiración, TTL mínimo, TTL:

En estas secciones los aparecen en segundos los tiempos de respuesta, actaulización o replicación de la zona DNS.

Permitir transferencia de zonas a estas IP (lista separada por comas):

En esta sección y pulsamos encima del cuadro de texto nos aparece la ip por defecto del servidor, la seleccionamos y nos rellena automáticamente el cuadro de texto.

Una vez creada la zona DNS del dominio, desde la pestaña “Registros” podemos crear registros TXT, CNAME, A,… para el dominio.

Ayuda

Desde la sección “Ayuda” los clientes pueden enviar un correo al administrador para realizarle alguna petición o consulta.

gestionar ayuda ispconfig

Herramientas

Desde la sección “Herramientas” del panel de control de clientes de ISPConfig podemos cambiar el diseño del interfaz web.

herramientas panel control

Accesos rápidos

En el panel de control ISPConfig tenemos una serie de accesos rápidos desde los cuales podemos acceder de forma rápida a secciones de nuestro panel, por ejemplo si accedemos a la sección “Sitios”, podemos acceder desde el menú de la izquierda a una serie de opciones de form rápida, como por ejemplo sitio web, subdominio para sitio web, alias de dominio para sitio web, cuentas de FTP, Carpetas protegidas, Usuarios de carpetas protegidas, Paquetes disponibles, Paquetes instalados, Tráfico web, FTP traffic, Cuota del sitio (disco), Database quota y Backup Stats

panel de control hosting accesos

Valoración ISPConfig

La instalación de ISPConfig en CentOS no es sencilla y se tarda mucho tiempo en instalar ya que se realiza completamente a través de la línea de comandos (SSH), es necesario instalar y configurar todos los servicios de uno en uno (Postfix, MySQL,…) y una vez instalados y configurados se instala el software de IPSConfig. Además no hay apenas información ni manuales de instalación ni de uso del panel de control.

ISPConfig permite a los administradores administrar sitios web, direcciones de correo electrónico y registros DNS a través de su panel de control web. El software tiene 3 perfiles de usuario: administrador, cliente y revendedor.

Desde el interfaz web se puede administrar servidores únicos o múltiples desde un panel de control, gestionar servidores web para Apache y Nginx, administrar el servidor DNS (BIND, Powerdns y MyDNS), crear revendedores, gestionar servidores virtuales con OpenVZ y visualizar las estadísticas de los sitios web con Webalizer o AWStats.

El panel de control tiene un diseño sencillo pero es un poco complejo saber moverse la primera vez que accedes sino se conoce la estructura y la forma de trabajar de los paneles de control.

ISPConfig nos permite crear sitios MultiPHP y seleccionar los módulos de PHP que se desean utilizar así como la forma de funcionar de PHP (por ejemplo PHP-FPM).

Para realizar copias de seguridad ISPConfig posee una herramienta que nos permite configurar si deseamos realizar copias de seguridad del sitio web, indicar el número de copias de seguridad y el intervalo de copia de seguridad.

ISPConfig soporta SSL, nos permite generar certificados SSL o utilizat Let´s Encrypt.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*