2) Network Linux

Configurare la rete su Linux

Tipicamente la configurazione di un host in rete prevede pochi dati fondamentali: Indirizzo IP, subnet mask, default gateway e DNS server. Esistono molteplici metodi per configurare il servizio di rete in Linux, molto di quanto viene qui riportato si applica a tutti gli Unix:
– editare i singoli file di configurazione del networking (ristartare il servizio per applicare le modifiche);
– usare comandi shell come
ifconfig, route
– utilizzare strumenti di configurazione con interfaccia a finestra come netconfig, linuxconf, webmin e altri facilmente individuabili su desktop KDE o GNOME.

File di configurazione:
/etc/sysconfig/network Contiene le principali configurazioni per il Networking: hostname, domainname, default gateway (tipico di RedHat).
/etc/sysconfig/network-script/ifcfg-XXX Directory contenente i file di configurazione delle singole interfacce (tipico di RedHat).
/etc/hosts Contiene il mapping statico fra indirizzi e hostname ed alias. Segue un esempio.
/etc/services Contiene il mapping tra i numeri di porta e i nomi dei servizi.
E’ un file che solitamente non si modifica, salvo l’aggiunta di porte e protocolli custom.
/etc/host.conf Specifica l’ordine secondo il quale il sistema effettuerà la ricerca di informazioni per risolvere gli indirizzi. Usato dalla resolver library in sistemi con libc versione 5.
order hosts,bind ; specifica di usare prima /etc/hosts e poi il DNS per risolvere gli IP.
/etc/nsswitch.conf Stessa funzione di host.conf nei sistemi con libc versione 6 (glibc). In pratica è sempe meglio avere entrambi i file correttamente configurati.
/etc/resolv.conf File di configurazione del client DNS ovvero contiene gli indirizzi del server DNS e un possibile dominio dell’host e l’ordine di ricerca

