
Per la prima volta ho scoperto la piattaforma vyatta, alternativa opensource a cisco. Vyatta è disponibile sia come macchina virtuale (Xen e VMware) sia come ISO oltre ai due appliance. Devo ammettere che il non essere user friendly e il prediligere una programmazione CLI a primo impatto mi ha spaventato, tuttavia dopo averci preso la mano (in brevissimo tempo) vyatta si rivela una piattaforma estremamente performante e versatile. Vediamo ora un paio di cenni generali su questi prodotti, ricordo che è possibile trovare una documentazione molto esaudiente sul sito ufficiale.
Per prima cosa la configurazione della piattaforma vyatta è basata sui file conf, quindi per ogni comando si deve dare un commit ed infine un save per scrivere la nostra configurazione nel file e renderla operativa anche dopo il riavvio della piattaforma stessa. Vediamo ora la configurazione di un router vyatta nel classico scenario dove c’è una LAN e il router deve svolgere la funzione di default gateway, all’interno c’è un server terminal da pubblicare sulla wan. vedremo quindi le seguenti tematiche:
- Modello di routing della piattaforma vyatta
- Customizzazione del router e primo avvio
- Configurazione IP delle interfacce sotto la piattaforma vyatta
- Configurazione del NAT
Note di lettura: Nomi specifici di componenti, tecnologie e credenziali saranno indicate in grassetto mentre i comandi saranno indicati in grassetto corsivo il simbolo << indica “dare invio”
Modello di routing della piattaforma vyatta
Vyatta gestisce i pacchetti in base al tipo di NAT configurato, il routing di un pacchetto soggetto a dnat (mascheramento dell’indirizzo di destinazione) sarà diverso da quello di un pacchetto soggetto a snat (mascheramento dell’indirizzo di provenienza). Per la precisione è la catena vyatta che deve essere considerata in maniera diversa a seconda del tipo di nat. La catena vyatta prevede 4 blocchi di “lavorazione del pacchetto, essi sono: DNAT, Routing, Firewall e SNAT. Un pacchetto soggetto a DNAT subisce il mascheramento dell’indirizzo di destinazione all’inizio della catena, quindi il processo dirouting ed il firewall valutano l’indirizzo di destinazione già mascherato (ad esempio un pacchetto con destinazione 85.37.17.16 subisce un dnat e viene mascherato con l’indirizzo 10.10.10.4. il processo di routing e il firewall avranno come destination address del pacchetto il 10.10.10.4) mentre i pacchetti sogetti a snat subiscono il mascheramento a termine della catena, quindi routing e firewall analizzeranno l’indirizzo sorgente “originale”. L’importanza di questi concetti si rileva vitale durante lo sviluppo delle regole di firewalling.
Customizzazione del router e primo avvio
La piattaforma vyatta è dotata di una CLI molto comoda, al primo avvio ci troveremo dinnanzi alla richiesta di login, si può entrare sia con lo username root sia con l’utente vyatta ovviamente per entrambi è settata una password di default che è vyatta. Di solito per ragioni di sicurezza si predilige lavorare con l’utente vyatta, quindi eseguiamo il login ed entriamo subito in configurazione digitando configure<< ora passiamo alla configurazione.
Impostazione dell’host name: set system host-name nomedaassegnarealrouter <<
Impostazione dominio di appartenenza: set system domain nomedominio <<
Impostazione server DNS: set system name-server ipserverdns <<
Da notare la possybilità di completare i comandi e di mostrare le opzioni con il tasto tab, se sinfatti digitiamo set sy e premiamo tab automaticamente la stringa diviene set system e premendo il tab due volte (una per aggiungere uno spazio dopo la stringa system) visualizzeremo tutti i comandi accettati relativi alla voce system.
Diamo ora un commit per scrivere la configurazione appena modificata e un save per salvarla e renderla definitiva, quindi commit<< save<<.
Uno degli errori più grandi è lasciare le password di default, modifichiamo quindi le password per gli account root e vyatta.
set system login user root authentication plaintext-password nuovapassword<<
set system login user vyatta authentication plaintext-password nuovapassowrd<<
commit<<
save<<
Configurazione IP delle interfacce sotto la piattaforma vyatta
Impostiamo ora gli indirizzi delle interfacce, ricordiamo che solitamente la eth0 è l’interfaccia esposta ad internet, diamo quindi
set interfaces ethernet eth0 address dhcp<<
set interfaces ethernet eth1 address 192.168.1.254/24<<
set system gateway-address 10.10.1.254<<
commit<<
save<<
Ovviamente i volori sono relativi all’esempio quindi se nella nostra interfaccia esterna abbiamo bisogno di inserire un ip fisso non c’è problema, basta utilizzare la notazione usata nella eth1 dell’esempio. Il comando set system gateway address serve a fornire al sistema quale gateway utilizzare per instradare le richieste esterne alla LAN.
Configurazione del NAT
in vyatta la configurazione del nat avviene per regole, abbiamo quindi la possibilità di creare n regole (32) con priorità decrescente, quindi la regola 1 ha più priorità della 2. Per rendere il nostro router un gateway bisogna configurarlo in modo che effettui un operazione di snat dei pacchetti provenienti dalla lan con l’indirizzo dell’interfaccia eth0, questa operazione è detta maquerading. Impostiamo quindi la nat specificando per prima cosa regola e tipo di operazione:
set service nat rule 1 type masquerading<<
ora specifichiamo cosa deve mascherare indicando la nostra rete interna
set service nat rule 1 source address 192.168.1.0/24<<
indichiamo ora l’interfaccia il cui indirizzo IP andrà a sotituire l’IP sorgente dei pacchetti
set service nat rule 1 outbound-interface eth0
infine
commit<<
save<<
Ora riavviamo l’applaiance eseguendo il login come root (prima bisogna uscire dalla configurazione con exit<<) e digitando reboot<<
impostiamo infine il nat per il server terminal.
definiamo come tipologia il dnat: set service nat rule 2 type destination<<
impostiamo l’interfaccia di provenienza: set service nat rule 2 inbound-interface eth0<<
ora impostiamo l’ip pubblico che deve essere nattato set service nat rule 2 destination address ippubblico<<
impostiamo la porta alla quale risponde il servizio lato internet set service nat rule 2 destination port 3389<<
ora impostiamo il tipo di protocollo set service nat rule 2 protocol tcp
passiamo al lato interno indicando l’ip di lan del server terminal set service nat rule 2 inside-address address ipTS<<
terminiamo con l’indicazione della porta sul server terminal set service nat rule 2 inside-address port 3389<<
in ultimo
commit<<
save<<
Bene, spero di essere stato d’aiuto, non dimenticate di consultare la documentazione ufficiale disponibile sul sito vyatta.
Davide Pala


Sun Microsystems ha fornito alcuni dettagli circa il rilascio di VirtualBox 2.1