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
yast2Seleziona 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
ifconfigse 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 updateE poi riavvia il server poiché molto probabilmente hai installato anche alcuni aggiornamenti del kernel:
reboot6 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-TimeDate7 Quota Registrata
Per installare la quota, esegui
zypper install quotaModifica /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 /srvquotacheck -avugm
quotaon -avugNon 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 pythonSe 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/dovecotA 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.rebootAvvia MySQL, Postfix e Dovecot e abilita i servizi per essere avviati all’avvio.
systemctl enable mysql.service
systemctl start mysql.servicesystemctl enable postfix.service
systemctl start postfix.servicesystemctl enable dovecot.service
systemctl start dovecot.serviceOra installo il pacchetto getmail:
zypper install getmailPer proteggere l’installazione di MySQL, esegui:
mysql_secure_installationOra 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-mysqlApri /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/clamdOpenSUSE 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/amavisCommenta 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-reloadora.
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.serviceRicevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.