Ciao e ben ritrovati.
Oggi vediamo come configurare un NAS Synology, o altro con sistema operativo simile basato su Unix, in modo da sostituire il router.
Nota: in questa guida utilizzerò l’interfaccia PPPoE del mio NAS Synology DS213+ per connetterlo ad internet (dispone di un’unica porta di rete) , ma è possibile eseguire una configurazione simile anche su NAS a 2 schede di rete.
Perché utilizzare il NAS al posto del router?
- per risparmiare il costo del router
- per risparmiare corrente elettrica
- per evitare inutili reindirizzamenti e ponti aggiuntivi
- per personalizzare totalmente la configurazione
- per inserire un DNS Server o Proxy Server personalizzato
Quindi, se avete un NAS con una singola scheda di rete, dovete disporre di un account PPPoE fornito dal vostro provider.
Se invece avete un NAS con 2 schede di rete utilizzerete la prima per la connessione LAN e la seconda per la connessione WAN (o doppia LAN + PPPoE).
La prima cosa da fare è quindi connettere il NAS in PPPoE ad internet, attraverso Pannello di Controllo / Interfaccia Rete, inserendo le vostre credenziali e cliccando su “connetti”.
Una volta eseguita la connessione PPPoE occorre impostare il firewall sulla porta esterna, accedendo a Pannello di Controllo / Firewall e selezionando PPPoE nelle interfacce.
Create le regole sulle porte o servizi che vi servono per accedere dall’esterno (ad esempio la porta 5000 per la DSM) e bloccate tutto il resto del traffico:
Ora dobbiamo abilitare il DHCP Server sulla rete LAN sempre da Pannello di Controllo / Interfaccia di Rete / LAN / Modifica / DHCP Server. Impostate inoltre un range IP adatto.
A questo punto assicuratevi di impostare i client in DHCP e rinnovate l’IP assegnato, avendo cura di controllare se l’IP ottenuto è nel range del NAS e se il gateway è proprio l’IP del NAS!
Bene, il DHCP vi ha fornito un IP valido, ma se provate non riuscirete a navigare in internet! Perché? Ma perché mancano alcune regole base nella tabella di routing del NAS, in particolare la regola masquerade.
Ecco come inserire tale regola:
- Accedete al NAS via SSH (con “Putty” da Windows, col comando “ssh” da terminale Mac o Linux)
- Se la vostra subnet è di tipo 192.168.0.0/24, digitate il comando seguente o sostituite la subnet in base alla vostra configurazione:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
Ora i client inizieranno a navigare!
Ma per accedere dall’esterno al nostro NAS via DSM tramite <IP_privato_NAS>:5000 ?
Non sarà possibile finché non andremo ad inserire altre regole nella tabella di routing, in particolare la regola DNAT.
Ecco come fare:
- Accedete al NAS via SSH (con “Putty” da Windows, col comando “ssh” da terminale Mac o Linux)
- Se il vostro NAS ha IP interno 192.168.0.1, digitate il comando seguente o sostituite l’ip in base alla vostra configurazione:
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 5000 -j DNAT --to-destination 192.168.0.1:5000
- Eseguite ora un test dall’esterno (ad esempio tramite lo smartphone in 3G) puntando a <IP_esterno_NAS>:5000 per verificare che appaia la schermata di login.
Al posto dell’IP pubblico potete inserire l’IP visibile nella schermata iniziale dell’interfaccia PPPoE o puntando a mioip.it o simili servizi.
Se raggiungete il DSM, allora il NAT funziona regolarmente!
Ok, funziona tutto, ma… avete provato a riavviare il NAS? Se lo fate verrà ripristinata la tabella di routing di default, impedendovi quindi di navigare dai client o di eseguire una connessione da remoto.
Per risolvere occorre creare uno script da salvare in avvio al NAS, come indicato nella guida per gli sviluppatori di app di terze parti:
Run Scripts When the System Boots
If you would like to run scripts when the system is booting or shutting down, you can write scripts in start-stop-status. This script will be executed with the “start” or “stop” parameter, under the condition that the package is enabled. If you would like a script to be executed during the booting or shutting down process, you can put a startup script in /usr/local/etc/rc.d/. Following are the rules for the startup script:
- It must contain the suffix “.sh”. For example, “myprog.sh”.
- The permission must be 755.
- It must contain the options “start” and “stop”. When the system boots up, it will call “myprog.sh start”;
when it shuts down, it will call “myprog.sh stop”.
Andiamo quindi a creare un file con VI o con altro editor di testo come questo:
#!/bin/sh # # Script personalizzato per NAT Synology all'avvio case "$1" in start) #imposto la regola MASQUERADE per far navigare i client in DHCP iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE #imposto le regole del NAT nella catena PREROUTING iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 5000 -j DNAT --to-destination 192.168.0.1:5000 echo "NAT eseguito in START"; ;; stop) echo "Non eseguo nulla allo STOP"; ;; *) echo "Chiudo senza esecuzione di alcun parametro"; exit 1 ;; esac exit 0
Salvate poi il file con nome “script-nat.sh” o simile (sempre con estensione .sh) e copiatelo dentro alla cartella /usr/local/etc/rc.d/ del NAS.
All’avvio il NAS chiamerà lo script col comando “script-nat.sh start” automaticamente, eseguendo le 2 istruzioni!
Provate a riavviare e verificate di navigare dai client e di eseguire l’accesso al DSM da remoto.
Funziona? Si!? Ottimo lavoro!
Ciao!