Repository 32bit  Forum
Repository 64bit  Wiki

[RISOLTO]Problemi di configurazione del router-firewall

Postate qui per tutte le discussioni legate alla sicurezza di Linux/Slackware

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[RISOLTO]Problemi di configurazione del router-firewall

Messaggioda nemo » lun nov 13, 2006 23:20

Mi è nato il seguente

PROBLEMA #1

Un router è collegato ad internet attraverso modem USB (connessione funzionante senza problemi) e presenta 3 schede di rete:
eth0 (su cui gira il server DHCP) ---> LAN
eth1 ---> DMZ
eth2 ---> VoIP

Ritenevo di aver costruito una serie di regole e di catene corrette, mentre invece la LAN non riesce a navigare (andiamo per ordine e cerchiamo di risolvere un problema alla volta; prossimamente sarà il turno della DMZ e poi del VoIP).

Ecco il codice che finora ho scritto e che non funziona :roll:
nemo ha scritto:IMPOSTAZIONE VARIABILI
Codice: Seleziona tutto
IP=192.168.0.30
IP_SERVER=192.168.0.31
INT_RETE_ESTERNA=ppp0
INT_RETE_INTERNA=eth0
INT_SERVER=eth1
INT_VOIP=eth2
LANIN=192.168.0.0/24


nemo ha scritto:GATAWAY E DHCP
maschero gli indirizzi della LAN diretti verso la rete esterna, configuro le schede di rete, avvio il server DHCP
Codice: Seleziona tutto
iptables -t nat -A POSTROUTING -o $INT_RETE_ESTERNA -J MASQUERADE
ifconfig $INT_RETE_INTERNA $IP netmask 255.255.255.0 up
ifconfig $INT_SERVER $IP_SERVER netmask 255.255.255.0 up
dhcpd $INT_RETE_INTERNA


nemo ha scritto:POLICY
rimuovo le regole delle catene e le catene definite dall'utente, azzero i contatori, accetto quello che esce verso l'esterno, blocco tutto quello che entra o è di passaggio.
Codice: Seleziona tutto
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP


nemo ha scritto:REGOLE DI INPUT
dovrebbe essere accettato tutto quello che viene dal localhost, dalla rete interna e dal server; quello che viene dalla rete esterna viene accettato solo se soddisfa determinate condizioni; la porta 53 del DNS è aperta.
Codice: Seleziona tutto
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -i lo -j ACCEPT
iptables -A INPUT -i $INT_RETE_INTERNA -j ACCEPT
iptables -A INPUT -i $INT_SERVER -j ACCEPT
iptables -A INPUT -i $INT_RETE_ESTERNA -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT


nemo ha scritto:REGOLE DI FORWARD
accetto quello che proviene dalla LAN in direzione della rete interna o di quella esterna, accetto tutto quello che looppa sulla rete interna tranne i pacchetti che richiedono connessioni TCP, accetto (per ora senza restrizioni) tutto quello che viene inviato dalla rete interna e da quella esterna.
Codice: Seleziona tutto
iptables -A FORWARD -i $INT_RETE_INTERNA -p all -s $LANIN -j ACCEPT
iptables -A FORWARD -i $INT_RETE_ESTERNA -p all -s $LANIN -j ACCEPT
iptables -A FORWARD -s $LANIN -d 0/0 -j ACCEPT
iptables -A FORWARD -s 0/0 -d $LANIN -p tcp --syn -j DROP
iptables -A FORWARD -s 0/0 -d $LANIN -j ACCEPT
iptables -A FORWARD -o $INT_RETE_INTERNA  -j ACCEPT
iptables -A FORWARD -o $INT_RETE_ESTERNA -j ACCEPT


Beninteso: alcune regole, come queste ultime due, devono essere riviste e certamente mancano mooooooolte caratteristiche di sicurezza. Ma al momento non interessa restringere le possibilità di comunicazioni tra le reti: per impostare nuove regole c'è sempre tempo DOPO che la rete funziona!

Però adesso NON funziona! :roll:
Chi mi dà una mano?

:grazie:
Ultima modifica di nemo il mer lug 29, 2009 20:08, modificato 1 volta in totale.
Avatar utente
nemo
Linux 1.0
Linux 1.0
 
Messaggi: 31
Iscritto il: sab nov 11, 2006 15:19
Località: Linux City

Messaggioda bloodlust » mar nov 14, 2006 1:49

visto che lo sai ;) snellisci questa catena di forward.

per la LAN interna (per ora) ti potrebbe bastare:
Codice: Seleziona tutto
iptables -A FORWARD -s $LANIN -j ACCEPT
iptables -A FORWARD -d $LANIN -j ACCEPT


comunque:
1) hai abilitato ip forwarding nel kernel? Se non lo hai fatto aggiungi in fondo al codice
Codice: Seleziona tutto
echo 1>/proc/sys/net/ipv4/ip_forward

o più semplicemente puoi rendere eseguibile /etc/rc.d/rc.ip_forwarding (ma attenzione che questo viene eseguito da rc.inet2 quindi probabilmente _PRIMA_ che tu esegui il tuo codice)

