Configurazione del server#

La configurazione di un masternode richiede una conoscenza di base di Linux e della tecnologia blockchain, nonché la capacità di seguire attentamente le istruzioni. Richiede inoltre una manutenzione regolare e un’attenta sicurezza, in particolare se non conservi il tuo Dash su un wallet hardware. Ci sono alcune decisioni da prendere lungo il percorso e passaggi aggiuntivi facoltativi da intraprendere per una maggiore sicurezza.

Commerciali servizi di hosting masternode sono disponibili se preferisci delegare la gestione quotidiana del tuo masternode a un operatore professionale. Quando utilizzi questi servizi di hosting, mantieni il pieno controllo della garanzia masternode e paghi all’operatore una percentuale concordata del tuo premio.

Configura il tuo VPS#

Un VPS, più comunemente noto come server cloud, è l’installazione completamente funzionale di un sistema operativo (solitamente Linux) operante all’interno di una macchina virtuale. La macchina virtuale consente al provider VPS di eseguire più sistemi su un server fisico, rendendolo più efficiente e molto più economico rispetto ad avere un singolo sistema operativo in esecuzione sul «bare metal» di ciascun server.

Un VPS è l’ideale per ospitare un masternode Dash perché in genere offre uptime garantito, ridondanza in caso di guasto hardware e un indirizzo IP statico necessario per garantire di rimanere nella coda di pagamento del masternode. Sebbene eseguire un masternode da casa su un computer desktop sia tecnicamente possibile, molto probabilmente non funzionerà in modo affidabile perché la maggior parte degli ISP assegna indirizzi IP dinamici agli utenti domestici.

Attenzione

Disabling IPv6 is highly recommended to prevent communication issues that have been observed when running nodes on some VPS providers. We recommend turning it off through the VPS provider’s setup wizard during initial server creation.

Before beginning, take a few minutes to review the masternode and evonode hardware requirements which may help you decide which VPS provider best suits your needs. We will use Vultr hosting as an example of a VPS, although DigitalOcean, Amazon EC2, Google Cloud, Choopa and OVH are also popular choices. First create an account and add credit. Then go to the Servers menu item on the left and click + to add a new server. Select a location for your new server on the following screen:

../../../_images/setup-server-location.png

Schermata di selezione della posizione del server Vultr#

Select Ubuntu 24.04 x64 as the server type. We use this LTS release of Ubuntu instead of the latest version because LTS releases are supported with security updates for 5 years, instead of the usual 9 months.

../../../_images/setup-server-type.png

Schermata di selezione del tipo di server Vultr#

Select a server size according to the hardware requirements for you masternode or evonode:

../../../_images/setup-server-size.png

Schermata di selezione delle dimensioni del server Vultr#

Inserisci un nome host e un’etichetta per il tuo server. In questo esempio utilizzeremo dashmn1 come nome host.

../../../_images/setup-server-hostname.png

Schermata di selezione del nome host e dell’etichetta del server Vultr#

Vultr ora installerà il tuo server. Questo processo potrebbe richiedere alcuni minuti.

../../../_images/setup-server-installing.png

Schermata di installazione del server Vultr#

Fai clic su Gestisci una volta completata l’installazione e prendi nota dell’indirizzo IP, del nome utente e della password.

../../../_images/setup-server-manage.png

Schermata di gestione del server Vultr#

Configura il tuo sistema operativo#

Inizieremo connettendoci al server appena fornito. Su Windows, scaricheremo prima un’app chiamata PuTTY per connetterci al server. Vai alla pagina di download di PuTTY e seleziona il programma di installazione MSI appropriato per il tuo sistema. Su Mac o Linux puoi eseguire ssh direttamente dal terminale: digita semplicemente ssh root@<server_ip> e inserisci la password quando richiesto.

../../../_images/setup-putty-download.png

Pagina di download di PuTTY#

Fai doppio clic sul file scaricato per installare PuTTY, quindi esegui l’app dal menu Start. Inserisci l’indirizzo IP del server nel campo Nome host e fai clic su Apri. Potresti visualizzare un avviso relativo al certificato, poiché questa è la prima volta che ti connetti a questo server. Puoi tranquillamente fare clic su per considerare attendibile questo server in futuro.

../../../_images/setup-putty-alert.png

Avviso di sicurezza PuTTY quando ci si connette a un nuovo server#

Ora sei connesso al tuo server e dovresti vedere una finestra terminale. Inizia accedendo al tuo server con l’utente «root» e la password fornita dal tuo provider di hosting.

../../../_images/setup-putty-connect.png

Verifica della password quando ti connetti al tuo VPS per la prima volta#

Configura gli utenti#