Comandi comuni
Tipicamente su Linux e su Unix i comandi che bastano per configurare la rete (con privilegi da root (sono:
ifconfig [interface] [options] | address Permette di configurare le interfacce di rete dell’host. Es: ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255 up. NOTA: Non esiste nessun controllo sulla corrispondenza fra netmask e broadcast.
route [ opzioni ] [comando] [parametri] Permette di manipolare la tabella di routing del kernel. Es: route add -net 0.0.0.0/0 gw 192.168.0.1
/etc/init.d/network Script di avvio/stop del networking. Es: Per riavviare il subsystem rete dopo una riconfigurazione basta scrivere /etc/init.d/network restart.
ip [ opzioni ] oggetto { comando } Comando estremamente potente e flessibile disponibile a chi ha installato i tool iproute2
E’ possibile associare più indirizzi ip appartenenti alla stessa rete su un’unica interfaccia, ovvero è possibile associare più Alias a interfacce di rete.

I nomi dei device di rete su Linux

Linux, a differenza di altri Unix come Solaris (dove ogni modello di scheda di rete ha un nome diverso in /dev) raggruppa i nomi delle interfacce di rete secondo il tipo (etherner, token ring, tunnel. ppp ecc.) Su Linux, a prescindere dal modello, la prima scheda di rete ethernet ha sempre nome eth0, le successive hanno nomi eth1eth2 ecc.
Interfacce tipo
eth0:0, eth0:1 sono interfacce logiche usate per ip virtuali attestati sulla stessa interfaccia fisiche.
Analogamente esistono nomi specifici per diversi protocolli di data link:
token ring hanno nomi tipo
tr0, tr1:0
ppp:
ppp0
– il loopback (127.0.0.1, localhost) si rappresenta con
lo
Anche delle VPN possono attestarsi su nomi di interfacce di rete come:
Ipsec:
ipsec0
OpenVPN:
tun0

ifconfig

Ifconfig serve essenzialmente a configurare l’indirizzo ip di un’interfaccia di rete, tipicamente una ethernet.
Un computer può avere più di un indirizzo IP. Ad ogni interface può corrispondere uno o più indirizzi IP.
per esempio potremmo avere un computer con due ethernet interface e avremmo quindi una eth0 e una eth1 (quindi due indirizzi), ma potremmo avere anche degli alias, quindi eth0:1, eth0:2 e così via.

Con ifconfig si possono configurare altri aspetti di un’interface, anche se molti parametri saranno difficilmente cambiati. Per esempio si possono cambiare e MTU e metrica, abilitare o disabilitare il multicast e la modalità promiscqua (di solito attivata automaticamente da programmi di sniffing). Sulla manuale (man ifconfig) si possono trovare queste opzioni, che consiglio di leggere.
Sicuramente i comandi dati sono sufficienti ad una configurazione standard.

Vediamo una panoramica dei principali comandi per utilizzare ifconfig:

ifconfig [interface] options | address
ifconfig -a mostra la configurazione IP di tutte le interface. Su molti sistemi è sufficiente digitare ifconfig, senza l’opzione -a. Un esempio dell’output di ifconfig può essere questo (i commenti spiegano le varie righe):
eth0      Link encap:Ethernet  HWaddr 00:50:8B:B0:15:7F
indica il tipo di hardware e il suo indirizzo fisico (MAC address)
inet addr:192.168.0.1  Bcast:192.168.1.255  Mask:255.255.255.0
indica indirizzo IP, indirizzo di broadcast e maschera della rete.
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
Indica lo stato (UP) e le opzioni attive (accetta broadcast e multicast) l’MTU e la Metrica.
RX packets:2590603 errors:0 dropped:0 overruns:0 frame:0
TX packets:2713120 errors:0 dropped:0 overruns:1 carrier:0
collisions:0 txqueuelen:100
RX bytes:987732693 (941.9 Mb)  TX bytes:1198865677 (1143.3 Mb)

Mostra le statistiche in ricezione (RX) e trasmissione (TX)
Interrupt:12 Base address:0x6100
Mostra l’indirizzo hardware della scheda

ifconfig interface mostra la configurazione della interface specificata. Per esempio ifconfig eth0.
ifconfig interface ip netmask broadcast up/down attiva disattiva una determinata interface. Con questo comando possiamo facilmente configuare e attivare una interface. Questo si applica sia come indirizzo primario che come alias, consentendoci di creare più alias alla stessa interfaccia.

Vediamo qualche esempio:
ifconfig eth0 192.168.0.1 up assegna l’indirizzo IP 192.168.0.1 e attiva l’interface (di default viene assegnata la classe C in questo caso, che sarebbe stata una classe A se avessimo usato 10.0.0.1)
ifconfig eth0:1 192.168.0.1 up assegna l’indirizzo IP 192.168.0.1 alla eth0:1 e attiva l’interface. Eseguendo questo comando di fatto assegniamo un’altro indirizzo IP alla interface.
ifconfig eth0 192.168.0.1 netmask 255.255.255.128 broadcast 192.168.0.127 up assegna l’indirizzo IP 192.168.0.1 e attiva l’interface, creando una mask 192.168.0.0/25 (In questo modo la Classe C è divisa in due subnet di 126 indirizzi) e assegnando come indirizzo di broadcast 192.168.0.127.

route

Route è il comando Linux che viene utilizzato per manipolare le tabelle di routing. Permette di aggiungere ed eliminare route statiche e default gateway, oltre che semplicemente visualizzare la tabella di routing di un sistema.
Non è comune in altri Unix.

route add [-net|-host] indirizzo [gw gateway] [netmask netmask] [mss mss] [metric metric] [dev device]
route del indirizzo

Per aggiungere una route statica per un’intera rete si usa l’opzione add e si devinisce la rete con -net. Per esempio:
route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.0.0.254
Aggiunge una route statica per la rete 192.168.0.0/24 usando come gateway 10.0.0.254.

Per impostare il default gateway si può digitare qualcosa come:
route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.1 oppure:
route add default gw 10.0.0.1

Per cancellare una route esistente basta indicare il nome della rete:
route del -net 192.168.0.0

Per visualizzare la tabella di route basta: route, se si vuole evitare il reverse lookup degli IP e velocizzare l’operazione scrivere: route -n

Per visualizzare la cache del sistema sulle route usate: route -C

/etc/resolv.conf

File di configurazione per il settaggio dei server DNS che il nostro sistema deve utilizzare (più precisamente è il file che configura il comportamente delle librerie del resolver, utilizzate da tutti i programmi fare query DNS).

[neo@dido neo]$ cat /etc/resolv.conf
Entry che identifica il nome del dominio a cui appartiene la propria macchina
domain
dominio.it
Elenca domini che vengono aggiunti a nomi di host per ricerche DNS. Può generare traffico inutile e ritardi.
search
dominio2.it dominio.com
Indirizzo IP del DNS primario
nameserver
xxx.xxx.xxx.xxx
Indirizzo IP di un eventuale DNS secondario
nameserver
xxx.xxx.xxx.xxx
Imposta a 3 secondi il tempo di timeout per una query DNS. Default 5 (su RedHat Linux)
options timeout
3
Imposta a 3 il numero di tentativi andati in timeout prima di rinunciare. Default 5 (su RedHat Linux)
options attempts
3

/etc/host.conf

E’ il file di configurazione del resolver di sistema.

Attraverso questo file, è possibile indicare al sistema in che ordine le librerie che si occupano di risolvere i nomi debbano comportarsi. Ogni direttiva di configurazione deve risiedere su una linea, che qualora sia di commento deve iniziare con il carattere #.

[azitti@pluto azitti]$ cat /etc/host.conf
order hosts,bind
Indica di utilizzare, per la risoluzione dei nomi, prima il file /etc/hosts e quindi i DNS indicati in resolv.conf
multi on

Indica che si possono utilizzare più indirizzi IP per lo stesso nome

ADSL e OpenBSD

Configurare l’ADSL con OpenBSD è un gioco da ragazzi: vediamo come fare in pochi settaggi.

Iniziamo col dire che usufruiremo del comodo tool ppp(8) per la configurazione dell’ADSL con pila protocollare PPPoE(4).
Il supporto PPPoE è incluso in user space in OpenBSD sin dalla release 2.9.
Configuriamo quindi il file
/etc/ppp/ppp.conf come segue:

default:
set log Phase Chat LCP IPCP CCP tun command

pppoe:
set device "!/usr/sbin/pppoe -i MODEM_IF" # sostituire MODEM_IF con l'interfaccia di rete a cui e` connesso il modem ADSL
disable acfcomp protocomp
deny acfcomp
set mtu max 1492
set mru max 1492
set speed sync
set authname "USER"
set authkey "PASS"
enable dns

Imporremo in questo modo il demone pppd(8) a collegarsi attraverso il modem collegato alla scheda di rete settata come device da pppoe(8).
Colleghiamoci ora attraverso il comando
ppp -ddial pppoe e demoniziamo il tutto con un & finale.

ppp -ddial pppoe &

Controlliamo l’esito della connessione attraverso un banale ifconfig tun0.
Impostiamo il router del nostro provider ADSL (lo possiamo vedere attraverso ifconfig, come citato prima) con un bel
route add default IP_ROUTE.

Buona navigazione.

Ifconfig e la configurazione della rete su Unix

Unix, come sistema operativo multiutente, è particolarmente indicato per un utilizzo in rete. In quanto tale, necessita di comandi specifici per la gestione degli indirizzi ip e delle reti.

Uno di questi è sicuramente ifconfig, che serve per la gestione delle interfaccie di rete (network interfaces) fisiche e alias.
Ha una doppia natura: “informativa”, per dare al sysadmin informazioni sulla configurazione corrente del sistema, e “attiva”, per cambiare la configurazione.
Affinchè una interfaccia funzioni, bisogna ovviamente che sia caricato il modulo per l’interfaccia o che sia inserito nel kernel (se non si usano i moduli). Un kernel modulare di default (quello dell’installazione) di solito contiene i moduli per le schede più diffuse.

Nella modalità “attiva”, quella che permette di cambiare la configurazione, si scrivono sulla linea di comando le impostazioni che vogliamo dare al sistema. Queste però valgono solo finchè la macchina è accesa, e verrebbero perse al primo reboot (o uscendo dal run-level 3, nel quale ci dobbiamo trovare per utilizzare la rete).
Quindi per far sì che la configurazione rimanga dopo un reboot, questa deve essere scritta su file. Ogni sistema ha file specifici dove tenere queste informazioni. Possono essere scritti in qualche script di boot o in files specifici del sitema Per esempio su Red Hat questi si trovano in vari files in /etc/sysconfig/network-scripts, ma si possono anche usare altri metodi, come per esempio uno script lanciato da rc.local o nella sequenza di boot.
L’importante è che il nostro sitema sappia come configurare le interfaces quando parte.

MTU: Maximum Transfer Unit

Articolo di proprietà del sito d’informazione AreaNetworking.IT – http://www.areanetworking.it

MTU è l’acronimo di ”’Maximum Transfer Unit”’, tradotto letteralmente Unità Massima di Trasferimento ovvero è la grandezza massima espressa in byte che può avere un pacchetto viaggiante in un determinato tipo di rete. Al dì fuori di questo limite i pacchetti verranno frammentati.

‘Questa caratteristica la troviamo al 2° livello del modello OSI ovvero al livello Data Link (collegamento dati), infatti il MTU agisce nel transito dei pacchetti da un host ad un altro (per esempio in una scheda di rete). Se i pacchetti superano l’MTU di quella specifica rete, verranno frammentati (compito adibito ai router). Il MTU varia a seconda del tipo di rete:


Tipo di rete                   MTU (byte)
Hyperchannel/link                  65535
Token ring IBM (16mbps)            17914
Token ring IEEE 802.5 (4mbps)       4464
FDDI                                4352
Ethernet                            1500
X.25                                576
Point to point (low delay)          296


Quando c’è uno scambio di pacchetti tra due host appartenenti a due diversi tipi di rete, ci è più facile capire il concetto di path MTU. Il path MTU non è altro che il MTU minimo sopra al quale sicuramente i pacchetti verranno frammentati (ricordiamo comunque che il path MTU esiste anche nel caso di due tipologie di rete uguali).

Per cambiare il valore del MTU su Windows è sufficiente cambiare la voce HKEY_LOCAL_MACHINESystemCurrentControlSetServicesClassNetTrans002 nel registro di sistema mentre su Linux possiamo editare il file /etc/ppp/options per la connessione ad internet oppure usare ifconfig <nome interfaccia> mtu <valore del mtu> per il transito dei pacchetti in locale.

Esempio:

# ifconfig eth0 | grep MTU
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

# ifconfig eth0 mtu 1200

# ifconfig eth0 | grep MTU
UP BROADCAST RUNNING MULTICAST MTU:1200 Metric:1

Configurare un client di rete su Solaris

La configurazione del networking su Sun Solaris si basa su alcuni file specifici che, una volta noti, non presentano particolari complicazioni.

Il comando ifconfig puo- essere usato per visualizzare informazioni sulle interfacce di rete e per configurarle. Notare che su Solaris e’ necessario prima di poterla utilizzare fare un plumb dell’interfaccia (ifconfig hme0 plumb.

La sintassi di ifconfig e’ simile a quella di Linux e altri Unix, per esempio:
ifconfig hme0 10.0.0.15 netmask 255.255.255.0 broadcast 10.0.0.255 up attiva l’interfaccia hme0 e gli assegna IP 10.0.0.15.
Ifconfig viene anche usato per gestire e configurare un’interfaccia via DHCP:
ifconfig hme0 dhcp start manda un DHCP broadcast per trovare in rete un server da cui ottenere il proprio indirizzo IP.

I file in cui possono essere salvate le configurazioni relative alla rete sono:

/etc/nodename Contiene il nome dell’host. Es: talete

/etc/hostname.hme0 Dove hme0 e’ il nome dell’interfaccia di rete. Contiene il nome dell’host per quella
interfaccia, associato al contenuto di
/etc/hosts di fatto assegna l’ip all’interfaccia. Es: talete

/etc/hosts Symlink a /etc/inet/hosts. E’ il file che contiene staticamente le associazioni nome macchina/indirizzo IP. E’ fondamentale per la configurazione di un indirizzo IP su Solaris. Es:
127.0.0.1       localhost    loghost
172.16.5.1     talete

/etc/defaultrouter Contiene il nome o l’indirizzo IP del default gateway

/etc/netmasks Symlink a /etc/inet/netmasks. E- un file che contiene le maschere di sottorete per netowkr subnettati rispetto alle tradizionali classi A, B e C. Es> 172.16.5.0 255.255.255.0

/etc/resolv.conf Contiene indirizzo IP dei server DNS e, eventualmente, nome di dominio predefinito. Es:
domain openskills.info
nameserver 172.16.5.1
nameserver 217.56.35.99

/etc/nsswitch.conf Contiene informazioni su quali strumenti (file locali, dns, nis], ldap…) utilizzare per la risoluzione dei nomi e per altri servizi.

/etc/services Symlink a /etc/inet/services. Descrive l’associazione numero di porta : nome del servizio. Generalmente non e’ necessario modificarlo.

Se si ha un host con piu’ interfacce o se sulla stessa interfaccia si devono configurare piu’ indirizzi IP basta creare un file tipo /etc/hostname.hme0:1 (Contenente il nome dell’host su questa interfaccia, es: taletebis) e aggiungere il nome dato a /etc/hosts (es: 172.16.5.101 taletebis).

Installazione di Mobile IPv6 per il kernel Linux 2.4.26 (testato con Red Hat 9)

In questo INFOBOX spiegherò come installare Mobile IPv6 su una macchina Linux.

L’installazione di Mobile IPv6 prevede due fasi: un’installazione per il kernel ed un’installazione userspace.

Installazione per il kernel Linux 2.4.26

1.    Scaricare il sorgente mipv6-1.1-v2.4.26.tar.gz (Mobile IPv6 (RFC 3775), works for kernel 2.4.26)  da http://www.mobile-ipv6.org/software/ e salvatelo nella cartella /usr/loca/src
2.    Aprite una shell ed eseguite le seguenti operazioni come root
3. # cd /usr/local/src/
4.    # ln –s linux-2.4.26 linux
5.    # cd linux
6.
# patch –p1 –dry-run < /usr/local/src/mipv6-1.1-v2.4.26/mipv6-1.1-v2.4.26.patch
Proseguire solo se al punto 6 non si sono verificati errori.
7.    # patch –p1 < /usr/local/src/mipv6-1.1-v2.4.26/mipv6-1.1-v2.4.26.patch
8.
# make xconfig
9.    Fare un click col tasto sinistro del mouse sulla label “Networking Options”
10.    Nell’area che si è aperta impostate quanto segue:
•    The IPv6 protocol (EXPERIMENTAL)            M
•    IPv6: routing by source address (EXPERIMENTAL)     Y
•    IPv6: IPV6 over IPv6 Tunneling (EXPERIMENTAL)    M
•    IPv6: Mobility Support (Correspondent Node)        M
Come avrete impostato ad M la voce precedente vi saranno rese visibili le due seguenti voci da impostare così:
•    MIPv6: Mobile Node Support                M
•    MIPv6: Debug Messages                    Y
11.    Premete adesso il bottone “IPv6 NetFilter Configuration” e nella schermata che vi si aprirà mettete ad M tutte le voci ad esclusione di (da impostare così):
•     AH/ESP match support (EXPERIMENTAL)        N
12.    Save & Exit

Installazione userspace

1.    Aprite una shell ed eseguite nell’ordine le seguenti operazioni:
# mv /usr/include/linux /usr/include/linux-backup
# ln –s /usr/src/linux-2.4.26/include/linux /usr/include/linux
# cd /usr/local/src/mipv6-1.1-v2.4.26
# ./configure
# make
# make install

2.    Dopodiché digitate:

# mknod /dev/mipv6_dev c 0xf9 0
# chkconfig –add mobile-ip6

—————————-   Fine   ——————————-

iwconfig

iwconfig è un tool della suite wireless-tool(WT, progetto sponsorizzato dalla Hewlett Packard),come si deduce dal nome è simile a ifconfig ma ovviamente i parametri da configurare sono specifici per le funzioni wireless.

I wireless tool necessitano delle wireless extension(WE), quindi se non lo avete fatto ricompilate il kernel con le WE abilitate.
<.config—
...
CONFIG_NET_RADIO=y
...

—.config>

Ora vediamo le principali funzioni di iwconfig:
iwconfig interface [options] values
iwconfig Mostra i parametri dell’interfaccia e le statistiche wireless(ottenibili anche con un: cat /proc/net/wireless).
iwconfig interface essid Attiva/Disattiva e imposta l’ ESSID.
iwconfig interface mode Imposta la modalità operativa del dispositivo, tipo Managed o Ad-Hoc.
iwconfig interface key Attiva/Disattiva e imposta la chiave di crittografia e la modalità di sicurezza(Open o Restricted).La chiave di crittografia deve essere inserita in formato esadecimale, per inserirla in formato ASCII utilizzare il modello s:password.
iwconfig interface ap Collega l’interfaccia all’indirizzo fornito come AP, se disponibile.

Esempi:
# iwconfig wlan0 essid "PLUTO" Imposta l’ESSID dell’interfaccia wlan0 con il nome PLUTO.
# iwconfig wlan0 off Disabilita il controllo dell’ESSID (ESSID promiscuo).
# iwconfig wlan0 mode Managed L’interfaccia wlan0 assuma la modalità Managed(necessita di un AP).
# iwconfig wlan0 key off Disattiva la chiave di crittografia.
# iwconfig wlan0 key restricted s:3bay3rz9 Attiva la modalità di sicurezza restricted e imposta la chiave in formato ASCII.
# iwconfig wlan0 essid "BINGO" mode Managed key s:m4yh3m && ifconfig wlan0 192.168.0.2 netmask 255.255.255.0 up Configura al volo l’interfaccia wlan0 che si connetterà all’ AP migliore nelle vicinanze.

Configurazione di un’interfaccia di rete su Linux

Configurare la rete su Linux non è difficile. A parte i vari tool grafici che rendono la cosa triviale, è utile conoscere l’utilizzo di ifconfig per configurazioni volanti.

1 – Visualizzare lo stato delle proprie interfacce di rete: indirizzo IP, mac address, byte trasferiti, eventuali errori, MTU…
2 – Aggiungere un alias alla propria interfaccia eth0. Se il proprio indirizzo è 10.42.42.201, aggiungere l’alias 10.42.42.101
3 – Verificare il routing del proprio sistema. Provare a impostare una route statica che usa il gateway 10.42.42.254 per raggiungere la rete 192.168.0.0/24.
4 – Provare con un ping da macchine remote a verificare se l’alias funziona. Visualizzare con ifconfig come viene indicato sull’interfaccia.
5 – Riavviare il sottosistema di rete per ripristinare le configurazioni originali.

Comandi necessari
/sbin/ifconfig Visualizza lo stato delle interfacce di rete
ifconfig eth0:1 10.42.42.201 netmask 255.255.255.0 broadcast 10.42.42.255 Imposta un alias su eth0 con ip 10.42.42.201
/sbin/route o netstat -r Visualizza la tabella di routing
route add -net 192.168.0.0/24 gw 10.42.42.254 Aggiunge la route statica che imposta 10.42.42.254 come gateway per la rete 192.168.0.0/24.
route delete -net 192.168.0.0/24 gw 10.42.42.254 Cancella il .254 come gateway per la rete 192.168.0.0.
/etc/rc.d./init.d/network restart Riavvia il sottosistema di rete. AL riavvio verificare se il routing è corretto.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger hanno fatto clic su Mi Piace per questo: