Firewall

NethServer can act as firewall and gateway inside the network where it is installed. All traffic between computers on the local network and the Internet passes through the server that decides how to route packets and what rules to apply. Firewall mode is enabled only if the system has at least one network interface configured with red role.

The Firewall application can be installed from Software center and includes:

  • Multi WAN support up to 15 connections
  • Gestione regole firewall
  • Gestione banda (QoS)
  • Port forwarding
  • Regole per routing traffico su una specifica WAN
  • Deep packet inspection (DPI)
  • Smart search to quickly find existing rules or objects
  • Real time charts

Real time charts display traffic and service statistics collected by Netdata. To avoid performance penalty on slow hardware, Netdata is not part of the firewall application and can be installed from Software center.

Apply and revert

Every time the firewall configuration has been changed, modifications are not applied immediately but saved in a temporary store. For the changes to take effect, click on the Apply button at the top right corner of the page.

As long as the new rules created have not been applied, you can revert all changes by clicking the Revert button at the top right corner of the page.

Policy

Ogni interfaccia di rete è identificata da un colore che ne indica il ruolo all’interno del sistema. Vedi Rete.

Quando un pacchetto di rete attraversa una zona del firewall, il sistema valuta una lista di regole per decidere se il traffico debba essere bloccato o permesso. Le policy sono le regole di default che vengono applicate se il traffico di rete non corrisponde a nessun criterio esistente.

Le policy del firewall permettono il traffico fra zone seguendo lo schema qui sotto:

GREEN -> BLUE -> ORANGE -> RED

Il traffico è permesso da sinistra a destra, bloccato da destra a sinistra.

To display the list of active policies click on the Policies button inside the Rules page.

Policies can be changed by creating specific rules between zones from the Rules page or by accessing the Traffic to Internet section inside the Settings page.

Settings

In this section you can change standard firewall behavior.

Traffic to Internet

The default firewall policy allows all traffic from green to red interfaces (Internet). To change the default policy for Internet access, enable or disable the Traffic to Internet (red interface) option. If disabled all traffic from green to red network is blocked. Specific traffic can be allowed creating rules from Rules page.

Traffic between VPNs

By default traffic between different VPN tunnels is not allowed, but sometimes you would need to allow it like when a OpenVPN roadwarrior client should reach a remote resource behind an IPsec tunnel. To permit traffic between VPNs, just enable the Traffic between OpenVPN roadwarrior, OpenVPN tunnels and IPSec tunnels option. Extra block rules can be created from Rules page to customize the network access between VPN zones.

Ping from Internet

Allows NethServer to answer ICMP requests from red interfaces (Internet).

Hairpin NAT

By default, all port forwards are available only for hosts inside the WAN. When Hairpin NAT is active, hosts on the local zones will be able to reach forwarded ports using both public and private firewall IP addresses.

Whenever possible it is recommended to avoid enabling this option and correctly configure split DNS to resolve service names inside the LAN.

If hair-pinning is still required, check the Enable hairpin NAT option.

Nota

This functionality requires NethServer to have a public IP address on the red interface.

Application Layer Gateway (ALG)

Application layer gateways handle dynamic firewall rules for certain protocols. Many ALGs are enabled by default on NethServer, to allow some protocols (such as FTP, SIP, etc) to operate through NAT. ALGs inspect and rewrite specific network packets and automatically open required ports.

Enable SIP-ALG and H.323-ALG

Some PBXs may not work properly with SIP-ALG and H.323-ALG. In case of audio and call problems with your PBX or your VoIP client try to disable them.

Binding IP/MAC

The firewall can use the list of DHCP reservations to strictly check all traffic generated from hosts inside local networks. DHCP server should could be disabled but the administrator must still create reservations to associate the IP with a MAC address. See Server DHCP e PXE for more details.

When IP/MAC binding is enabled, the administrator will choose what policy will be applied to hosts without a DHCP reservation. The common use is to allow traffic only from known hosts and block all other traffic. In this case, hosts without a reservation will not be able to access the firewall nor the external network.

Per abilitare il traffico solo dagli host conosciuti, seguire questi passi:

  1. Creare una DHCP reservation per l’host
  2. Andare sulla pagina Regole firewall e selezionare Configura dal menu
  3. Selezionare Validazione MAC (Binding IP/MAC)
  4. Spuntare Blocca traffico come policy per gli host senza riserva DHCP

Nota

Ricordarsi di creare almeno una DHCP reservation prima di abilitare la modalità binding IP/MAC, altrimenti nessun host sarà in grado di configurare il server usando l’interfaccia web o SSH.

