Utilizzare un NAS Synology (o altro Unix-like) come router

router

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

interfacce
Interfacce LAN e PPPoE connesse

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:

Firewall PPPoE Synology
Lista regole Firewall su porta PPPoE

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:

  1. Accedete al NAS via SSH (con “Putty” da Windows, col comando “ssh” da terminale Mac o Linux)
  2. 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:

  1. Accedete al NAS via SSH (con “Putty” da Windows, col comando “ssh” da terminale Mac o Linux)
  2. 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
  3. 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:

  1. It must contain the suffix “.sh”. For example, “myprog.sh”.
  2. The permission must be 755.
  3. 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!

Commenti

Ancora nessun commento. Perché non inizi una discussione?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.