Se a casa, o anche in ufficio, avete a disposizione una singola connessione ad internet e volete collegare più computer, avete a disposizione un computer e linux questo articolo è quello che fa per voi.

Ecco quello che andremo a realizzare, il componente contenuto nel quadrato rosso, un gateway di accesso alla rete.

L’hardware usato per realizzare il gateway potrebbe essere un vecchio computer oppure un nuovo minicomputer (ad esempio basati su processore Atom), il vantaggio del computer nuovo è in termini di consumo energetico, probabilmente consumerà meno del vecchio pc. Considerando che ipoteticamente il gateway sara acceso 24 ore al giorno non è un fattore da trascurare. La macchina scelta per realizzare il sistema dipende dal numero di client connessi. Per un ufficio con molti dipendenti potrebbe essere opportuno scegliere un server di buone prestazioni. La macchina dovrà poi essere dotata di due schede di rete, una collegata alle apparecchiature del vostro ISP e quindi verso internet, l’altra sullo switch (l’altro apparecchio presente sullo schema) della vostra LAN interna.

Assumiamo che abbiate già installato linux e sia configurato con l’interfaccia eth0 funzionante verso internet e l’interfaccia eth1 collegata allo switch interno.
I passi rimanenti da fare sono

  • Configurare un ip statico sull’interfaccia eth1
  • Configurare il firewall e  abilitare l’ip forward
  • Installare e configurare un DHCP server
  • Installare e configurare un DNS server

Configurare un ip statico sull’interfaccia eth1

Da root con il comando ifconfig eth1 192.168.0.1/24 assegniamo l’ip all’interfaccia (oppure ip addr add 192.168.0.1/24 dev eth1 per chi usa iproute2). L’ip assegnato in questo modo verrà mantenuto solo fino al riavvio della linuxbox, fate referimento alle istruzioni specifiche della vostra distribuzione su come configurare gli ip statici permanentemente.

Configurare il firewall e abilitare l’ip forward

Come prima cosa abilitiamo l’ip forward echo 1 > /proc/sys/net/ipv4/ip_forward ricordiamoci di configurarlo permanentemente nel file /etc/sysctl.conf ma anche quì fate riferimento alla documentazione della distribuzione.
Passiamo ora a configurare iptables

iptables -P INPUT DROP #Di default eliminiamo tutto il traffico in ingresso
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT #Accettiamo il traffico proveniente dalla LAN
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT #Accettiamo il traffico di risposta a connessioni inizate dal gateway
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT #Consentiamo al traffico generato dalla LAN di transitare attraverso il gateway su internet
iptables -A FORWARD -m state –state RELATED,ESTABLISHED -j ACCEPT #Consentiamo al traffico di risposta da internet verso la LAN.
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE #Mascheriamo gli ip della LAN interna usando il NAT.

A questo punto vale la pena fermarsi e fare una verifica che fino a qui tutto funzioni correttamente, prendiamo uno dei client collegati alla LAN ed assegnamogli un ip statico, ad esempio 192.168.0.2/24. e default gateway 192.168.0.1. Su client linux si fa con questi 2 comandi ifconfig eth1 192.168.0.2/24 e route add default gateway 192.168.0.1 mentre su un sistema windows nella finestra di configurazione ip dell’ interfaccia di rete trovate i tre campi ip, netmask (che andra specificata come 255.255.255.0 l’equivalente di /24 in notazione CIDR) e gateway, lasciamo per ora in bianco i campi DNS. Fatta la configurazione sul client lanciamo ping 192.168.0.1, se riceviamo risposta il nostrao gateway è correttamente collegato alla LAN. A questo punto proviamo a fare un ping su di un ip esterno (ad esempio 8.8.8.8) in caso di risposta il gateway è correttamente configurato per inoltrare il traffico dalla LAN ad internet e viceversa.

installare e configurare un dhcp server

Un dhcp server non è fondamentale, potremmo anche scegliere di configurare gli IP statici su tutti i client connessi alla rete ma, se siamo in ufficio potrebbero esserci degli utenti occasionali che hanno necessità di connettersi alla LAN, ma anche a casa, se solo pensiamo agli smartphone, vorremo poterli collegare facilmente alle reti wireless senza dover impostare gli IP ogni volta, ecco che un dhcp server diventa quasi indispensabile.
Una volta installato sulla vostra linuxbox (seguite le procedure specifiche per la vostra distribuzione) andiamo a configurarlo, il file di configurazione si trova solitamente sotto /etc/dhcp/dhcpd.conf, questa che segue è una configurazione minimale sufficiente ai nostri scopi

option domain-main-server 192.168.0.1; #Specifichiamo l’indirizzo ip del nostro DNS che andremo ad installare sulla stessa macchina al passo successivo
default-lease-time 600; #Specifichiamo per quanti secondi è valido l’ip assegnato, scaduto il lease il client dovra chiederne il rinnovo. Se la topologia cambia poco frequentemente si può alzare il valore.
#Definiamo una subnet che deve comprendere l’ip dell’interfaccia su cui vogliamo che il server dhcp si metta in ascolto.Nel nostro esempio eth1.
subnet 192.168.0.0 netmask 255.255.255.0 {

range 192.168.0.100 192.168.0.199; #Il range nel quale il dhcp assegnerà gli indirizzi, riserviamo i primi.
option routers 192.168.0.1; #L’indirizzo del default gateway
#Vogliamo assegnare ad un determinato Host di nome server1(riconosciuto dal MAC-Address) un ip a nostra scelta.
host server1{

hardware ethernet 11:22:33:44:55:66; #Il MAC dell’hosts
fixed-address 192.168.0.2; #L’ip che vogliamo sia assegnato.
}

}

Bene! La nostra configurazione minimale è finita. A questo punto lanciamo il demone con /etc/init.d/dhcpd start e proviamo a collegare un client configurato con ip dinamico alla LAN, se dopo pochi secondi riceviamo un indirizzo ip manca un ultimo step per navigare.

Installare e configurare un DNS server

Come il DHCP anche questa componente non è fondamentale, ma può risultare comoda nel caso scegliessimo di non averla dovremmo impostare come DNS server quelli forniti dal nostro Internet Service Provider oppure usare dei dns pubblici.
Di DNS ce ne sono di diversi, la nostra scelta ricade su BIND (Berkeley Internet Name Domain) che è sicuramente il più usato in ambiente linux e la configurazione (almeno per i nostri scopi dovo non lo usiamo come master o slave di una zona) è piuttosto semplice.
Una volta installato apriamo il file di configurazione, solitamente sotto /etc/bind/named.conf, e aggiungiamo queste direttive:

#Definiamo un’Access Control List Fidata, la nostra sottorete.
acl “trusted” {
192.168.0.0/24;
};

#Specifichiamo l’indirizzo sul quale mettere in ascolto il DNS e autorizziamo le Query provenienti dalla LAN
options {
listen-on { 192.168.0.1; };
allow-query { trusted; };
};

Finito!! Come ultima prova, configurate anche il dns dinamico sul vostro client che avete usato come test fino ad ora, provate a fare un ping a www.un-sito-che-esiste.it se il nome viene risolto in indirizzo IP tutto funziona!

Buona Navigazione!

Lascia un Commento

Devi aver fatto il login per inviare un commento

Page 1 of 11