Servidor Perfecto · 5 min read · Nov 19, 2025
El Servidor Perfecto - OpenSUSE 12.3 x86_64 (nginx, Dovecot, ISPConfig 3) - Página 3
8 Instalar Postfix, Dovecot, MySQL
Ejecuta
zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron pythonSi recibes el siguiente mensaje, selecciona desinstalar sendmail:
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
Elige entre las soluciones anteriores por número o cancela [1/2/c] (c):<-- 2Crea 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 iniciar con el error:
Fallo al emitir la llamada al método: La unidad mysql.service no se pudo cargar: No existe tal archivo o directorio. Consulta los registros del sistema y 'systemctl status mysql.service' para más detalles.rebootInicia MySQL, Postfix y Dovecot y habilita 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, ejecuta:
mysql_secure_installationAhora se te 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 LEE CUIDADOSAMENTE CADA PASO!
Para iniciar sesión en MySQL y asegurarla, necesitaremos la contraseña actual para el usuario root. Si acabas de instalar MySQL, y no has establecido la contraseña de root aún, la contraseña estará en blanco, así que solo debes presionar enter aquí.
Ingresa la contraseña actual para root (presiona enter si no hay): <– ENTER
OK, se utilizó la contraseña con éxito, continuando…
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: <– yourrootsqlpassword
Reingresa la nueva contraseña: <– yourrootsqlpassword
¡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 que la instalación sea un poco más fluida. Debes 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 ser eliminado 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 la 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 tengan efecto inmediato.
¿Recargar tablas de privilegios ahora? [Y/n] <– Y
… ¡Éxito!
Limpiando…
¡Todo listo! Si has completado todos los pasos anteriores, tu instalación de MySQL ahora debería estar segura.
¡Gracias por usar MySQL!
server1:~ #
Ahora tu configuración de MySQL debería estar asegurada.
9 Amavisd-new, Spamassassin y Clamav
Instala Amavisd-new, Spamassassin y el antivirus Clamav. Ejecuta
zypper install amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysqlAbre /etc/amavisd.conf…
vi /etc/amavisd.conf… y agrega la línea $myhostname con tu nombre de host correcto debajo de la línea $mydomain:
| [...] $mydomain = 'example.com'; # un valor predeterminado conveniente para otras configuraciones $myhostname = "server1.$mydomain"; [...] |
Luego crea 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 es ahora un tmpfs, y /var/run ahora está montado como 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/amavisComenta 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ínalo # 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-reloadhora.
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 te aconseja no interrumpir y no detener el servicio de actualización freshclam en medio.
Para habilitar los servicios, ejecuta:
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.