3 581
contributi
(Aggiunto template autori) |
m (→Masquerading: errori nomi script (segnalato in pagina discussione)) |
||
(6 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili}} | {{Versioni compatibili|Jessie|Stretch|Buster}} | ||
== Premessa == | == Premessa == | ||
Oggi che la maggior parte degli utenti domestici ha la possibilità di accedere ad Internet con connessioni a [http://it.wikipedia.org/wiki/Larghezza_di_banda banda] larga (ad esempio [http://it.wikipedia.org/wiki/ADSL ADSL]) e che è sempre più frequente avere a disposizione almeno un paio di computer, si avverte la necessità di poter condividere la connessione tra i vari computer della nostra rete domestica. | Oggi che la maggior parte degli utenti domestici ha la possibilità di accedere ad Internet con connessioni a [http://it.wikipedia.org/wiki/Larghezza_di_banda banda] larga (ad esempio [http://it.wikipedia.org/wiki/ADSL ADSL]) e che è sempre più frequente avere a disposizione almeno un paio di computer, si avverte la necessità di poter condividere la connessione tra i vari computer della nostra rete domestica. | ||
Riga 18: | Riga 17: | ||
Il motivo è semplice: per accedere a internet è necessario avere un [http://it.wikipedia.org/wiki/Indirizzo_IP indirizzo IP] di tipo pubblico, che il nostro ISP ci fornisce. Per permettere anche ai computer sprovvisti di indirizzo pubblico di navigare, dobbiamo fare in modo che i loro indirizzi di tipo privato vengano "nascosti" dietro a quello pubblico. | Il motivo è semplice: per accedere a internet è necessario avere un [http://it.wikipedia.org/wiki/Indirizzo_IP indirizzo IP] di tipo pubblico, che il nostro ISP ci fornisce. Per permettere anche ai computer sprovvisti di indirizzo pubblico di navigare, dobbiamo fare in modo che i loro indirizzi di tipo privato vengano "nascosti" dietro a quello pubblico. | ||
=== Masquerading | === Masquerading === | ||
Con [[privilegi di amministrazione]] digitiamo il seguente comando: | |||
<pre># iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</pre> | <pre># iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE</pre> | ||
questo abilita il mascheramento degli indirizzi privati. | questo abilita il mascheramento degli indirizzi privati. | ||
Riga 44: | Riga 32: | ||
Poi ad ogni avvio dovremo richiamare il seguente comando: | Poi ad ogni avvio dovremo richiamare il seguente comando: | ||
<pre> | <pre> | ||
# | # iptables-restore < /etc/iptables-save | ||
</pre> | </pre> | ||
Basta creare uno script in <code>/etc/network/if-up.d/</code> che esegua tale comando. Per esempio: | |||
<pre> | |||
# touch /etc/network/if-up.d/restore-iptables | |||
</pre> | |||
E poi modificare <code>/etc/network/if-up.d/restore-iptables</code> con il proprio editor di testo preferito (per esempio [[nano]]): | |||
<pre> | <pre> | ||
#! /bin/sh | |||
readonly CONFIG_FILE="/etc/iptables-save" | |||
# execute the script only if $CONFIG_FILE exists | |||
test -f "$CONFIG_FILE" || exit 0 | |||
< | # restore IP tables | ||
printf %s " * Loading iptables saved state... " | |||
iptables-restore < "$CONFIG_FILE" && | |||
printf %s\\n "[ OK ]" | |||
</pre> | </pre> | ||
E renderlo eseguibile: | |||
<pre> | <pre> | ||
# chmod a+x /etc/network/if-up.d/restore-iptables | |||
</pre> | </pre> | ||
La regola verrà caricata ad ogni avvio del sistema, senza che sia necessario digitarla nuovamente, e solo se il file <code>/etc/iptables-save</code> esiste. | |||
=== Ip Forwarding === | === Ip Forwarding === | ||
Configurare ''iptables'' non è però sufficiente. I comuni | Configurare ''iptables'' non è però sufficiente. I comuni PC, infatti, non devono essere in grado di comportarsi come i [http://it.wikipedia.org/wiki/Router router] e cioè non devono poter [[routing|instradare]] pacchetti da una rete all'altra.<br> | ||
Dato che per noi è fondamentale abilitare questa possibilità, dobbiamo agire su un parametro del kernel che regola questa funzione: l' '''ip-forwarding'''. | Dato che per noi è fondamentale abilitare questa possibilità, dobbiamo agire su un parametro del kernel che regola questa funzione: l' '''ip-forwarding'''. | ||
Riga 81: | Riga 70: | ||
così facendo, però, ad ogni riavvio dovremo reimpostare la variabile. | così facendo, però, ad ogni riavvio dovremo reimpostare la variabile. | ||
==== Impostare l'< | ==== Impostare l'<code>ip-forwarding</code> al boot: <code>/etc/sysctl.conf</code> ==== | ||
Se avete installato ''ipmasq'', l'ip-forwarding è già abilitato: passate alle misure di sicurezza. | Se avete installato ''ipmasq'', l'ip-forwarding è già abilitato: passate alle misure di sicurezza. | ||
Il metodo più semplice, consigliato nella maggior parte dei casi, per impostare l'ip-forwarding ad ogni boot è di inserire in < | Il metodo più semplice, consigliato nella maggior parte dei casi, per impostare l'ip-forwarding ad ogni boot è di inserire in <code>/etc/sysctl.conf</code>: | ||
<pre> | <pre> | ||
Riga 91: | Riga 80: | ||
net/ipv4/ip_forward = 1 | net/ipv4/ip_forward = 1 | ||
</pre> | </pre> | ||
In questo caso si abilita unicamente per IPv4; è necessario, se si desidera, abilitarlo anche per IPv6. | |||
È opportuno impostare anche alcune misure di sicurezza: | È opportuno impostare anche alcune misure di sicurezza (le prime due dovrebbero essere già attive di default): | ||
<pre> | <pre> | ||
## Ignora finti messaggi di errore ICMP | ## Ignora finti messaggi di errore ICMP | ||
Riga 103: | Riga 92: | ||
## Non accetta pacchetti ICMP di route redirection | ## Non accetta pacchetti ICMP di route redirection | ||
net/ipv4/conf/all/accept_redirects = 0 | net/ipv4/conf/all/accept_redirects = 0 | ||
## Protezione anti spoofing | ## Protezione anti spoofing | ||
net/ipv4/conf/all/rp_filter = 1 | net/ipv4/conf/all/rp_filter = 1 | ||
</pre> | </pre> | ||
==== Impostare l'<code>ip-forwarding</code> al boot: script ==== | |||
==== Impostare l'< | |||
È possibile anche abilitare l'ip-forwarding associando uno script alla creazione delle interfacce di rete in fase di boot. Questo metodo è consigliato solo in caso di setup più complessi, in cui si vogliono impostare regole diverse a seconda dell'interfaccia di rete che si attiva. | È possibile anche abilitare l'ip-forwarding associando uno script alla creazione delle interfacce di rete in fase di boot. Questo metodo è consigliato solo in caso di setup più complessi, in cui si vogliono impostare regole diverse a seconda dell'interfaccia di rete che si attiva. | ||
Riga 147: | Riga 129: | ||
<pre># touch /etc/network/iface-secure</pre> | <pre># touch /etc/network/iface-secure</pre> | ||
Dopodiché rendiamolo eseguibile con: | Dopodiché rendiamolo eseguibile e scrivibile per [[root]] con: | ||
<pre># chmod | <pre># chmod 755 /etc/network/iface-secure</pre> | ||
All'interno di questo file scriveremo il nostro comando per abilitare l' ip-forwarding: | All'interno di questo file scriveremo il nostro comando per abilitare l' ip-forwarding: | ||
<pre> | <pre> | ||
#! /bin/sh | |||
### Abilita il forwarding di pacchetti non locali - FONDAMENTALE | ### Abilita il forwarding di pacchetti non locali - FONDAMENTALE | ||
echo 1 > /proc/sys/net/ipv4/ip_forward | echo 1 > /proc/sys/net/ipv4/ip_forward | ||
Riga 181: | Riga 165: | ||
Per prima cosa installiamo ''bind9'' ed alcuni strumenti utili: | Per prima cosa installiamo ''bind9'' ed alcuni strumenti utili: | ||
<pre># apt | <pre># apt install bind9 dnsutils</pre> | ||
Ora configuriamo il server in modo che faccia le sue richieste ai server [[DNS]] che vogliamo noi anziché ai ROOT SERVERS (sono pochi in tutto il mondo, molto stressati e aggiornati più lentamente di altri). Tutto quello che dobbiamo fare è editare la sezione '''options''' del file <code>/etc/bind/named.conf.options</code>: | Ora configuriamo il server in modo che faccia le sue richieste ai server [[DNS]] che vogliamo noi anziché ai ROOT SERVERS (sono pochi in tutto il mondo, molto stressati e aggiornati più lentamente di altri). Tutto quello che dobbiamo fare è editare la sezione '''options''' del file <code>/etc/bind/named.conf.options</code>: | ||
Riga 199: | Riga 183: | ||
Ora non ci resta che riavviare ''bind'' con il comando: | Ora non ci resta che riavviare ''bind'' con il comando: | ||
<pre># | <pre># service bind9 restart</pre> | ||
e configurarlo come [[DNS]] sui PC della nostra rete. | e configurarlo come [[DNS]] sui PC della nostra rete. | ||
Riga 218: | Riga 202: | ||
==== IRC ==== | ==== IRC ==== | ||
Dovreste essere in grado di usare IRC senza problemi dai PC della vostra LAN. In caso contrario potreste provare a caricare manualmente i moduli che servono al router per gestire le connessioni ad IRC: | Dovreste essere in grado di usare IRC senza problemi dai PC della vostra LAN. In caso contrario potreste provare a caricare manualmente i moduli che servono al router per gestire le connessioni ad IRC: | ||
<pre> | <pre> | ||
# modprobe ip_conntrack_irc ports=5555,6666,6667,6668,6669,7000 | # modprobe ip_conntrack_irc ports=5555,6666,6667,6668,6669,7000 | ||
# modprobe ip_nat_irc | # modprobe ip_nat_irc | ||
</pre> | </pre> | ||
dove, con la direttiva "ports=" indichiamo le porte generalmente utilizzate dai server IRC. | dove, con la direttiva "ports=" indichiamo le porte generalmente utilizzate dai server IRC. | ||
Riga 292: | Riga 274: | ||
Per fare questo avremo bisogno di alcuni tra i più usati strumenti diagnostici: '''ping''' e '''nslookup''', ma non preoccupatevi: il primo viene installato automaticamente ed il secondo abbiamo provveduto ad installarlo contestualmente a ''bind''. | Per fare questo avremo bisogno di alcuni tra i più usati strumenti diagnostici: '''ping''' e '''nslookup''', ma non preoccupatevi: il primo viene installato automaticamente ed il secondo abbiamo provveduto ad installarlo contestualmente a ''bind''. | ||
=== Comunicazione tra router e client === | === Comunicazione tra router e client === | ||
Riga 380: | Riga 360: | ||
{{Autori | {{Autori | ||
|Autore = [[Utente:Guide @ Debianizzati.Org|Debianizzati.Org]] | |Autore = [[Utente:Guide @ Debianizzati.Org|Debianizzati.Org]] | ||
|Estesa_da = | |Estesa_da = | ||
:[[Utente:Keltik|keltik]] | :[[Utente:Keltik|keltik]] | ||
:[[Utente:TheNoise|The Noise]] | :[[Utente:TheNoise|The Noise]] | ||
|Numero_revisori = | |Verificata_da= | ||
:[[Utente:Clockwork orange|Clockwork Orange]] | |||
:[[Utente:HAL 9000|HAL 9000]] 10:40, 7 set 2019 (CEST) | |||
|Numero_revisori = 2 | |||
}} | }} | ||
[[Categoria:Configurazione ethernet]] | [[Categoria:Configurazione ethernet]] | ||
[[Categoria:Reti con Windows]] | [[Categoria:Reti con Windows]] |
contributi