2) hai caricato i moduli necessari per connection tracking (ip_conntrack), per nat (iptable_nat) e masquerading (ipt_MASQUERADING)? Aggiungi un bel modprobe nel tuo codice.

3) perchè droppi i pacchetti TCP con il SYN bit settato che viaggiano rete_esterna --> rete_interna? E' un po' troppo restrittiva come regola. Piuttosto controlla che le nuove connessioni (--state NEW) abbiano il SYN attivo.

qualche consiglio:
- separa la configurazione delle interfacce dallo script che imposta le regole di iptables
- procedi per gradi: prima abilita il forwarding e assicurati che funzioni poi aggiungi man mano le singole regole
- leggiti un po' di documentazione a riguardo

ciao
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

intanto è un inizio!

Messaggioda nemo » mar nov 14, 2006 8:20

anzitutto grazie della risposta!

Qualche precisazione:

1) per evitare la prolissità non avevo citato tutto il codice: di fatto l' ip forwarding nel kernel è già abilitato;

2) allo stesso tempo tutti i moduli, tra i quali quelli che citi, li ho digitati in un bel rc.moduli.personal che richiamo da rc.local, tanto per essere sicuro che ci siano (a proposito, dopo che tu mi hai postato sono andato a controllare e ho trovato di aver scritto ipt_MASQUERADE invece di ipt_MASQUERADING) ;) ;

3) credo tu abbia ragione sul fatto che la regola che droppa i pacchetti TCP con SYN flaggato sia troppo restrittiva; ma non so se potrebbe essere quella la causa del fatto che la LAN si pinga senza problema, ma da un terminale della LAN è impossibile eseguire un ping su internet.

Grazie del consiglio:
per la LAN interna (per ora) ti potrebbe bastare:
Codice: Seleziona tutto
iptables -A FORWARD -s $LANIN -j ACCEPT
iptables -A FORWARD -d $LANIN -j ACCEPT


Inserisco le regole da te suggerite e commento quelle esistenti...

Perchè dici di separare la configurazione delle interfacce dallo script che imposta le regole di iptables? Sono ignorante, davvero: penso che però se me lo dici una ragione buona ci deve essere. Mi piacerebbe conoscerla.

Di sicuro procederò per gradi: quando ho scritto le regole che leggi ero in piena fase di configurazione della LAN senza uscita su internet; quando la LAN ha funzionato mi sono concentrato sul suo dialogo con il mondo esterno :lol: Continuo di sicuro in questa direzione.

Più tardi mi rimetterò a testare qualcosa e anche i tuoi consigli!

E per la documentazione: sapendo di essere alle prime armi ne sto mangiando a pranzo a colazione e a cena! :roll: Ma come tu mi insegni, quando ci sono problemi 4 occhi vedono sempre meglio di 2.

grazie ancora (ma non sparire!) :lol:

To Be Continued...
Avatar utente
nemo
Linux 1.0
Linux 1.0
 
Messaggi: 31
Iscritto il: sab nov 11, 2006 15:19
Località: Linux City

Re: intanto è un inizio!

Messaggioda bloodlust » mar nov 14, 2006 9:32

nemo ha scritto:2) allo stesso tempo tutti i moduli, tra i quali quelli che citi, li ho digitati in un bel rc.moduli.personal che richiamo da rc.local, tanto per essere sicuro che ci siano (a proposito, dopo che tu mi hai postato sono andato a controllare e ho trovato di aver scritto ipt_MASQUERADE invece di ipt_MASQUERADING) ;) ;

è stato un errore mio: il modulo si chiama ipt_MASQUERADE, quindi come lo avevi scritto tu.

ciao
bloodlust
Linux 2.6
Linux 2.6
 
Messaggi: 523
Iscritto il: mar feb 14, 2006 12:02
Località: it_IT
Slackware: -1

Buone notizie!

Messaggioda nemo » mar nov 14, 2006 15:27

Riassumo le ultime notizie:

1) il router non funzionava perchè :ahem: non avevo settato il corretto gateway in dhcpd.conf (dal momento che esco con un ip statico a mezzo modem USB, il gateway corrisponde a quell'ip); ora invece è tutto a posto! :lol:

2) ho modificato anche gli indirizzi delle schede di rete:
eth0 ---> LAN = 192.168.0.30
eth1 ---> DMZ = 192.168.1.30
eth2 ---> VoIP = 192.168.2.30
ora resta da far dialogare tra di loro le tre reti e farle uscire su Internet (con le rispettive regole di sicurezza) :oops:

Aspetto con fiducia qualche consiglio al riguardo... Per me sono tutti preziosi!

:grazie:
Avatar utente
nemo
Linux 1.0
Linux 1.0
 
Messaggi: 31
Iscritto il: sab nov 11, 2006 15:19
Località: Linux City


Torna a Sicurezza

Chi c’è in linea

Visitano il forum: Yahoo [Bot] e 2 ospiti