Regole

Le regole vengono applicate a tutto il traffico di rete che attraversa il firewall. Quando un pacchetto di rete transita da una zona all’altra, il sistema cerca fra le regole configurate. Se le caratteristiche del pacchetto corrispondono a quelle descritte in una regola, tale regola viene applicata.

Nota

L’ordine delle regole è molto importante. Il sistema applica sempre la prima regola che corrisponde al traffico in transito.

Una regola si compone di cinque parti principali:

  • Azione: azione da intraprendere quando si applica la regola
  • Origine traffico: indirizzo di origine del traffico, può essere una zona, una rete o un singolo host
  • Destinazione traffico: indirizzo di destinazione del traffico, può essere una zona, una rete o un singolo host
  • Service (optional)
  • Time condition (optional)

Le azioni disponibili sono:

  • ACCEPT: accetta il traffico
  • REJECT: blocca il traffico ed informa il mittente che la richiesta effettuata non è permessa
  • DROP: blocca il traffico, i pacchetti vengono scartati e il mittente non viene notificato

Source and destination fields accept built-in roles, Oggetti firewall and raw IPv4 addresses or CIDR. Such raw addresses can be later converted to firewall objects using the Create Host and Create CIDR subnet actions which will appear next to the address itself.

If VPN application is installed, there are also two extra zones available:

  • ivpn: all traffic from IPSec VPNs
  • ovpn: all traffic from OpenVPN VPNs

The configuration of firewall rules is split into two different pages:

  • Rules: manage rules applied only to the network traffic traversing the firewall.
  • Local rules: manage rules applied only to the network traffic generated from the firewall, or directed to the firewall itself.

When creating new rules, only the most common fields are shown. To show other less common parameters click the Advanced label.

Nota

Se non ci sono interfacce red configurate, il firewall non genera regole per le zone blue e orange.

REJECT vs DROP

Come regola generale, si consiglia di usare REJECT quando si desidera informare l’host sorgente del traffico che la porta a cui si sta provando ad accedere è chiusa. Solitamente le regole che rispondono alle richieste della LAN possono usare REJECT.

Per le connessioni provenienti da Internet si consiglia di usare DROP, al fine di minimizzare la rivelazione di informazioni ad eventuali attaccanti.

Log

When a rule matches the ongoing traffic, it’s possible to register the event on a log file by checking the option from the web interface. Firewall log is saved in /var/log/firewall.log file. The log can be inspected from the command line or using the Logs page.

Deep Packet Inspection (DPI)

Deep Packet Inspection (DPI) is an advanced packet filtering technique.

Attivando il modulo DPI, vengono rese disponibili delle voci aggiuntive per il campo Servizi disponibile nelle schermate di creazione/modifica delle regole firewall. Queste voci sono etichettate come protocollo DPI tra le usuali voci servizio e servizio di rete.

Il modulo DPI utilizza la libreria nDPI <https://www.ntop.org/products/deep-packet-inspection/ndpi/> _ in grado di identificare oltre 250 tipi di traffico di rete suddiviso in protocolli di rete (ad esempio OpenVPN, DNS) e applicazioni Web (ad esempio, Netflix, Spotify).

Le regole del firewall che utilizzano i servizi DPI vengono generate all’interno della tabella mangle, per questo motivo tali regole hanno alcune limitazioni:

  • L’azione reject non è supportata, va utilizzata l’azione drop per bloccare il traffico
  • non è possibile utilizzare gli oggetti tutti (any) e firewall come sorgente o destinazione
  • l’azione devia su X non è supportata: l’identificazione del protocollo inizia spesso dopo che la connessione è già stata stabilita, quindi la policy di routing non può essere modificata

Anche se DPI può identificare il traffico da/per specifici siti web come Facebook, è più adatto per bloccare o priorizzare protocolli come VPN, FTP, ecc. L’accesso ai siti Web deve essere disciplinato utilizzando il Proxy web.

E” opportuno sottolineare che alcuni protocolli DPI (come Amazon) possono corrispondere a grandi CDN, quindi è opportuno non bloccare tali protocolli usando le regole DPI a meno che non si desideri impedire l’accesso a migliaia di siti.

La marcatura DPI viene applicata automaticamente anche al traffico proveniente dal firewall stesso, come il traffico HTTP dal proxy web

L’elenco completo dei protocolli DPI, insieme ai contatori per il traffico corrispondente, è disponibile nella pagina DPI sotto la categoria Stato del menu di sinistra.

Regole sulle connessioni esistenti

