Server Setup · 8 min read · Feb 13, 2026

Il Server Perfetto - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3) - Pagina 2

Ora accedi con il nome utente root e la password che hai selezionato durante l’installazione.

4 Configura Le Impostazioni Di Rete

Utilizziamo Yast, lo strumento di gestione del sistema OpenSuSE per riconfigurare le impostazioni della scheda di rete. Dopo il primo avvio, il sistema è configurato per ottenere l’indirizzo IP tramite DHCP. Per un server, lo cambieremo in un indirizzo IP statico.

Esegui

yast2

Seleziona Dispositivi di rete > Impostazioni di rete:

Seleziona la tua scheda di rete e poi Modifica:

Seleziona Indirizzo IP statico e inserisci l’indirizzo IP, la maschera di sottorete e il nome host e salva le modifiche selezionando Avanti:

Ora seleziona Nome host/DNS e inserisci il nome host (ad es. server1.example.com) e i server dei nomi (ad es. 192.168.1.200 e 8.8.8.8):

Ora seleziona Routing e inserisci il gateway predefinito e premi OK:

Per configurare il firewall (nel caso non lo avessi configurato durante l’installazione di base), seleziona Sicurezza e Utenti > Firewall in Yast:

Voglio installare ISPConfig alla fine di questo tutorial, che viene fornito con il proprio firewall. Ecco perché disabilito il firewall predefinito di OpenSUSE ora. Naturalmente, sei libero di lasciarlo attivo e configurarlo secondo le tue esigenze (ma in tal caso non dovresti utilizzare alcun altro firewall in seguito poiché interferirebbe probabilmente con il firewall di OpenSUSE).

Seleziona Disabilita avvio automatico del firewall e Ferma il firewall ora, quindi premi Avanti:

Premi Fine e lascia Yast:

Dopo, dovresti controllare con

ifconfig

se la tua configurazione di rete è corretta. Se non lo è (ad esempio, se eth0 è mancante), riavvia il sistema…

reboot

… e controlla di nuovo la tua configurazione di rete - ora dovrebbe essere corretta.

5 Installa Aggiornamenti

Ora installiamo gli ultimi aggiornamenti dai repository openSUSE. Esegui

zypper update

E poi riavvia il server poiché molto probabilmente hai installato anche alcuni aggiornamenti del kernel:

reboot

6 Installa Alcuni Pacchetti Di Base

Esegui

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-TimeDate

7 Quota Registrata

Per installare la quota, esegui

zypper install quota

