|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Prolema Debian
Ciao ragazzi, spero che qualcuno di voi possa dare risposta ai miei problemi.
Io ho installato la distro debian 4.0 su un pc della mia LAN, e vorrei fargli fare da gateway usando due schede di rete. Il problema è proprio questo che, nonostante abbia seguito altri thread qui presenti, non sono riuscito a far girare tutto come si deve. Per prima cosa ho settato in maniera statica le due schede di rete, una con indirizzo IP 172.16.10.3/24(eth0 per la lan) e una con indirizzo 10.0.0.75/24(eth1 per internet visto che uso un router). Ho aggiunto tramite il comando route delle route statiche, una per la destinazione 172.16.10.0 sull'interfaccia eth0(lan), una per la destinazione 10.0.0.0 sull'interfaccia eth1 e poi ho aggiunto come gateway di default l'ip dl router 10.0.0.2 con destination default come solitamente dovrebbe essere. Poi ho abilitato l'ip forwarding tramite il comando ech > 1 sul file /proc/sys/net/ipv4/ip_forward. Successivamente ho installato anche il pacchetto resolvconf per impostare nel file resolv.conf i DNS del mio ISP come suggerito sull'howto di debian ma tuttavia se setto come gateway l'ip dell'eth0 i client non riescono a uscire e non riesco nemmeno a pingare il router (10.0.0.2). Come posso fare? Dove sbaglio? Grazie mille in anticipo Ciao |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2005
Città: Genoa
Messaggi: 717
|
Hai controllato il routing col comando
Codice:
sudo route
__________________
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" Albert Einstein io non mi sento italiano, ma per fortuna purtroppo lo sono |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Grazie per la risposta.
Allora lanciando il comando route vedevo quello che specificavo nelle route statiche cioè: 172.16.10.0 Default 255.255.255.0 eth0 10.0.0.0 default 255.255.255.0 eth1 default 10.0.0.2 0.0.0.0 In teoria dovrebbe essere corretto. L'ultima voce inneggia al gateway di default, mentre le altre due specificano che scheda di rete usare per le varie destinazioni. In teoria abilitando l'ip forwarding dovrebbe funzionare. Non è che sia un problema del masquerading? Con shorewall si può riuscire a fare queste configurazioni oppure lo devo solo usare per impostare le regole sui pacchetti? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Io uso una Debian come router/firewall, ma una maledizione vuole che ogni volta che cerco di spiegare a qualcuno come faccio/ho fatto finisce che non funziona... vediamo se anche stavolta sarà così.
Intanto non tocco route, ma uso solo comandi iptables per impostare il nat: Codice:
modprobe ipt_MASQUERADE # a volte è inutile # questo si può sostituire con l'impostazione definitiva in /etc/sysctl.conf echo 1 > /proc/sys/net/ipv4/ip_forward # pulizia preliminare iptables -F; iptables -t nat -F; iptables -t mangle -F # di default droppa iptables -P FORWARD DROP # snat di tutte le comunicazioni sull'indirizzo dell'interfaccia esterna iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 10.0.0.75 # accettiamo comunicazioni forward nuove dalla rete interna iptables -A FORWARD -m state --state NEW -s 172.16.10.0/24 -j ACCEPT # permettiamo tutto il traffico una volta che la comunicazione è stata instaurata iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT Codice:
# $EXTERNAL_INTERFACE $EXTERNAL_IP: interfaccia su internet/router # $NET_INTERNAL: rete interna ip/maschera modprobe ipt_MASQUERADE iptables -F; iptables -t nat -F; iptables -t mangle -F iptables -t nat -A POSTROUTING -o $EXTERNAL_INTERFACE -j SNAT --to $EXTERNAL_IP echo 1 > /proc/sys/net/ipv4/ip_forward iptables -P FORWARD DROP iptables -A FORWARD -m state --state NEW -s $NET_INTERNAL -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) Ultima modifica di Gimli[2BV!2B] : 05-04-2008 alle 20:16. |
![]() |
![]() |
![]() |
#5 |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Ora la macchina l'ho reinstallata perciò posso fare questa tua prova al volo se ci riesco tra un pochino.
Intanto grazie mille per la risposta. Un'unica cosa. Lo script per renderlo automatico dove devo metterlo??? Che così mi configuro statiscamente le due interfacce fisiche e dopo lo setto come script bash giusto? |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Prima collauda i comandi, se funzioneranno si provvederà a salvare/creare uno script che entrerà in azione nel momento giusto.
Se anche per il collaudo preferisci lo script è sufficiente aggiungere lo shabang all'inizio del primo (hai controllato gli indirizzi, ecc?) e renderlo eseguibile. shabang: Codice:
#!/bin/bash modprobe ipt_MASQUERADE # a volte è inutile # puliz... Codice:
chmod +x NOME_SCRIPT
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
ora risetto le due schede ethernet con webmin e provo.
Ascolta non imposto nessu n default gateway allora? Perchè in teoria dovrei metterlo per poter far uscire il traffico dalla LAN |
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Mi da errore sulla regola:
iptables -P FORWARD DROP Mi dice Bad Built chain name Provo ad andare avanti??? |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Non ho mai avuto necessità di modificarle le route con quelle regole.
Imposta solo quelle regole, vediamo che succede.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Hai provato
Codice:
modprobe ipt_MASQUERADE
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Ok, ok, credo di aver capito, ho spostato l'echo copiando.
Esegui il comando echo 1 > /proc/sys/net/ipv4/ip_forward prima. Ora correggo.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#12 | |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Quote:
Ho fatto delle prove con i client cancellando anche la cache DNS e riavviando i pc e tutto sembra funzionare. Grandissimissimooooooooo Ora resta. Come renderle effettive dopo ogni riavvio del gateway?? Ultima modifica di ecnx82 : 05-04-2008 alle 20:24. |
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Dava errore perché non era attivo il forwarding (l'echo), con l'attuale ordine dei comandi dovrebbe funzionare tutto quanto al primo colpo.
Intanto si può abilitare il forwarding di default: edita il file /etc/sysctl.conf e decommenta la riga net.ipv4.ip_forward=1 (se per caso il file non contiene più i commenti aggiungi semplicemente la riga). Poi devi controllare se è necessario il modprobe. Se il modprobe non serve puoi creare un firewall da manuale, altrimenti devi editare il file ottenuto ed aggiungere il modprobe prima dell'iptables-restore.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#14 | |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Quote:
|
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Segui alla lettera quel che trovi nel link.
Se al riavvio non funzionerà dovrai modificare il file /etc/network/if-up.d/iptables in questo modo: Codice:
#!/bin/sh modprobe ipt_MASQUERADE iptables-restore < /etc/firewall.conf
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#16 | |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Quote:
E se io non avessi il file iptables in quel path li? |
|
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Infatti nella guida lo crea.
Fai come c'è scritto (da amministratore).
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#18 |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
|
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Se lo esegui manualmente funziona? ( eseguilo con /etc/network/if-up.d/iptables )
/etc/firewall.conf contiene qualcosa, vero? Hai settato il permesso eseguibile a /etc/network/if-up.d/iptables? Hai detto che gli indirizzi delle interfacce sono statici, li hai impostati in /etc/network/interfaces, vero? Se è tutto a posto e l'esecuzione manuale non da risulatati credo siano necessarie le tue route, aggiungile in /etc/network/if-up.d/iptables. In tutti i casi c'è sempre il piano B a cui ricorreremo se non ci sono risultati.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#20 | |
Junior Member
Iscritto dal: Apr 2008
Messaggi: 14
|
Quote:
Bisogna settare chmod 777 per il file firewall.conf e il file iptables. E tutto funziona. ![]() Grazie mille. Ho fatto un paio di riavvi del gateway e dei client e funziona. ![]() P.S > Le route non vanno settate nello script perchè basta impostarle static tramite webmin. Mi resta solo una domanda. Ora per creare un vero e proprio firewall, anzi proxy, con squid e dansguardian??? Magari con uno scanner p3scan di posta in entrata??? Come potrei procedere??? Scusa se ti stresso ma io ho sempre usato ISA Server e mai Debian come gateway!! LOL Ultima modifica di ecnx82 : 05-04-2008 alle 21:30. |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:32.