Per default, quando una nuova regola viene creata, si applica solo alle nuove connessioni. Ma in alcuni scenari, l’amministratore può aver la necessità di applicare la regola anche sulle connessioni esistenti.

Se l’opzione Applica alle connessioni esistenti è abilitata, la regola sarà applicata a tutte le connessioni incluse quelle già stabilite.

Esempi

Si riportano di seguito alcuni esempi di regole.

Bloccare tutto il traffico DNS proveniente dalla LAN e diretto verso Internet:

  • Azione: REJECT
  • Origine: green
  • Destinazione: red
  • Servizio: DNS (UDP porta 53)

Permettere alla rete ospiti di accedere a tutti i servizi in ascolto sul Server1:

  • Azione: ACCEPT
  • Origine: blue
  • Destinazione: Server1
  • Servizio: -

WAN

Con il termine WAN (Wide Area Network) si indica una rete pubblica esterna al server, solitamente collegata a Internet. I fornitori di collegamenti WAN sono detti provider.

All WAN network interfaces are labeled with the red role and are listed on the top of the page, just below bandwidth usage charts. Rules can be created under the Rules section on the same page.

If the server has two or more configured red interfaces, it is required to correctly fill, Download bandwidth and Upload bandwidth fields from the Network page. Download and upload bandwidth can be automatically calculated using the Speedtest button.

Each provider represents a WAN connection and is associated with a network adapter. Each provider defines a weight: the higher the weight, the higher the priority of the network card associated with the provider.

The system can use WAN connections in two modes:

  • Balance: tutti i provider sono utilizzati contemporaneamente in base al loro peso
  • Active backup: i provider sono utilizzati uno alla vola a partire da quello con il peso più alto. Se il provider in uso perde la connessione, tutto il traffico verrà dirottato sul successivo provider.

Per determinare lo stato di un provider, il sistema invia un pacchetto ICMP (ping) ad intervalli regolari. Se il numero di pacchetti persi supera una determinata soglia, il provider viene disabilitato.

L’amministratore può configurare la sensibilità del monitoraggio attraverso i seguenti parametri:

  • percentuale di pacchetti persi
  • numero consecutivo di pacchetti persi
  • intervallo di invio fra un pacchetto e l’altro

To change WAN mode and link monitoring options click on Configure button.

The network traffic can be routed to specific WANs by creating rules inside the Rules section on this page. After creating or editing rules, make sure to apply the changes. See Apply and revert for details.

Esempio

Dati due provider così configurati:

  • Provider1: interfaccia di rete eth1, peso 100
  • Provider2: interfaccia di rete eth0, peso 50

Se è attiva la modalità bilanciata, il server indirizzerà il doppio delle connessioni sul Provider1 rispetto al Provider2.

Se è attiva la modalità backup, il server indirizzerà tutte le connessioni sul Provider1; solo se il Provider1 diventa inutilizzabile tutte le connessioni saranno indirizzate sul Provider2.

Port forward

Il firewall impedisce che richieste iniziate dall’esterno possano accedere alle reti private. Se ad esempio all’interno della rete è presente un server web, solo i computer presenti nella rete green potranno accedere al servizio. Qualsiasi richiesta fatta da un utente esterno alle reti locali viene bloccata.

Per permettere a qualsiasi utente esterno l’accesso al server web si utilizza il port forward. Il port forward è una regola che consente un accesso limitato alle risorse delle LAN dall’esterno.

Quando si configura il server, è necessario scegliere le porte in ricezione o in ascolto su cui verrà redirezionato il traffico in ingresso nella scheda red. Nel caso di un server web, le porte in ascolto sono solitamente la porta 80 (HTTP) e 443 (HTTPS).

Quando si crea un port forward è necessario specificare almeno i seguenti parametri:

  • la porta di origine
  • la porta di destinazione, che può essere diversa dalla porta di origine
  • The network protocol like TCP, UDP, TCP & UDP, AH, ESP or GRE
  • l’indirizzo dell’host a cui deve essere instradato il traffico
  • è possibile specificare un range di porte utilizzando i due punti come separatore nella porta di origine (es: 1000:2000), in tale caso particolare il campo porta di destinazione dovrà rimanere vuoto

Port forwards are grouped by destination host and support raw IP addresses along with firewall objects.

By default, all port forwards are available only for hosts inside the WAN, see Hairpin NAT to change such behavior.

Esempio

Dato il seguente scenario:

  • Server interno con IP 192.168.1.10, detto Server1
  • Server web in ascolto sulla porta 80 su Server1
  • Server SSH in ascolto sulla porta 22 su Server1
  • Altri servizi nell’intervallo di porte tra 5000 e 6000 sul Server1

