Linux tips and tricks: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Diablo (discussione | contributi)
Diablo (discussione | contributi)
Riga 373:
 
==Reti==
[[/Reti/]]
===Gateway per una piccola [[w:LAN|LAN]]===
Qui di seguito è spiegato come fare in modo che più computer possano accedere ad internet contemporaneamente e svolgere tutte le normali attività (navigazione web, posta, newsgroups, chat, filesharing...) mediante una piccola rete ("''home LAN''"), passando attraverso un computer connesso ad internet che funga da server, o meglio [[w:gateway|gateway]].
 
Requisiti materiali: una scheda di rete per ogni pc; un cavo ethernet per ogni pc; un [[w:hub|hub]] o [[w:switch|switch]]. Si assume che un pc (chiamato gateway) sia già in grado di connettersi ad internet, ad esempio tramite modem, e abbia indirizzo ip 192.168.0.1
 
Montare le schede di rete e configurarle con indirizzi IP statici (ad esempio 192.168.0.1 per il server; 192.168.0.2-3-4 e così via per tutti gli altri). Assicurarsi che i pc si vedano tra di loro col comando "ping": da un pc diverso dal gateway digitare
ping 192.168.0.1
 
Le cose da fare sono due:
# "spiegare" ai client (i computer non-gateway) che per tutti i servizi di rete devono rivolgersi al gateway
# configurare il gateway in modo che accetti le richieste dei client, e le faccia passare attraverso di sè. È ciò che su Windows si chiama "Condividi la connessione"
 
Per fare il primo passo occorre lanciare, da root sui computer client, il comando
route add default gw 192.168.0.1
 
Per il secondo è preferibile creare uno script che lanci in automatico una serie di comandi: è più facile ricordare il nome dello script che una dozzina di righe di comando! Da root sul pc gateway, occorre creare un file di testo, da collocare nella directory "/sbin" (potrebbe essere "/sbin/fai_gateway"), e copincollarci dentro il seguente codice:
 
#!/bin/sh
iptables="/sbin/iptables"
# poco importante: indica solamente il percorso dell'eseguibile!
echo '0' > /proc/sys/net/ipv4/ip_forward
# Finché tutto non è in ordine, niente forwarding
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp ip_nat_ftp
modprobe iptable_nat
modprobe ipt_MASQUERADE
# Carichiamo i moduli più importanti! (attenzione NAT e MASQUERADE sono essenziali x il nostro scopo)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# Aggiungiamo una regola alla catena di postrouting:
# tutti i pacchetti in uscita attraverso l'interfaccia "ppp0"
# dovranno essere mascherati
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# accettiamo tutti i pacchetti appartenenti a connessioni già iniziate o cmq correlati ad esse
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
# accettiamo il traffico generato dalla rete interna
iptables -A FORWARD -j DROP
# tutto il resto è scartato
echo '1' > /proc/sys/net/ipv4/ip_forward
# Adesso che siamo in sicurezza, abilitiamo il passaggio dei pacchetti (forwarding)
 
Può tornare utile, per comodità, trascrivere in uno script (ad esempio "/sbin/gateway_1") anche il comando precedente ("route add default gw 192.168.0.1"). Ricordarsi di rendere eseguibili entrambi gli script col comando:
chmod u+x /sbin/nomefile
 
D'ora in poi sarà possibile far funzionare la rete così creata lanciando "fai_gateway" da root sul gateway e "gateway_1" da root sui client.
 
Vedi anche: http://www.pluto.linux.it/journal/pj0301/linux_router.html o http://www.bpnets.org/linuxrouter.php
 
=== pppd e autenticazione ===
Può capitare che [[w:pppd|pppd]] (point to point protocol daemon) restituisca un messaggio d'errore come
pppd: The remote system is required to authenticate itself but I couldn't find any secret (password) which would
let it use an IP address.
 
È un semplicissimo problema di configurazione:
aprite con il vostro editor preferito il file etc/ppp/options e inserite la stringa noauth.
 
==Autori==