La risorsa Italiana per pfSense

24 gennaio 2013

Gli alias in pfSense

In pfSense esiste una funzionalità molto utile ma anche molto ignorata: gli alias.
Gli alias di pfsense ci permettono di associare un nome logico a porte, indirizzi ip e sottoreti. Questo permette di migliorare la leggibilità delle regole di firewall e nat, ridurre il lavoro ed il tempo speso per riconfigurare il nostro firewall quando porte, indirizzi e sottoreti vengono modificate.


Gli alias funzionano un po'come un DNS interno a pfSense, ogni volta che l'interprete del file di configurazione incontra un alias lo rimpiazza con quanto associato. Facciamo un esempio, supponiamo di avere un server web richiamato in più regole del nostro firewall, potremo creare un alias così definito:
Alias: SRV_WEB
Type: HOST(S)
Host(s): 192.168.0.11

Ora nelle nostre rules al posto di riportare ogni volta l'indirizzo ip 192.168.0.11 ci limiteremo a mettere SRV_WEB e sarà l'interprete ad effettuare la sostituzione.

Qual'è il vantaggio? Molto semplice, immaginiamo di avere molte rules che richiamano come sorgente o destinazione il nostro server web ed immaginiamo che ad un certo punto il nostro server debba essere rimpiazzato da un nuovo server a cui verrà attribuito l'indirizzo IP 192.168.0.12, a noi sarà sufficiente modificare l'alias per ottenere l'aggiornamento di tutte le rules in modo semplice e rapido.
Un'altro vantaggio è costituito dalla legibilità delle regole, se usiamo una convenzione per i nostri Alias, tutte le regole appariranno più facilmente comprensibili, per esempio non dovrò ricordare che 19.168.0.12 corrisponde al mio nuovo server web perchè l'alias me lo indica già.

Solitamente io adotto una convenzione basata su semplici regole per ottenere una migliore comprensione delle regole:
  1. tutti gli alias devono essere scritti in maiuscolo
  2. i server hanno come prefisso SRV_
  3. i pc hanno come prefisso PC_
  4. le porte hanno come prefisso P_
Gli alias possono essere di 4 tipi diversi:

  1. Host(s): consente la creazione di alias con associati uno o più indirizzi IP
  2. Network(s): consente la creazione di alias con associate una o più reti
  3. Port(s): consente la creazione di alias con associate una o più porte
  4. URL e URL Table: consente di effettuare il download di tabelle di alias disponibili in remoto come per esempio una blacklist (la differenza tra URL e URL Table sta solo nel numero massimo di host gestibili)
Creare un nuovo alias è molto semplice, basta accedere a Firewall > Aliases, cliccare su aggiungi
e compilare i 4 campi della scheda.

Di seguito sonoriportati alcuni esempi di Alias:
Alias di tipo HOST
Alias di tipo Port
Alias di tipo Network

Gli alias di tipo Netwok sono molto comodi perchè ci permettono di indicare in un colpo solo un range di IP senza doverli riportare uno ad uno.
Un'altro aspetto interessante per gli alias di tipo network è la possibilità di inserire il range con la seguente notazione ip_iniziale-ip_finale (es: 192.168.100.50-192.168.100.93), dopo aver cliccato su salva sarà il sistema a ricostruire tutte le sottoclassi necessarie a descrivere tutto il range (Vedi screenshot precedente).

Analogamente a quanto visto per gli indirizzi IP è possibile specificare anche dei range di porte utilizzando la seguente notazione porta_iniziale:porta_finale (es: 8000:8100).

Di seguito è riportato uno screenshot che mostra come appaiono le rules create utilizzando gli alias. Nello screenshot si può notare che posizionando il mouse sul nome di un alias, appare un tooltip che riporta l'IP/porta/network rappresentato dall'alias.

3 commenti:

Anonimo ha detto...

Salve Fabio,
i miei complimenti per il contributo che dai allo sviluppo di questo prodotto, che io inizio a conoscere adesso.
A proposito di questo ti volevo chiedere se gli alias di porte, in una regola di NAT, possono essere interpretate sia nella parte WAN che nella parte LAN. Intendo dire se creo un alias del tipo porta 30000 , 25000, 20000 e poi le voglio nattare con le seguenti porte 3000, 2500 e 2000, pfSense sai come si comporta.
Spero di essere stato chiaro.
Grazie

Fabio Viganò ha detto...

Ciao,
purtroppo non ho mai provato ad effettuare un nat in questo modo e non so dirti se e come funzioni.
Utilizzo spesso gli alias in NAT e rules ma senza modifica di porta. Esempio: se creo un alias WEB corrispondente alle porte 80 e 443
poi creo un nat che prende tutto il traffico diretto alla wan sulle porte WEB e lo natto su un ip interno ma sempre su porte WEB.
Ciao

Soup Accessories ha detto...

Greaat post thanks

Nome

Email *

Messaggio *