Modifica /etc/fstab per apparire così (ho aggiunto,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 ai punti di montaggio / e /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 |

Poi esegui:

mount -o remount /  
 mount -o remount /srv
quotacheck -avugm  
 quotaon -avug

Non preoccuparti se vedi questi messaggi di errore - sono normali quando esegui quotacheck per la prima volta:

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 Installa Postfix, Dovecot, MySQL

Esegui

zypper install postfix postfix-mysql mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron python

Se ricevi il seguente messaggio, seleziona di disinstallare exim:

Problema: sendmail-8.14.5-85.1.2.x86_64 conflitti con postfix fornito da postfix-2.9.6-1.2.1.x86_64
Soluzione 1: Le seguenti azioni verranno eseguite:
non installare postfix-2.9.6-1.2.1.x86_64
non installare postfix-mysql-2.9.6-1.2.1.x86_64
Soluzione 2: disinstallazione di sendmail-8.14.5-85.1.2.x86_64

Scegli tra le soluzioni sopra per numero o annulla [1/2/c] (c): <– 2

Crea il seguente symlink:

ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

A questo punto ho dovuto riavviare perché altrimenti MySQL si rifiutava di avviarsi con l’errore:

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.
reboot

Avvia MySQL, Postfix e Dovecot e abilita i servizi per essere avviati all’avvio.

systemctl enable mysql.service  
 systemctl start mysql.service
systemctl enable postfix.service  
 systemctl start postfix.service
systemctl enable dovecot.service  
 systemctl start dovecot.service

Ora installo il pacchetto getmail:

zypper install getmail

Per proteggere l’installazione di MySQL, esegui:

mysql_secure_installation

Ora ti verranno poste diverse domande:

server1:~ # mysql_secure_installation

NOTE: ESEGUIRE TUTTE LE PARTI DI QUESTO SCRIPT È RACCOMANDATO PER TUTTI I SERVER MySQL
IN USO IN PRODUZIONE! PER FAVORE LEGGI OGNI PASSO ATTENTAMENTE!

Per accedere a MySQL per proteggerlo, avremo bisogno della password attuale
per l’utente root. Se hai appena installato MySQL, e
non hai ancora impostato la password di root,
la password sarà vuota, quindi dovresti
premere semplicemente invio qui.

Inserisci la password attuale per root (invio per nessuna): <– INVIO
OK, password utilizzata con successo, procedendo…

Impostare la password di root garantisce che
nessuno possa accedere all’utente root di MySQL
senza la corretta autorizzazione.

Impostare la password di root? [Y/n] <– Y
Nuova password: <– la tua password root sql
Reinserisci la nuova password: <– la tua password root sql
Password aggiornata con successo!
Ricaricamento delle tabelle di autorizzazione..
… Successo!

Per impostazione predefinita, un’installazione di MySQL
hai un utente anonimo, che consente a chiunque
di accedere a MySQL senza dover avere
un account utente creato per
loro. Questo è destinato solo
per i test, e per rendere
l’installazione un po’ più fluida.
Dovresti rimuoverli
prima di passare a un ambiente
produzione.

Rimuovere gli utenti anonimi? [Y/n] <– Y
… Successo!

Normalmente, root dovrebbe
esere consentito di connettersi
solo da ‘localhost’.
Questo garantisce che
qualcuno non possa indovinare
la password di root
dalla rete.

Negare l’accesso remoto a root? [Y/n] <– Y
… Successo!

Per impostazione predefinita, MySQL
viene fornito con un database
chiamato ‘test’
che chiunque può
accedere. Questo è
anche destinato solo
per i test, e
dovrebbe essere rimosso
prima di passare a un ambiente
produzione.

Rimuovere il database di test
e l’accesso ad esso? [Y/n] <– Y

  • Rimozione del database di test…
    … Successo!
  • Rimozione dei privilegi
    sul database di test…
    … Successo!

Ricaricare le tabelle di autorizzazione
assicurarsi che tutte le modifiche
finora apportate
entreranno in vigore
immediatamente.

Ricaricare le tabelle di autorizzazione
ora? [Y/n] <– Y
… Successo!

Pulizia…

Tutto fatto! Se hai completato
tutti i passaggi sopra,
la tua installazione di MySQL
dovrebbe ora essere
protetta.

Grazie per aver utilizzato
MySQL!

server1:~ #

Ora la tua configurazione di MySQL dovrebbe essere sicura.

9 Amavisd-new, Spamassassin E Clamav

Installa Amavisd-new, Spamassassin e Clamav antivirus. Esegui

zypper install amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

Apri /etc/amavisd.conf…

vi /etc/amavisd.conf

… e aggiungi la riga $myhostname con il tuo nome host corretto sotto la riga $mydomain:

| [...] $mydomain = 'example.com'; # un predefinito conveniente per altre impostazioni $myhostname = "server1.$mydomain"; [...] |

Poi crea un symlink da /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/clamd

OpenSUSE 12.3 ha una directory /run per memorizzare i dati di runtime. /run è ora un tmpfs, e /var/run è ora montato in bind a /run da tmpfs, e quindi svuotato al riavvio.

Questo significa che dopo un riavvio, la directory /var/run/clamav che abbiamo appena creato non esisterà più, e quindi clamd non riuscirà ad avviarsi. Pertanto, creiamo ora il file /etc/tmpfiles.d/clamav.conf che creerà questa directory all’avvio del sistema (vedi http://0pointer.de/public/systemd-man/tmpfiles.d.html per ulteriori dettagli):

vi /etc/tmpfiles.d/clamav.conf

| D /var/run/clamav 0755 root root - |

Prima di avviare amavisd e clamd, dobbiamo modificare lo script di init /etc/init.d/amavis - non sono riuscito ad avviare, fermare e riavviare amavisd in modo affidabile con lo script di init predefinito:

vi /etc/init.d/amavis

Commenta le seguenti righe nella sezione di avvio e arresto:

| [...] start) # ZMI 20100428 controlla se il file pid è obsoleto #if test -f $AMAVIS_PID ; then # checkproc -p $AMAVIS_PID amavisd # if test $? -ge 1 ; then # # il file pid è obsoleto, rimuovilo # echo -n "(file pid amavisd obsoleto $AMAVIS_PID trovato, rimuovendo. Amavisd è andato in crash?)" # rm -f $AMAVIS_PID # fi #fi echo -n "Avvio dello scanner antivirus (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 "Avvio di amavis-milter:" # startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1 # rc_status -v #fi ;; stop) echo -n "Arresto dello scanner antivirus (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 "Arresto di amavis-milter: " # killproc -TERM $AMAVIS_MILTER_BIN # rc_status -v #fi ;; [...] |

Poiché abbiamo modificato lo script di init, dobbiamo eseguire

systemctl --system daemon-reload

ora.

Per avviare clamav dobbiamo scaricare il database e procedere ulteriormente con il comando

freshclam

Nota: Ci vuole molto tempo per scaricare il database, ti si consiglia di non interrompere e non fermare il servizio di aggiornamento freshclam nel mezzo.

Per abilitare i servizi, esegui:

systemctl enable amavis.service  
 systemctl enable clamd.service  
 systemctl start amavis.service  
 systemctl start clamd.service
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.