En este tutorial, le mostraremos cómo configurar e instalar ISPConfig 3 en un VPS con Ubuntu 18.04.
ISPConfig es un conocido panel de control de alojamiento web de código abierto que nos permite administrar servicios a través de un navegador web. Podemos agregar fácilmente host virtual Apache o bloques de servidor Nginx, crear/editar/eliminar bases de datos, configurar trabajos cron, crear cuentas de correo electrónico y mucho más. Es una alternativa gratuita a los paneles de control pagos:no tiene que gastar dinero para usar este panel de control.
Requisitos previos:
- Un VPS con Ubuntu 18.04
- Acceso SSH con privilegios de root
Paso 1:Inicie sesión a través de SSH y actualice el sistema
Inicie sesión en su Ubuntu 18.04 VPS con SSH como usuario root o un usuario con privilegios sudo:
ssh root@IP_Address -p Port_number
Reemplace IP_Address y Port_number con sus respectivos valores para su servidor.
Puede verificar si tiene instalada la versión adecuada de Ubuntu en su servidor con el siguiente comando:
lsb_release -a
Deberías obtener este resultado:
Distributor ID: Ubuntu Description: Ubuntu 18.04.2 LTS Release: 18.04 Codename: bionic
Luego, ejecute el siguiente comando para asegurarse de que todos los paquetes instalados en el servidor estén actualizados a la última versión disponible:
apt update && apt upgrade
En este tutorial, usaremos ubuntu.mydomain.com como nombre de host del servidor; un nombre de host debe ser un FQDN (un nombre de dominio completamente calificado). Es importante utilizar un subdominio como nombre de host y no el dominio principal. Si no usa un subdominio para el nombre de host del servidor, por ejemplo, tendrá un problema con amavis
y otros programas relacionados con el correo electrónico. Obtenga más información sobre cómo cambiar su nombre de host.
Paso 2:reconfigurar Bash y detener el programa 'apparmor'
Necesitamos usar bash como shell del sistema predeterminado, no dash, para continuar con la instalación de ISPConfig.
dpkg-reconfigure dash
Use dash as the default system shell (/bin/sh)? No
systemctl stop apparmor systemctl disable apparmor
Compruebe si ya tiene servicios ejecutándose en su servidor:
netstat -pltn
Paso 3:Instale MariaDB, Postfix y Dovecot
Ejecute los siguientes comandos para instalar MariaDB, Postfix y Dovecot.
apt install mariadb-server postfix postfix-mysql openssl dovecot-mysql dovecot-pop3d dovecot-sieve dovecot-lmtpd binutils dovecot-imapd
En el proceso de instalación, se le harán dos preguntas para postfix:asegúrese de usar su nombre de host como el nombre de correo del sistema.
General type of mail configuration: Internet Site
System mail name: ubuntu.mydomain.com
A continuación, edite /etc/postfix/master.cf
utilizando su editor de texto preferido.
Básicamente, necesitaremos descomentar algunas líneas en el archivo de configuración y agregar -o smtpd_client_restrictions=permit_sasl_authenticated,reject
en las secciones de envío y smtpd. El archivo debería tener el siguiente aspecto:
submission inet n - y - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING
Cuando termine, guarde y salga del archivo y reinicie Postfix:
systemctl restart postfix
En este punto, MariaDB se está ejecutando y ahora vamos a crear una contraseña para el usuario root. Ejecute el siguiente comando para crear una contraseña raíz, elimine la base de datos de prueba, elimine el usuario anónimo y luego vuelva a cargar los privilegios.
mysql_secure_installation
Una vez creada, puede probar la contraseña invocando este comando. Se le pedirá la contraseña de root que configuró en el comando anterior:
# mysql -u root -p
Paso 4:Instale Spamassassin, Clamav y Amavisd-new
Ejecute la siguiente línea para instalar Spamassassin, Clamav y Amavisd-new, así como algunos paquetes necesarios para que estos programas funcionen correctamente.
apt install spamassassin clamav clamav-daemon amavisd-new postgrey zip unzip bzip2 arj nomarch lzop cabextract libnet-ldap-perl libauthen-sasl-perl daemon libnet-ident-perl libnet-dns-perl libio-string-perl libio-socket-ssl-perl apt-listchanges
Para liberar algo de uso de memoria, podemos detener spamassassin. ISPConfig 3 usa amavisd, que carga las bibliotecas de Spamassassin internamente, por lo que podemos detener spamassassin.
systemctl stop spamassassin systemctl disable spamassassin
freshclam
Si ve el mensaje de error cuando ejecuta el comando "freshclam" como se muestra a continuación, puede ignorarlo, ya que significa que freshclam ya se está ejecutando:
ERROR: /var/log/clamav/freshclam.log is locked by another process ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
systemctl start clamav-daemon
En el momento de escribir este artículo, amavisd-new tiene un error en Ubuntu 18.04 que debe corregirse. Para solucionarlo, ejecute los siguientes comandos:
cd /tmp wget https://git.ispconfig.org/ispconfig/ispconfig3/raw/stable-3.1/helper_scripts/ubuntu-amavisd-new-2.11.patch cd /usr/sbin cp -pf amavisd-new{,.orig} patch < /tmp/ubuntu-amavisd-new-2.11.patch
Verá el siguiente mensaje. Pero, si ve un mensaje de error, significa que amavisd-new ya ha sido parcheado.
Paso 5:Instale Apache y otros paquetes
Ejecute el siguiente comando para instalar los paquetes requeridos por ISPConfig. Es probable que al menos algunos de estos ya estén instalados en su sistema.
apt install apache2 apache2-utils apache2-doc libapache2-mod-php php7.2 php7.2-common php7.2-cli php7.2-mysql php7.2-sqlite3 php7.2-imap php7.2-gd php7.2-cgi php7.2-zip php7.2-mbstring php7.2-opcache php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-tidy php7.2-xmlrpc php7.2-xsl libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby memcached php-memcache php-imagick libapache2-mod-python php-gettext php-apcu phpmyadmin mailman roundcube roundcube-core roundcube-mysql roundcube-plugins php-net-sieve tinymce getmail4 javascript-common libjs-jquery-mousewheel rkhunter binutils vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl bind9 dnsutils haveged daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl quota quotatool libnet-dns-perl pure-ftpd-common pure-ftpd-mysql cabextract certbot
Durante la instalación, deberá responder algunas preguntas básicas. Si se le pide que seleccione un servidor web, seleccione Apache2.
Además, se le pedirá que ingrese la contraseña de la aplicación MySQL para phpMyAdmin y la contraseña de la aplicación MySQL para Roundcube. Puede ingresar una contraseña segura de su elección o dejarlos en blanco para que el sistema cree contraseñas aleatorias para ellos. Idealmente, crearía la contraseña para que pueda saber cuál es la contraseña.
Configurar Apache y PHP
Una vez que se completa la instalación de los paquetes requeridos, es hora de configurar el software. Comencemos con Apache. Habilite los siguientes módulos de Apache y PHP:
a2enmod rewrite ssl cgi include actions suexec dav_fs dav auth_digest alias phpenmod mcrypt
systemctl restart apache2
También necesitamos configurar el correo web de Roundcube para evitar que muestre la entrada del nombre del servidor en el formulario de inicio de sesión del correo web.
nano /etc/roundcube/config.inc.php
Edite el valor 'default_host' a 'localhost'
$config['default_host'] = 'localhost';
Guarde el archivo y luego salga.
Configurar ftpd puro
Dado que deberá proporcionar a los usuarios acceso FTP a su Ubuntu VPS para que puedan cargar y descargar archivos, debe configurar un entorno chroot. De esa forma, los usuarios no tendrán acceso al resto del sistema. Edite el /etc/default/pure-ftpd-common
y cambie el valor de VIRTUALCHROOT de falso a verdadero.
nano /etc/default/pure-ftpd-common
VIRTUALCHROOT=true
Guarde el archivo y salga, luego reinicie el servicio para que los cambios surtan efecto:
systemctl restart pure-ftpd-mysql
Crear una nueva lista para Mailman
Podemos crear una nueva lista para Mailman ahora.
newlist mailman
Se le pedirá que ingrese el correo electrónico de la persona que maneja la lista, así como una contraseña. El script le proporcionará una salida de alias que deben agregarse a /etc/aliases
archivo.
nano /etc/aliases
El archivo debe ser como el siguiente:
# Required aliases postmaster: root MAILER-DAEMON: postmaster # Common aliases abuse: postmaster spam: postmaster # Other aliases clamav: root mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Guarde y cierre el archivo. Inicialice la base de datos de alias y reinicie los servicios.
newaliases systemctl restart mailman
Desactivar awstats cron
nano /etc/cron.d/awstats
Necesitamos comentar todas las líneas en ese archivo agregando "#" delante de las líneas, debería ser así:
#MAILTO=root #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh # Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
Paso 6:Instalar Fail2Ban
Puede omitir este paso, pero por motivos de seguridad se recomienda tener Fail2Ban ejecutándose en su servidor. Esto bloquea temporalmente las direcciones IP de las computadoras que intentan iniciar sesión a través de SSH demasiadas veces. Ejecute este comando para instalarlo:
apt install fail2ban -y
Una vez instalado, use su editor de texto preferido para editar el archivo de configuración de Fail2Ban.
nano /etc/fail2ban/jail.local
[pure-ftpd] enabled = true port = ftp filter = pure-ftpd logpath = /var/log/syslog maxretry = 3 [dovecot] enabled = true filter = dovecot action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,imap,imaps", protocol=tcp] logpath = /var/log/mail.log maxretry = 5 [postfix] enabled = true port = smtp filter = postfix logpath = /var/log/mail.log maxretry = 3
Paso 7:Instalar Jailkit
Si desea chrootear a sus usuarios de SSH, debe instalar Jailkit antes de instalar ISPConfig.
apt-get -y install build-essential autoconf automake1.11 libtool flex bison debhelper
cd /tmp wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz tar xvfz jailkit-2.20.tar.gz cd jailkit* echo 5 > debian/compat ./debian/rules binary
Ahora podemos instalar Jailkit con el siguiente comando:
cd .. dpkg -i jailkit_2.20-1_*.deb
Paso 8:Instalar ISPConfig 3
Finalmente, instalemos ISPConfig. Descargue la última versión e instálela usando los siguientes comandos:
cd /tmp wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1 tar xfz ispconfig.tar.gz cd ispconfig3*/install/ php -q install.php
Responda las preguntas para completar la instalación y luego acceda al panel de control de hospedaje de ISPConfig en:http://yourIPAddress:8080
¡Felicidades! En este punto, debería poder acceder a ISPConfig en http://yourIPAddress:8080
. Para obtener más información sobre ISPConfig, sus características y configuración, consulte su documentación oficial.
No dude en consultar nuestro tutorial sobre cómo instalar ISPConfig 3 en CentOS 3.
Por supuesto, no es necesario que sepa cómo instalar ISPConfig en Ubuntu 18.04 si utiliza nuestros servicios de alojamiento VPS de Ubuntu 18.04. Simplemente puede pedirle a nuestro equipo de soporte que instale ISPConfig en Ubuntu 18.04 por usted. Están disponibles las 24 horas del día, los 7 días de la semana y podrán ayudarlo con la instalación de ISPConfig en Ubuntu 18.04.
PD . Si disfruta leyendo esta publicación de blog sobre la instalación de ISPConfig en Ubuntu 18.04, siéntase libre de compartirla en las redes sociales usando los accesos directos para compartir a continuación, o simplemente deje un comentario en la sección de comentarios. Gracias.