Server Setup · 5 min read · Dec 16, 2025

Il Server Perfetto - OpenSUSE 11.4 x86_64 [ISPConfig 2] - Pagina 4

8 MySQL

Per installare MySQL, eseguiamo

yast2 -i mysql mysql-community-server mysql-client perl-DBD-mysql perl-DBI perl-Data-ShowTable libmysqlclient-devel libmysqlclient16 libmysqlclient16-32bit libmysqlclient_r16-32bit

Poi aggiungiamo i collegamenti di avvio del sistema per MySQL e lo avviamo:

chkconfig -f –add mysql
/etc/init.d/mysql start

Ora controlla che la rete sia abilitata. Esegui

netstat -tap | grep mysql

Nell’output dovresti vedere qualcosa di simile:

server1:~ # netstat -tap | grep mysql
tcp 0 0 :mysql :* LISTEN 5059/mysqld
server1:~ #

Se non vedi una riga come questa, modifica /etc/my.cnf, commenta l’opzione skip-networking:

vi /etc/my.cnf

| [...] #skip-networking [...] |

e riavvia il tuo server MySQL:

/etc/init.d/mysql restart

Per mettere in sicurezza 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 ATTENTAMENTE OGNI PASSO!

Per accedere a MySQL per metterlo in sicurezza, 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 semplicemente premere invio qui.

Inserisci la password attuale per root (invio per nessuna): <– ENTER
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] <– ENTER
Nuova password: <– yourrootsqlpassword
Reinserisci la nuova password: <– yourrootsqlpassword
Password aggiornata con successo!
Ricaricamento delle tabelle dei privilegi..
… Successo!

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

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

Normalmente, root dovrebbe essere autorizzato a 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] <– ENTER
… Successo!

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

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

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

Ricaricare le tabelle dei privilegi garantirà che tutte le modifiche apportate finora abbiano effetto immediato.

Ricaricare le tabelle dei privilegi ora? [Y/n] <– ENTER
… Successo!

Pulizia…

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

Grazie per aver utilizzato MySQL!

server1:~ #

Ora la tua configurazione di MySQL dovrebbe essere sicura.

Ora dobbiamo fare questo…

mkdir -p /usr/local/lib/mysql
ln -s /usr/include/mysql /usr/local/lib/mysql/include
ln -s /usr/lib64/mysql /usr/local/lib/mysql/lib
cd /usr/local/lib/mysql/lib
ln -s /usr/lib64/libmysqlclient.so.16.0.0 libmysqlclient.so
ln -s /usr/lib64/libmysqlclient.so.16.0.0 libmysqlclient.so.16
ln -s /usr/lib64/libmysqlclient.so.16.0.0 libmysqlclient.so.16.0.0
ln -s /usr/lib64/libmysqlclient_r.so.16.0.0 libmysqlclient_r.so
ln -s /usr/lib64/libmysqlclient_r.so.16.0.0 libmysqlclient_r.so.16
ln -s /usr/lib64/libmysqlclient_r.so.16.0.0 libmysqlclient_r.so.16.0.0

… perché altrimenti riceveremmo il seguente errore durante l’installazione di ISPConfig:

configure: error: Cannot find libmysqlclient under /usr/local/lib/mysql. 

9 Postfix Con SMTP-AUTH E TLS

Ora installiamo Postfix e Cyrus-SASL:

yast2 -i postfix cyrus-sasl cyrus-sasl-crammd5 cyrus-sasl-digestmd5 cyrus-sasl-gssapi cyrus-sasl-otp cyrus-sasl-plain cyrus-sasl-saslauthd procmail

Poi aggiungiamo i collegamenti di avvio del sistema per Postfix e saslauthd e li avviamo:

chkconfig -f –add postfix
/etc/init.d/postfix start

chkconfig -f –add saslauthd
/etc/init.d/saslauthd start

