Servidor Perfecto · 8 min read · Feb 13, 2026
El Servidor Perfecto - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3) - Página 2
Ahora inicie sesión con el nombre de usuario root y la contraseña que seleccionó durante la instalación.
4 Configurar La Configuración de Red
Usamos Yast, la herramienta de gestión del sistema OpenSuSE para reconfigurar la configuración de la tarjeta de red. Después del primer arranque, el sistema está configurado para obtener la dirección IP con DHCP. Para un servidor, lo cambiaremos a una dirección IP estática.
Ejecute
yast2Seleccione Dispositivos de Red > Configuración de Red:

Seleccione su tarjeta de red y luego Editar:

Seleccione Dirección IP asignada estáticamente e ingrese la dirección IP, la máscara de subred y el nombre de host y guarde los cambios seleccionando Siguiente:

Ahora seleccione Nombre de host/DNS e ingrese el nombre de host (por ejemplo, server1.example.com) y los servidores de nombres (por ejemplo, 192.168.1.200 y 8.8.8.8):

Ahora seleccione Enrutamiento e ingrese la puerta de enlace predeterminada y presione Aceptar:
Para configurar el firewall (en caso de que no lo haya configurado durante la instalación básica), seleccione Seguridad y Usuarios > Firewall en Yast:

Quiero instalar ISPConfig al final de este tutorial, que viene con su propio firewall. Por eso desactivo el firewall predeterminado de OpenSUSE ahora. Por supuesto, eres libre de dejarlo activado y configurarlo a tus necesidades (pero entonces no deberías usar ningún otro firewall más adelante, ya que probablemente interferirá con el firewall de OpenSUSE).
Seleccione Desactivar el inicio automático del firewall y Detener el firewall ahora, luego presione Siguiente:

Presione Finalizar y salga de Yast:

Después, debe verificar con
ifconfigsi su configuración de red es correcta. Si no lo es (por ejemplo, si falta eth0), reinicie el sistema…
reboot… y verifique su configuración de red nuevamente después; ahora debería ser correcta.
5 Instalar Actualizaciones
Ahora instalamos las últimas actualizaciones de los repositorios de openSUSE. Ejecute
zypper updateY luego reinicie el servidor, ya que probablemente también instaló algunas actualizaciones del kernel:
reboot6 Instalar Algunos Paquetes Básicos
Ejecute
zypper install findutils readline glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ subversion make vim telnet cron iptables iputils man man-pages nano pico sudo perl-TimeDate7 Cuota Registrada
Para instalar cuota, ejecute
zypper install quotaEdite /etc/fstab para que se vea así (agregué, usrjquota=aquota.user, grpjquota=aquota.group, jqfmt=vfsv0 a los puntos de montaje / y /srv):
vi /etc/fstab| /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part1 swap swap defaults 0 0 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part2 / ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 1 /dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part3 /srv ext4 acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 1 2 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 usbfs /proc/bus/usb usbfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 |
Luego ejecute:
mount -o remount /
mount -o remount /srvquotacheck -avugm
quotaon -avugNo se preocupe si ve estos mensajes de error; son normales cuando ejecuta quotacheck por primera vez:
server1:~ # quotacheck -avugm
quotacheck: Scanning /dev/sda2 [/] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Checked 3872 directories and 32991 files
quotacheck: Old file not found.
quotacheck: Old file not found.
quotacheck: Scanning /dev/sda3 [/srv] done
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Checked 6 directories and 0 files
quotacheck: Old file not found.
quotacheck: Old file not found.
server1:~ #8 Instalar Postfix, Dovecot, MySQL
Ejecute
zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron pythonSi recibe el siguiente mensaje, seleccione desinstalar exim:
Problema: sendmail-8.14.5-85.1.2.x86_64 entra en conflicto con postfix proporcionado por postfix-2.9.6-1.2.1.x86_64
Solución 1: Se realizarán las siguientes acciones:
no instalar postfix-2.9.6-1.2.1.x86_64
no instalar postfix-mysql-2.9.6-1.2.1.x86_64
Solución 2: desinstalación de sendmail-8.14.5-85.1.2.x86_64
Elija entre las soluciones anteriores por número o cancele [1/2/c] (c): <– 2
Cree el siguiente enlace simbólico:
ln -s /usr/lib64/dovecot/modules /usr/lib/dovecotEn este punto, tuve que reiniciar porque de lo contrario MySQL se negaba a iniciarse con el error:
Failed to issue method call: Unit mysql.service failed to load: No such file or directory. See system logs and 'systemctl status mysql.service' for details.rebootInicie MySQL, Postfix y Dovecot y habilite los servicios para que se inicien al arrancar.
systemctl enable mysql.service
systemctl start mysql.servicesystemctl enable postfix.service
systemctl start postfix.servicesystemctl enable dovecot.service
systemctl start dovecot.serviceAhora instalo el paquete getmail:
zypper install getmailPara asegurar la instalación de MySQL, ejecute:
mysql_secure_installationAhora se le harán varias preguntas:
server1:~ # mysql_secure_installation
NOTA: SE RECOMIENDA EJECUTAR TODAS LAS PARTES DE ESTE SCRIPT PARA TODOS LOS SERVIDORES MySQL EN USO EN PRODUCCIÓN! POR FAVOR, LEA CADA PASO CUIDADOSAMENTE!
Para iniciar sesión en MySQL y asegurarla, necesitaremos la contraseña actual para el usuario root. Si acaba de instalar MySQL y no ha establecido la contraseña de root aún, la contraseña estará en blanco, así que solo debe presionar enter aquí.
Ingrese la contraseña actual para root (presione enter para ninguno): <– ENTER
OK, se utilizó la contraseña con éxito, avanzando…
Establecer la contraseña de root asegura que nadie pueda iniciar sesión en el usuario root de MySQL sin la autorización adecuada.
¿Establecer contraseña de root? [Y/n] <– Y
Nueva contraseña: <– sucontraseñaderootsql
Reingrese la nueva contraseña: <– sucontraseñaderootsql
¡Contraseña actualizada con éxito!
Recargando tablas de privilegios..
… ¡Éxito!
Por defecto, una instalación de MySQL tiene un usuario anónimo, permitiendo que cualquiera inicie sesión en MySQL sin tener que tener una cuenta de usuario creada para ellos. Esto está destinado solo para pruebas y para hacer que la instalación sea un poco más fluida. Debe eliminarlos antes de pasar a un entorno de producción.
¿Eliminar usuarios anónimos? [Y/n] <– Y
… ¡Éxito!
Normalmente, solo se debe permitir que root se conecte desde ‘localhost’. Esto asegura que alguien no pueda adivinar la contraseña de root desde la red.
¿Deshabilitar el inicio de sesión remoto de root? [Y/n] <– Y
… ¡Éxito!
Por defecto, MySQL viene con una base de datos llamada ‘test’ a la que cualquiera puede acceder. Esto también está destinado solo para pruebas y debe eliminarse antes de pasar a un entorno de producción.
¿Eliminar la base de datos de prueba y el acceso a ella? [Y/n] <– Y
- Eliminando base de datos de prueba…
… ¡Éxito! - Eliminando privilegios en la base de datos de prueba…
… ¡Éxito!
Recargar las tablas de privilegios asegurará que todos los cambios realizados hasta ahora surtan efecto de inmediato.
¿Recargar tablas de privilegios ahora? [Y/n] <– Y
… ¡Éxito!
Limpiando…
¡Todo listo! Si ha completado todos los pasos anteriores, su instalación de MySQL ahora debería estar segura.
¡Gracias por usar MySQL!
server1:~ #
Ahora su configuración de MySQL debería estar asegurada.
9 Amavisd-new, Spamassassin Y Clamav
Instale Amavisd-new, Spamassassin y el antivirus Clamav. Ejecute
zypper install amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysqlAbra /etc/amavisd.conf…
vi /etc/amavisd.conf… y agregue la línea $myhostname con su nombre de host correcto debajo de la línea $mydomain:
| [...] $mydomain = 'example.com'; # un valor predeterminado conveniente para otras configuraciones $myhostname = "server1.$mydomain"; [...] |
Luego cree un enlace simbólico de /var/run/clamav/clamd a /var/lib/clamav/clamd-socket:
mkdir -p /var/run/clamav
ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamdOpenSUSE 12.3 tiene un directorio /run para almacenar datos de tiempo de ejecución. /run ahora es un tmpfs, y /var/run ahora está montado en enlace a /run desde tmpfs, y por lo tanto se vacía al reiniciar.
Esto significa que después de un reinicio, el directorio /var/run/clamav que acabamos de crear ya no existirá, y por lo tanto clamd fallará al iniciar. Por lo tanto, creamos el archivo /etc/tmpfiles.d/clamav.conf ahora que creará este directorio al inicio del sistema (ver http://0pointer.de/public/systemd-man/tmpfiles.d.html para más detalles):
vi /etc/tmpfiles.d/clamav.conf| D /var/run/clamav 0755 root root - |
Antes de iniciar amavisd y clamd, debemos editar el script de inicio /etc/init.d/amavis - no pude iniciar, detener y reiniciar amavisd de manera confiable con el script de inicio predeterminado:
vi /etc/init.d/amavisComente las siguientes líneas en la sección de inicio y detención:
| [...] start) # ZMI 20100428 verificar archivo pid obsoleto #if test -f $AMAVIS_PID ; then # checkproc -p $AMAVIS_PID amavisd # if test $? -ge 1 ; then # # el archivo pid está obsoleto, elimínelo # echo -n "(archivo pid obsoleto de amavisd $AMAVIS_PID encontrado, eliminando. ¿Se estrelló amavisd?)" # rm -f $AMAVIS_PID # fi #fi echo -n "Iniciando escáner de virus (amavisd-new): " $AMAVISD_BIN start #if ! checkproc amavisd; then # rc_failed 7 #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "Iniciando amavis-milter:" # startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1 # rc_status -v #fi ;; stop) echo -n "Apagando escáner de virus (amavisd-new): " #if checkproc amavisd; then # rc_reset $AMAVISD_BIN stop #else # rc_reset #fi rc_status -v #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then # rc_reset # echo -n "Apagando amavis-milter: " # killproc -TERM $AMAVIS_MILTER_BIN # rc_status -v #fi ;; [...] |
Debido a que hemos cambiado el script de inicio, debemos ejecutar
systemctl --system daemon-reloadahora.
Para iniciar clamav necesitamos descargar la base de datos y proceder con el comando
freshclam
Nota: Toma mucho tiempo descargar la base de datos, se le aconseja no interrumpir y no detener el servicio de actualización freshclam en medio.
Para habilitar los servicios, ejecute:
systemctl enable amavis.service
systemctl enable clamd.service
systemctl start amavis.service
systemctl start clamd.serviceRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.