Dovresti cambiare immediatamente la password di root e conservarla in un luogo sicuro per sicurezza. Puoi copiare e incollare uno qualsiasi dei seguenti comandi selezionandoli nel browser, premendo Ctrl + C, quindi passando alla finestra PuTTY e facendo clic con il pulsante destro del mouse nella finestra. Il testo verrà incollato nella posizione corrente del cursore:

passwd root

Inserisci e conferma una nuova password (preferibilmente lunga e generata casualmente). Successivamente creeremo un nuovo utente con il seguente comando, sostituendo <username> con un nome utente a tua scelta:

adduser <username>

Ti verrà richiesta una password. Inserisci e conferma utilizzando una nuova password (diversa dalla password di root) e conservala in un luogo sicuro. Verranno inoltre visualizzate le richieste per le informazioni sull’utente, ma è possibile lasciarlo vuoto. Una volta creato l’utente, lo aggiungeremo al gruppo sudo in modo che possa eseguire comandi come root:

usermod -aG sudo <username>

Aggiorna il sistema#

Ora, sempre come root, aggiorneremo il sistema dal repository dei pacchetti Ubuntu:

apt update
apt upgrade

Il sistema mostrerà un elenco di pacchetti aggiornabili. Premi Y e Invio per installare i pacchetti.

Disable IPv6#

We recommend turning off IPv6 to avoid potential communication issues. If you cannot do this through your VPS provider’s server configuration settings, use the following steps to disable it through the operating system.

Check if IPv6 is enabled:

ip a | grep inet6

If multiple inet6 entries are returned, open sysctrl.conf:

sudo nano /etc/sysctl.conf

Add the following lines at the end of the file, then press Ctrl + X to close the editor, then Y and Enter save the file.:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Load the changes:

sudo sysctl -p

Finally, check if IPv6 was successfully disabled. No entries should be returned when you run the command this time:

ip a | grep inet6

Configura il firewall#

Ora installeremo un firewall (e alcuni altri pacchetti che utilizzeremo in seguito):

apt install ufw python3 virtualenv git unzip pv

(premi Y e Invio per confermare)

Choose the appropriate firewall configuration below based on which network and masternode type your masternode will support:

ufw limit ssh/tcp
ufw allow 9999/tcp
ufw logging on
ufw enable
ufw limit ssh/tcp
ufw allow 443/tcp
ufw allow 9999/tcp
ufw allow 26656/tcp
# Uncomment the following line if using automatic certificate renewal (Let's Encrypt, ZeroSSL, etc.)
# ufw allow 80/tcp
ufw logging on
ufw enable
ufw limit ssh/tcp
ufw allow 1443/tcp
ufw allow 19999/tcp
ufw allow 36656/tcp
ufw logging on
ufw enable

(premi Y e Invio per confermare)

Abilita lo scambio#

Next, we will add swap memory, enable it, and set it to be enabled on subsequent reboots:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
nano /etc/fstab

Aggiungi la seguente riga alla fine del file (premi Tab per separare ogni parola/numero), quindi premi Ctrl + X per chiudere l’editor, quindi Y e Invio salva il file .

/swapfile none swap sw 0 0

Limitare l’accesso remoto#

Infine, per prevenire attacchi di hacking di password con forza bruta, installeremo fail2ban e disabiliteremo l’accesso root su ssh. Questi passaggi sono facoltativi, ma altamente consigliati. Inizia con fail2ban:

apt install fail2ban

Crea un nuovo file di configurazione:

nano /etc/fail2ban/jail.local

E incolla la seguente configurazione:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3

Quindi premi Ctrl + X per chiudere l’editor, quindi Y e Invio salvano il file. Riavvia e abilita il servizio fail2ban:

systemctl restart fail2ban
systemctl enable fail2ban

Successivamente, apri il file di configurazione SSH per disabilitare l’accesso root su SSH:

nano /etc/ssh/sshd_config

Individua la riga che dice PermitRootLogin yes e impostala su PermitRootLogin no. Direttamente sotto, aggiungi una riga che dice AllowUsers <username>, sostituendo <username> con il nome utente selezionato sopra. Quindi premi Ctrl + X per chiudere l’editor, quindi Y e Invio salvano il file.

Facoltativamente, installa o aggiorna AppArmor (prova questo passaggio se riscontri problemi relativi ad AppArmor):

sudo apt install apparmor

Riavviare#

Ora riavvia il server per applicare eventuali aggiornamenti del kernel necessari:

reboot now

Il tuo client SSH (ad esempio PuTTY) si disconnetterà al riavvio del server.

Nota

Sebbene questa configurazione includa passaggi di base per proteggere il tuo server dagli attacchi, si può fare molto di più. In particolare, l’autenticazione con una chiave pubblica invece di una combinazione nome utente/password. È consigliabile abilitare gli aggiornamenti automatici di sicurezza. Ulteriori suggerimenti sono disponibili qui.