Successivamente creiamo i certificati per TLS:

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Successivamente configuriamo Postfix per SMTP-AUTH e TLS:

postconf -e ‘mydomain = example.com’
postconf -e ‘myhostname = server1.$mydomain’
postconf -e ‘mynetworks = 127.0.0.0/8’
postconf -e ‘smtpd_sasl_local_domain =’
postconf -e ‘smtpd_sasl_auth_enable = yes’
postconf -e ‘smtpd_sasl_security_options = noanonymous’
postconf -e ‘broken_sasl_auth_clients = yes’
postconf -e ‘smtpd_sasl_authenticated_header = yes’
postconf -e ‘smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,check_relay_domains’
postconf -e ‘inet_interfaces = all’
postconf -e ‘alias_maps = hash:/etc/aliases’
postconf -e ‘smtpd_tls_auth_only = no’
postconf -e ‘smtp_use_tls = yes’
postconf -e ‘smtpd_use_tls = yes’
postconf -e ‘smtp_tls_note_starttls_offer = yes’
postconf -e ‘smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key’
postconf -e ‘smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt’
postconf -e ‘smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem’
postconf -e ‘smtpd_tls_loglevel = 1’
postconf -e ‘smtpd_tls_received_header = yes’
postconf -e ‘smtpd_tls_session_cache_timeout = 3600s’
postconf -e ‘tls_random_source = dev:/dev/urandom’

(Assicurati di utilizzare il giusto hostname/dominio in mydomain e myhostname!)

Per abilitare le connessioni TLS in Postfix, modifica /etc/postfix/master.cf e decommenta la riga tlsmgr in modo che appaia come questa:

vi /etc/postfix/master.cf

| [...] tlsmgr unix - - n 1000? 1 tlsmgr [...] |

Ora riavvia Postfix:

/etc/init.d/postfix restart

Per vedere se SMTP-AUTH e TLS funzionano correttamente, esegui il seguente comando:

telnet localhost 25

Dopo aver stabilito la connessione al tuo server di posta Postfix, digita

ehlo localhost

Se vedi le righe

250-STARTTLS

e

250-AUTH PLAIN LOGIN 

tutto va bene.

Sul mio sistema l’output appare così:

server1:/etc/postfix/ssl # telnet localhost 25
Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
220 server1.example.com ESMTP Postfix
ehlo localhost
250-server1.example.com
250-PIPELINING
250-SIZE
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.
server1:/etc/postfix/ssl #

Digita

quit

per tornare alla shell del sistema.

10 Courier-IMAP/Courier-POP3

Voglio usare un demone POP3/IMAP che supporti Maildir. Ecco perché uso Courier-IMAP e Courier-POP3.

yast2 -i courier-imap fam-server courier-authlib expect tcl

Successivamente aggiungiamo i collegamenti di avvio del sistema e avviamo POP3, IMAP, POP3s e IMAPs:

chkconfig -f –add fam
chkconfig -f –add courier-authdaemon
chkconfig -f –add courier-pop
chkconfig -f –add courier-imap
/etc/init.d/courier-pop start
/etc/init.d/courier-imap start
chkconfig -f –add courier-pop-ssl
chkconfig -f –add courier-imap-ssl
/etc/init.d/courier-pop-ssl start
/etc/init.d/courier-imap-ssl start

Se non vuoi usare ISPConfig, configura Postfix per consegnare le email nella Maildir di un utente*:

postconf -e ‘home_mailbox = Maildir/‘
postconf -e ‘mailbox_command =’
/etc/init.d/postfix restart

*Si prega di notare: Non è necessario farlo (ma non fa male ;-)) se intendi utilizzare ISPConfig sul tuo sistema poiché ISPConfig esegue la configurazione necessaria utilizzando le ricette di procmail. Ma assicurati di abilitare Maildir sotto Gestione -> Server -> Impostazioni -> EMail nell’interfaccia web di ISPConfig.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.