In caso si voglia rendere accessibile dall’esterno il server web direttamente sulla porta 80, si dovrà creare un port forward fatto così:

  • porta origine: 80
  • porta destinazione: 80
  • indirizzo host: 192.168.1.10

Tutto il traffico che arriva sulle reti red del firewall sulla porta 80, verrà redirezionato alla porta 80 di Server1.

In caso si voglia rendere accessibile dall’esterno il server SSH sulla porta 2222, si dovrà creare un port forward fatto così:

  • porta origine: 2222
  • porta destinazione: 22
  • indirizzo host: 192.168.1.10

Tutto il traffico che arriva sulle reti red del firewall sulla porta 2222, verrà redirezionato alla porta 22 di Server1.

Nel caso in cui si desideri rendere il server accessibile dall’esterno usare un intervallo di porte tra 5000 e 6000, sarà necessario creare un port forward come questo:

  • porta origine: 5000:6000
  • porta destinazione:
  • indirizzo host: 192.168.1.10

Tutto il traffico che arriva sulle reti red del firewall per l’intervallo di porte compreso tra 5000 e 6000 verrà redirezionato alle stesse porte sul Server1.

Limitare accesso

By default, the field access to port forward is granted to anyone. You can restrict access to port forward only from some IP addresses or networks by adding entries to Restrict access to field. This configuration is useful when services should be available only from trusted IPs or networks.

Example of valid entries:

  • 10.2.10.4: abilita il port forward solo per il traffico proveniente dall’IP 10.2.10.4
  • 10.2.10.0/24: abilita il port forward solo per il traffico proveniente dalla rete 10.2.10.0/24

SNAT 1:1

One-to-one source NAT (SNAT) is a way to make systems behind a firewall and configured with private IP addresses appear to have public IP addresses. If you have a bunch of public IP addresses and if you want to associate one of these to a specific network host, NAT 1:1 is the way. SNAT is available only if there is at least one IP alias configured on red network interfaces.

This feature only applies to network traffic from a host inside the local network to the public Internet. It does not affect in any way the traffic from the Internet toward the alias IP. If you need to route some specific traffic to the internal host use the port forward as usual.

Se dovesse essere necessario instradare tutto il traffico verso l’host interno (configurazione non raccomandata) andrà definita una regola di port forward per i protocolli TCP & UDP che abbia come porte sorgenti il range 1:65535.

Esempio

Nella nostra rete abbiamo un host di nome host_esempio che ha IP 192.168.5.122. Abbiamo inoltre associato un IP pubblico di cui disponiamo 89.95.145.226 come alias dell’interfaccia eth0 (RED).

Vogliamo quindi mappare il nostro host interno (host_esempio - 192.168.5.122) con l’IP pubblico 89.95.145.226.

Dal pannello NAT 1:1 andremo a scegliere per l’IP 89.95.145.226 (che compare come campo in sola lettura) il corrispondente host (host_esempio) che scegliamo dal combobox. Così facendo abbiamo configurato il NAT uno-a-uno per il nostro host.

Gestione banda

La gestione banda (traffic shaping) permette di applicare regole di priorità sul traffico che attraversa il firewall. In tal modo è possibile ottimizzare la trasmissione, controllare la latenza e sfruttare al meglio la banda disponibile.

Per abilitare il traffic shaping è necessario conoscere l’esatta quantità di banda disponibile in download e upload. Accedi alla pagina guilabel Network e imposta attentamente i valori di larghezza di banda.

Se la larghezza di banda di download e upload non è impostata per un’interfaccia red, le regole di shaping non saranno abilitate per quell’interfaccia.

Nota

Be sure to specify an accurate estimate of the bandwidth on network interfaces. To pick an appropriate setting, please do not trust the nominal value, but use the Speedtest button or online tools to test the real provider speed.

In caso di congestione da parte del provider, non c’è nulla da fare per migliorare le prestazioni.

Traffic shaping classes are used to commit bandwidth for specific network traffic. Configuration of traffic shaping is composed of 2 steps:

  • Creazione di classi per gestione della banda
  • assegnazione del traffico di rete a una classe specifica

Classi

Il traffic shaping viene ottenuto controllando il modo in cui la larghezza di banda viene allocata alle classi.

Ogni classe può avere una percentuale riservata. Una percentuale riservata è la larghezza di banda che una classe avrà a disposizione in caso di necessità. La larghezza di banda disponibile è data dalla somma della larghezza di banda non impegnata e della larghezza di banda impegnata di una classe, ma non attualmente utilizzata dalla classe stessa.

Ogni classe può avere anche una banda massima. Se impostato, la classe può superare la banda stabilita,fino al banda massima. Una classe supererà la sua banda riservata solo se è disponibile abbastanza banda.

Traffic shaping classes can be defined under Traffic shaping page. When creating a new class, fill the following fields.

  • Class name: un nome rappresentativo
  • : guilabel:Description: descrizione facoltativa per la classe

Limits under Download bandwidth limits section:

  • Min: minimum reserved download bandwidth, if empty no download reservation will be created
  • Max: maximum allowed download bandwidth, if empty no upper limit will be set

Limits under Upload bandwidth limits section:

  • Min: minimum reserved upload bandwidth, if empty no upload reservation will be created
  • Max: maximum allowed download bandwidth, if empty no upper limit will be created

For each class the bandwidth can be specified using the percentage of available network bandwidth or with absolutes values expressed in kbps. As default, a traffic shaping class is applied to all red network interfaces. Such behavior can be changed by selecting an existing red interfaces under the Bind to menu inside the Advanced section.

Il sistema fornisce due classi preconfigurate:

  • high: traffico ad alta priorità generico, può essere assegnato tipo ad SSH
  • low: traffico a bassa priorità, può essere assegnato a un servizio come scambio di file peer to peer

Il sistema cerca sempre di previnire la saturazione della banda quando ci sta un carico di rete elevato.

Le classi ricevono la banda non allocata in proporzione alla loro banda minima . Per esempio, se una la classe A ha 1Mbit di banda minima e la classe B ha 2Mbit, allora la classe B riceverà il doppio della banda non allocata rispetto alla classe A. In ogni caso, tutta la banda non allocata verrà utilizzata dalle classi.

Network traffic can be shaped by creating rules under the Rules section in this page. After creating or editing rules, make sure to apply the changes.

For more info, see FireQOS tutorial.

Oggetti firewall

Gli oggetti firewall sono delle rappresentazioni dei componenti della rete e sono utili per semplificare la creazione di regole.

Esistono 6 tipi di oggetti, 5 di questi sono relativi a sorgenti e destinazioni e sono:

  • Host: rappresentano computer locali e remoti. Esempio: web_server, goofy_pc

  • Gruppi di host: rappresentano gruppi omogenei di computer. Gli host all’interno di un gruppo devono essere raggiungibili attraverso la stessa interfaccia. Esempio: servers,``router``

  • Range IP: una lista di indirizzi IP espressa come un intervallo. Esempio: myrange, composto da IP dal 192.168.1.100 al 192.168.1.120

  • Reti CIDR: utilizzare una rete CIDR per semplificare e rendere più leggibili le regole.

    Esempio 1: gli ultimi 14 indirizzi IP della rete sono assegnati ai server (192.168.0.240/28). Esempio 2 : Più interfacce green configurate ma vogliamo creare una regola di firewall valida solo per una di queste green (192.168.2.0/24).

  • Zone: rappresentano reti di host, vanno espresse in notazione CIDR, utili se si vuole definire un segmento di rete con caratteristiche differenti dalla zona di cui fa parte. Solitamente utilizzate per esigenze molto specifiche.

    Nota

    Di default gli host che fanno parte di una Zona non possono fare alcun tipo di traffico, sarà necessario quindi creare tutte le regole necessarie a caratterizzarne il comportamento.

  • Condizione temporali: possono essere associati alle regole del firewall per limitarne l’effetto ad un determinato periodo di tempo.

    Nota

    Le regole che hanno condizioni temporali sono applicate solo per le nuove connessioni. Esempio: se si stanno bloccando le connessioni HTTP dalle 09:00 alle 18:00, tutte le connessioni stabilite prima delle ore 09:00 saranno permesse fino a quando non termineranno. Qualsiasi nuova connessione effettuata dopo le 09:00 sarà bloccata.

  • Servizi: rappresentano un servizio in ascolto su un host. Esempio: ssh, https

  • MAC address: un host identificato da un indirizzo MAC. Il MAC address deve essere collegato ad una zona inesistente.

Durante la creazione delle regole, è possibile usare i record definiti in DNS e Server DHCP e PXE come oggetti host. Inoltre ogni interfaccia di rete con un ruolo associato è automaticamente elencata fra le zone disponibili.

Connections

This page keeps track of all active connections. Connections can be filter by Protocol and State. The list of connections is not refreshed in real time. To list new connections click the Refresh button.

The administrator can delete a single connection or flush the whole connection tracking table using Delete all connections button.