|
|
|
|
Strumenti |
15-06-2007, 17:02 | #1 |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
[howto] firewall con dmz
La DMZ
La DMZ (De-Militarized Zone, Zona De-Militarizzata) e' un tratto di rete a cui possono accedere tutti (o quasi), e' dove si trovano i server che possono essere visti da internet. Di solito i server in DMZ, hanno ip privati, e per poter essere raggiunti da internet deve esserci un nodo di collegamento con l'esterno che "gira le chiamate" sulla DMZ. Perche' usare una DMZ La prima soluzione quando si deve mettere in piedi un server (supponiamo un server web, quindi sulla porta 80) e' quello di metterlo sul computer che ha l'ip pubblico. Questa soluzione e' semplice, necessita del solo server, ma presenta alcuni inconvenienti. Infatti se per caso il server viene "bucato" l'attaccante avra' accesso alla macchina che molto probabilmente, oltre a far girare il server, ha accesso anche alla rete interna (LAN) e quindi si trova in una posizione privilegiata per poter prendere il controllo (o spiare/rubare/fare quello che vuole) di altri computer, facilitato anche dal fatto che in moltissimi casi i computer interni (per noncuranza o per necessita') non presentano "molti ostacoli" per poter essere compromessi. La soluzione e' quella di avere un computer con ip pubblico dove non gira assolutamente nessun servizio visibile da internet, che redirigera' le chiamate "permesse" sul server in DMZ (nel nostro caso la porta 80). Nel caso di un attacco andato a buon fine, l'attaccante avra' a disposizione la macchina dove gira il server, ma da questa (se il firewall sara' ben configurato) non potra' accedere ne ad internet, ne alla LAN interna, rendendo il proprio sforzo "inutile". L'importanza della DMZ si fa ancora maggiore quando il numero di servizi aumenta, infatti piu' servizi si hanno attivi, piu' possibilita' ha un attaccante di trovare qualche appiglio, quindi di solito si tenta di mettere in DMZ un server distinto (reale o virtualizzato) per ogni servizio, in modo tale che la compromissione di un servizio, non vada a compromettere tutto. Ovviamente la divisione dei servizi su diverse macchine non e' sempre possibile (mancanza di hardware, complicazioni a livello software ecc.) ma comunque sia anche se obbligati a far girare X servizi su una macchina, l'obbligo di mettere questa in DMZ rimane (sto parlando nei casi in cui l'accesso ad internet non serve solo per i server, ma anche per far navigare dei client in LAN). cosa serve Per poter gestire una DMZ, abbiamo bisogno sostanzialmente di un computer con 3 schede di rete (anche un normalissimo pentium 1 e' sufficente, almeno che non abbiate una linea da 10Mbit o piu', ma allora il problema per prendere una macchina piu' grande credo non ci sia!). Un server da mettere in DMZ (puo' benissimo essere un windows o quello che si vuole... basta sapere su che porte girano i servizi!). Un computer da mettere in LAN. Saper usare linux almeno per riuscire ad installare una distribuzione, e saper configurare le schede di rete. Perdere un po di tempo con iptables per mettere tutto a posto!. Delle 3 schede di rete avremo che eth0 ha un ip pubblico (e' collegata ad internet), eth1 ha un ip privato a cui e' collegata la LAN, eth2 ha un ip privato con collegata la DMZ. il firewall Ovviamente la cosa principale della DMZ e' il firewall: Codice:
#!/bin/bash IPT=/sbin/iptables NET="eth0" LAN="eth1" DMZ="eth2" LO="lo" IP_NET="30.30.30.30." IP_LAN="192.168.10.1" IP_DMZ="192.168.20.1" IP_LO="127.0.0.1" RANGE_IP_LAN="192.168.10.0/24" RANGE_IP_DMZ="192.168.20.0/24" SERVER_WEB="192.168.20.20" #pulisco tutto $IPT -F $IPT -F INPUT $IPT -F OUTPUT $IPT -F FORWARD $IPT -F -t mangle $IPT -F -t nat $IPT -X #imposto il comportamento di default $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP #abilito l'ip forwarding echo 1 > /proc/sys/net/ipv4/ip_forward #creo dei chan nuovi per "ogni" tipo di connessione (vedi sotto) $IPT -N net_to_lan $IPT -N lan_to_net $IPT -N net_to_dmz $IPT -N dmz_to_net $IPT -N lan_to_dmz $IPT -N dmz_to_lan $IPT -N server_to_net $IPT -N net_to_server $IPT -N lan_to_server $IPT -N server_to_lan $IPT -N dmz_to_server $IPT -N server_to_dmz #accetto in input sull'interfaccia LO tutto quello che viene dagli ip locali $IPT -A INPUT -p ALL -i $LO -s $IP_LO -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_LAN -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_NET -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_WRL -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_LO -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_LAN -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_NET -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_WRL -j ACCEPT #rispondo ai ping (non fondamentale, ma a volte e' comodo) $IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #redirigo le chiamate fatte sulla porta 80 al server in DMZ $IPT -t nat -A PREROUTING -i $NET -d $IP_NET -p tcp --dport 80 -j DNAT --to $SERVER_WEB #faccio snat dei computer in LAN (e quindi gli permetto di uscire su internet) $IPT -t nat -A POSTROUTING -o $NET -s $RANGE_IP_LAN -j SNAT --to-source $IP_NET #divido le connessioni (FORWARD) in base alla provenienza/destinazione $IPT -A FORWARD -i $NET -o $LAN -j net_to_lan $IPT -A FORWARD -i $LAN -o $NET -j lan_to_net $IPT -A FORWARD -i $NET -o $DMZ -j net_to_dmz $IPT -A FORWARD -i $DMZ -o $NET -j dmz_to_net $IPT -A FORWARD -i $LAN -o $DMZ -j lan_to_dmz $IPT -A FORWARD -i $DMZ -o $LAN -j dmz_to_lan #divido anche le connessioni in input.... $IPT -A INPUT -i $NET -j net_to_server $IPT -A INPUT -i $LAN -j lan_to_server $IPT -A INPUT -i $DMZ -j dmz_to_server #... e output $IPT -A OUTPUT -o $NET -j server_to_net $IPT -A OUTPUT -o $DMZ -j server_to_dmz $IPT -A OUTPUT -o $LAN -j server_to_lan #da internet verso la LAN accetto solo le connessioni related,estabilished $IPT -A net_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT #dalla LAN permetto di uscire su tutte le porte $IPT -A lan_to_net -j ACCEPT #dalla DMZ verso internet accetto solo le connesioni related o estabilished $IPT -A dmz_to_net -m state --state RELATED,ESTABLISHED -j ACCEPT #accetto le connessioni verso il server web in DMZ $IPT -A net_to_dmz -d $SERVER_WEB -p tcp --dport 80 -j ACCEPT #dalla LAN posso accedere a tutte le porte del server in DMZ (tipo per poterci accedere via ssh per poterlo gestire) $IPT -A lan_to_dmz -j ACCEPT #dalla dmz verso la lan accetto solamente le connessioni related ed estabilished... $IPT -A dmz_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT #accetto tutte le connessioni fatte dalla LAN verso il server (considero la mia rete interna SICURA) $IPT -A lan_to_server -j ACCEPT #accetto solo le connessioni related o estabilished che il server fa alla LAN $IPT -A server_to_lan -j ACCEPT
Codice:
#imposto il comportamento di default $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP ESPLICITAMENTE permessa viene negata, quindi bisogna aggiungere regole per poter fare cose in piu'. Questo e' la base su cui costruire, infatti se ci dimentichiamo qualcosa, offriremo qualcosa in meno, ma non saremo piu' vulnerabili (come nel caso si partisse da accettare tutto di default e poi negare le connessioni pericolose). Codice:
#redirigo le chiamate fatte sulla porta 80 al server in DMZ $IPT -t nat -A PREROUTING -i $NET -d $IP_NET -p tcp --dport 80 -j DNAT --to $SERVER_WEB 80 vengono redirette all'ip del server in DMZ. Ricordo che con iptables, i pacchetti per prima cosa girano nella catena di prerouting, e poi nelle altre catene (che siano input o forward), e il postrouting avviene dopo le altre catene (output o forward). In questo caso se non ci fosse la regola sopra, il pacchetto entrerebbe nella catena di input (visto che e' diretto all'ip della scheda eth0), ma invece grazie a questa regola il pacchetto passa nella catena di forward (infatti non e' piu' diretto ad un ip "locale" cioe' presente sulla macchina stessa). Codice:
#faccio snat dei computer in LAN (e quindi gli permetto di uscire su internet) $IPT -t nat -A POSTROUTING -o $NET -s $RANGE_IP_LAN -j SNAT --to-source $IP_NET provengono dalla LAN, praticamente all'uscita della catena di forward, viene manipolato il pacchetto cambianto l'ip sorgente (che passa da un ip della LAN che lo ha generato all'ip pubblico del firewall), iptables tenendo traccia delle connessioni, quando arrivano i pacchetti di risposta, li redirige automaticamente all'ip della LAN che li aveva generati. Codice:
#divido le connessioni (FORWARD) in base alla provenienza/destinazione $IPT -A FORWARD -i $NET -o $LAN -j net_to_lan $IPT -A FORWARD -i $LAN -o $NET -j lan_to_net $IPT -A FORWARD -i $NET -o $DMZ -j net_to_dmz $IPT -A FORWARD -i $DMZ -o $NET -j dmz_to_net $IPT -A FORWARD -i $LAN -o $DMZ -j lan_to_dmz $IPT -A FORWARD -i $DMZ -o $LAN -j dmz_to_lan #divido anche le connessioni in input.... $IPT -A INPUT -i $NET -j net_to_server $IPT -A INPUT -i $LAN -j lan_to_server $IPT -A INPUT -i $DMZ -j dmz_to_server #... e output $IPT -A OUTPUT -o $NET -j server_to_net $IPT -A OUTPUT -o $DMZ -j server_to_dmz $IPT -A OUTPUT -o $LAN -j server_to_lan questo caso puo' sembrare un po inutile, visto le regole che applichiamo dopo, ma diventa comodissima nel caso si voglia aggiungere qualcosa piu' avanti. Tutto lo script rimane molto piu' pulito e comprensibile, inoltre siccome conta in che ordine vengono chiamate le regole, se aggiungiamo un nuovo tipo di connessione, possiamo aggiungere le regole che la riguardano in fondo al nostro script, senza preoccuparci in che posizione le mettiamo (ovviamente la regola di "ingresso" alla connessione deve essere nel punto giusto!) veniamo alla parte principale del firewall: Codice:
#da internet verso la LAN accetto solo le connessioni related,estabilished $IPT -A net_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT #dalla LAN permetto di uscire su tutte le porte $IPT -A lan_to_net -j ACCEPT internet e accetto le risposte. Codice:
#dalla DMZ verso internet accetto solo le connesioni related o estabilished $IPT -A dmz_to_net -m state --state RELATED,ESTABLISHED -j ACCEPT #accetto le connessioni verso il server web in DMZ $IPT -A net_to_dmz -d $SERVER_WEB -p tcp --dport 80 -j ACCEPT e rispondere, ma non permetto di iniziare connessioni Codice:
#dalla LAN posso accedere a tutte le porte del server in DMZ (tipo per poterci accedere via ssh per poterlo gestire) $IPT -A lan_to_dmz -j ACCEPT #dalla dmz verso la lan accetto solamente le connessioni related ed estabilished... $IPT -A dmz_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT accettare le risposte. Anche in questo caso non permetto al server in DMZ di fare connessioni dirette verso la LAN. Codice:
#accetto tutte le connessioni fatte dalla LAN verso il firewall (considero la mia rete interna SICURA) $IPT -A lan_to_server -j ACCEPT #accetto solo le connessioni related o estabilished che il firewall fa alla LAN $IPT -A server_to_lan -j ACCEPT questo caso, non permetto al firewall di iniziare connessioni verso la LAN. complicazioni sembrerebbe che il nostro firewall sia a posto, ma in verita' non e' proprio cosi, infatti abbiamo che:
Codice:
#!/bin/bash IPT=/sbin/iptables NET="eth0" LAN="eth1" DMZ="eth2" LO="lo" IP_NET="30.30.30.30." IP_LAN="192.168.10.1" IP_DMZ="192.168.20.1" IP_LO="127.0.0.1" IP_WEB_UPDATE="40.40.40.40" IP_FTP_UPDATE="50.50.50.50" IP_DNS1="45.45.45.45" IP_DNS2="55.55.55.55" RANGE_IP_LAN="192.168.10.0/24" RANGE_IP_DMZ="192.168.20.0/24" SERVER_WEB="192.168.20.20" #pulisco tutto $IPT -F $IPT -F INPUT $IPT -F OUTPUT $IPT -F FORWARD $IPT -F -t mangle $IPT -F -t nat $IPT -X #imposto il comportamento di default $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP #abilito l'ip forwarding echo 1 > /proc/sys/net/ipv4/ip_forward #creo dei chan nuovi per "ogni" tipo di connessione (vedi sotto) $IPT -N net_to_lan $IPT -N lan_to_net $IPT -N net_to_dmz $IPT -N dmz_to_net $IPT -N lan_to_dmz $IPT -N dmz_to_lan $IPT -N server_to_net $IPT -N net_to_server $IPT -N lan_to_server $IPT -N server_to_lan $IPT -N dmz_to_server $IPT -N server_to_dmz #accetto in input sull'interfaccia LO tutto quello che viene dagli ip locali $IPT -A INPUT -p ALL -i $LO -s $IP_LO -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_LAN -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_NET -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_WRL -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_LO -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_LAN -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_NET -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_WRL -j ACCEPT #rispondo ai ping (non fondamentale, ma a volte e' comodo) $IPT -A INPUT -p icmp --icmp-type echo-request -j ACCEPT #redirigo le chiamate fatte sulla porta 80 al server in DMZ $IPT -t nat -A PREROUTING -i $NET -d $IP_NET -p tcp --dport 80 -j DNAT --to $SERVER_WEB #faccio snat dei computer in LAN (e quindi gli permetto di uscire su internet) $IPT -t nat -A POSTROUTING -o $NET -s $RANGE_IP_LAN -j SNAT --to-source $IP_NET #divido le connessioni (FORWARD) in base alla provenienza/destinazione $IPT -A FORWARD -i $NET -o $LAN -j net_to_lan $IPT -A FORWARD -i $LAN -o $NET -j lan_to_net $IPT -A FORWARD -i $NET -o $DMZ -j net_to_dmz $IPT -A FORWARD -i $DMZ -o $NET -j dmz_to_net $IPT -A FORWARD -i $LAN -o $DMZ -j lan_to_dmz $IPT -A FORWARD -i $DMZ -o $LAN -j dmz_to_lan #divido anche le connessioni in input.... $IPT -A INPUT -i $NET -j net_to_server $IPT -A INPUT -i $LAN -j lan_to_server $IPT -A INPUT -i $DMZ -j dmz_to_server #... e output $IPT -A OUTPUT -o $NET -j server_to_net $IPT -A OUTPUT -o $DMZ -j server_to_dmz $IPT -A OUTPUT -o $LAN -j server_to_lan #da internet verso la LAN accetto solo le connessioni related,estabilished $IPT -A net_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT #dalla LAN permetto di uscire su tutte le porte $IPT -A lan_to_net -j ACCEPT #dalla DMZ verso internet accetto solo le connesioni related o estabilished $IPT -A dmz_to_net -m state --state RELATED,ESTABLISHED -j ACCEPT #permetto gli update $IPT -A dmz_to_net -d $IP_WEB_UPDATE -p tcp --dport 80 -j ACCEPT $IPT -A dmz_to_net -d $IP_FTP_UPDATE -p tcp --dport 21 -j ACCEPT #permetto di risolvere nomi $IPT -A dmz_to_net -d $IP_DNS1 -p udp --dport 53 -j ACCEPT $IPT -A dmz_to_net -d $IP_DNS2 -p udp --dport 53 -j ACCPET #se il tipo di connessione non e' fra quelli permessi, lo loggo $IPT -A dmz_to_net -j LOG --log-prefix dmz_to_net: #accetto le connessioni verso il server web in DMZ $IPT -A net_to_dmz -d $SERVER_WEB -p tcp --dport 80 -j ACCEPT #devo anche accettare le connessioni stabilite dal server web per aggiornamenti e dns $IPT -A net_to_dmz -m state --state RELATED,ESTABLISHED -j ACCEPT #dalla LAN posso accedere a tutte le porte del server in DMZ (tipo per poterci accedere via ssh per poterlo gestire) $IPT -A lan_to_dmz -j ACCEPT #dalla dmz verso la lan accetto solamente le connessioni related ed estabilished... $IPT -A dmz_to_lan -m state --state RELATED,ESTABLISHED -j ACCEPT #loggo tutte le altre connessioni dal server web verso la lan $IPT -A dmz_to_lan -j LOG --log-prefix dmz_to_lan: #accetto tutte le connessioni fatte dalla LAN verso il server (considero la mia rete interna SICURA) $IPT -A lan_to_server -j ACCEPT #accetto solo le connessioni related o estabilished che il server fa alla LAN $IPT -A server_to_lan -j ACCEPT #permetto gli update del firewall $IPT -A server_to_net -d $IP_WEB_UPDATE -p tcp --dport 80 -j ACCEPT $IPT -A server_to_net -d $IP_FTP_UPDATE -p tcp --dport 21 -j ACCEPT #permetto di risolvere nomi $IPT -A server_to_net -d $IP_DNS1 -p udp --dport 53 -j ACCEPT $IPT -A server_to_net -d $IP_DNS2 -p udp --dport 53 -j ACCPET #se il tipo di connessione non e' fra quelli permessi, lo loggo $IPT -A server_to_net -j LOG --log-prefix dmz_to_net: #permetto al firewall che riceva le risposte $IPT -A net_to_server -m state --state RELATED,ESTABLISHED -j ACCEPT #loggo i tentativi del server in dmz di accedere al firewall $IPT -A dmz_to_server -j LOG --log-prefix dmz_to_server: configurazioni diverse le cose potrebbero complicarsi, ma come base potrebbe funzionare. cambiamenti possibili/idee varie se sia il server web sia il firewall usano la stessa distribuzione, e quindi gli stessi server per fare update (oltre che gli stessi dns), si potrebbero cambiare alcuni parti del firewall, in modo da rendere piu' comoda l'aggiunta di altri eventuali ip per update o altri servizi che i server possono raggiungere in internet. Codice:
#dalla DMZ verso internet accetto solo le connesioni related o estabilished $IPT -A dmz_to_net -m state --state RELATED,ESTABLISHED -j ACCEPT #permetto gli update $IPT -A dmz_to_net -d $IP_WEB_UPDATE -p tcp --dport 80 -j ACCEPT $IPT -A dmz_to_net -d $IP_FTP_UPDATE -p tcp --dport 21 -j ACCEPT #permetto di risolvere nomi $IPT -A dmz_to_net -d $IP_DNS1 -p udp --dport 53 -j ACCEPT $IPT -A dmz_to_net -d $IP_DNS2 -p udp --dport 53 -j ACCPET #se il tipo di connessione non e' fra quelli permessi, lo loggo $IPT -A dmz_to_net -j LOG --log-prefix dmz_to_net: #permetto gli update del firewall $IPT -A server_to_net -d $IP_WEB_UPDATE -p tcp --dport 80 -j ACCEPT $IPT -A server_to_net -d $IP_FTP_UPDATE -p tcp --dport 21 -j ACCEPT #permetto di risolvere nomi $IPT -A server_to_net -d $IP_DNS1 -p udp --dport 53 -j ACCEPT $IPT -A server_to_net -d $IP_DNS2 -p udp --dport 53 -j ACCPET #se il tipo di connessione non e' fra quelli permessi, lo loggo $IPT -A server_to_net -j LOG --log-prefix dmz_to_net: Codice:
$IPT -N permitted $IPT -A permitted -d $IP_WEB_UPDATE -p tcp --dport 80 -j ACCEPT $IPT -A permitted -d $IP_FTP_UPDATE -p tcp --dport 21 -j ACCEPT #permetto di risolvere nomi $IPT -A permitted -d $IP_DNS1 -p udp --dport 53 -j ACCEPT $IPT -A permitted -d $IP_DNS2 -p udp --dport 53 -j ACCPET #se il tipo di connessione non e' fra quelli permessi, lo loggo $IPT -A permitted -j LOG --log-prefix dmz_to_net: #dalla DMZ verso internet accetto solo le connesioni related o estabilished $IPT -A dmz_to_net -m state --state RELATED,ESTABLISHED -j ACCEPT #permetto un po di cose ai server in dmz $IPT -A dmz_to_net -j permitted #permetto un po di cose al firewall $IPT -A server_to_net -j permitted per ogni server del tipo al posto di: Codice:
$IPT -A FORWARD -i $NET -o $DMZ -j net_to_dmz $IPT -A FORWARD -i $DMZ -o $NET -j dmz_to_net Codice:
$IPT -A FORWARD -i $NET -o $DMZ -d $IP_WEB -j net_to_dmz_web $IPT -A FORWARD -i $NET -o $DMZ -d $IP_SMTP -j net_to_dmz_smtp $IPT -A FORWARD -i $DMZ -o $NET -s $IP_WEB -j dmz_to_net_web $IPT -A FORWARD -i $DMZ -o $NET -s $IP_SMTP -j dmz_to_net_smtp DMZ e non trattandoli tutti genericamente. ATTENZIONE! Vi ricordo che prima di implementare un firewall "importante" e' meglio darsi un'occhiata a http://www.netfilter.org/ non prendete tutto per giusto quello che ho scritto! Ovviamente se notate errori fatemelo sapere, stessa cosa vale se avete suggerimenti Ciao!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
15-06-2007, 22:46 | #2 |
Senior Member
Iscritto dal: Nov 2004
Città: Reggio Emilia e dintorni
Messaggi: 3726
|
Ipcop, smoothwall e monowall.
Ottimo lavoro, speriamo serva e chiarisca le idee.
__________________
Open CD ITA - Open DVD ITA - Linux da Zero - RFC1925 - O.S.: Debian & Slackware - Rule #1: It has to work ! AVERE DELLE CONOSCENZE E NON CONDIVIDERLE E' COME NON AVERE NULLA |
15-06-2007, 23:19 | #3 |
Senior Member
Iscritto dal: Nov 1999
Città: Roma
Messaggi: 161
|
WOW!!
scusate l'ignoranza ma io sto migrando a Linux da Windows soprattutto perchè mi sono rotto di avere il sistema attufato da panda, mcafee, ad-aware, spybot, etc. (anche perchè è gratis, si lo ammetto)... insomma Linux dovrebbe essere più sicuro di Windows, dato che per un utente domestico il firestarter firewall dovrebbe essere sufficiente.... giusto? o hai voluto fare una guida per utenti piuttosto che per utonti (come me)? ciao
__________________
Patria e Onore |
16-06-2007, 10:53 | #4 | ||
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
tra le altre cose che volevo provare c'era pure shorewall... ma saro' bacato io ma lo trovavo piu' difficile di iptables! Comunque credo che se si vuole capire minimamente un frontend per firewall (tipo guardog firestarter, o anche shorewall), una ripassata di iptables non puo' far male! Quote:
beh una dmz si fa quando ci sono dei server abbastanza importanti, direi che non e' molto utile al comune utente a casa, quindi questa guida dovrebbe solamente essere uno spunto per chi sa gia usare iptables, ma deve fare qualcosa di un po piu' serio che il firewall casalingo.
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
||
16-06-2007, 13:15 | #5 |
Senior Member
Iscritto dal: Nov 2004
Città: Reggio Emilia e dintorni
Messaggi: 3726
|
Shorewall è un baco di Webmin.
__________________
Open CD ITA - Open DVD ITA - Linux da Zero - RFC1925 - O.S.: Debian & Slackware - Rule #1: It has to work ! AVERE DELLE CONOSCENZE E NON CONDIVIDERLE E' COME NON AVERE NULLA |
28-10-2007, 16:42 | #6 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3573
|
Così non vale, io a suo tempo mi sono fatto un mazzo grande tanto per imparare ad usare iptables e tu ci regali una guida esaustiva e alla portata di tutti per creare una DMZ? E' tradizione che imparare ad usare iptables comporti sofferenze atroci e nottate insonni passate davanti al man, non lo sai?
Sarebbe interessante approfondire il discorso aggiungendo la parte riguardante il filtraggio a livello applicativo (layer 7), dal momento che la documentazione al riguardo scarseggia. Ciao e complimenti per il lavoro, gli ho dato una rapida occhiata e sembra ben fatto Edit: io non mi fiderei a lasciare il firewall accessibile dalla lan, una bussatina prima non farebbe male
__________________
Debian amd64 | Gentoo amd64 | AMD Athlon64 3800+ X2@2701Mhz vcore 1.49V | Placing an unpatched Windows computer directly onto the Internet in the hope that it downloads the patches faster than it gets exploited are odds that you wouldn't bet on in Vegas | e-mail+jabber: darkbasic|a.t|linuxsystems|d.o.t|it | www.linuxsystems.it Ultima modifica di darkbasic : 28-10-2007 alle 16:51. |
28-10-2007, 16:59 | #7 | ||||
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
Quote:
Quote:
Quote:
ah e per il port knocking, avevo gia incluso qualcosa nella mia guida sull'ssh
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
||||
28-10-2007, 17:02 | #8 |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3573
|
Spesso si rivela la soluzione migliore
__________________
Debian amd64 | Gentoo amd64 | AMD Athlon64 3800+ X2@2701Mhz vcore 1.49V | Placing an unpatched Windows computer directly onto the Internet in the hope that it downloads the patches faster than it gets exploited are odds that you wouldn't bet on in Vegas | e-mail+jabber: darkbasic|a.t|linuxsystems|d.o.t|it | www.linuxsystems.it |
29-10-2007, 18:52 | #9 |
Senior Member
Iscritto dal: Jun 2003
Messaggi: 1468
|
Ottimo lavoro.
Volevo chiederti una cosa: Delle 3 schede di rete avremo che eth0 ha un ip pubblico (e' collegata ad internet) NET="eth0" IP_NET="30.30.30.30." Cosa intendi esattamente? eth0 è collegata ad un modem ethernet? se si, non ci dovrebbe essere anche una connessione ppp0? 30.30.30.30 è un falso ip pubblico o un indirizza che hai dato tu alla scheda di rete? Ultima modifica di Shang Tsung : 29-10-2007 alle 19:07. |
29-10-2007, 21:34 | #10 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
05-02-2008, 11:00 | #11 |
Junior Member
Iscritto dal: Sep 2007
Messaggi: 25
|
Scusa mi sta incuriosando iptable, ho a disposizione un solo ip pubblico 64.32.y.cxx, se assegno all'interfaccia lan 10.0.0.1 e all'interfaccia router 10.0.0.2 il tutto dovrebbe funzionare?
|
05-02-2008, 12:51 | #12 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
infatti avresti 2 interfacce nello stesso range di ip... ti consiglio di usare 10.0.0.X da una parte e 10.0.1.X dall'altra... ricordandoti di specificare una netmask adeguata (normalmente per la classe 10.x.x.x e' 255.0.0.0, invece tu devi usare 255.255.255.0) ovviamente se hai bisogno di molti ip nella tua lan, puoi sempre usare un 10.1.0.1 e un 10.0.0.1 (con netmask 255.255.0.0) Ciao
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
13-07-2009, 13:07 | #13 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 6
|
non ho capito
#accetto in input sull'interfaccia LO tutto quello che viene dagli ip locali
$IPT -A INPUT -p ALL -i $LO -s $IP_LO -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_LAN -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_NET -j ACCEPT $IPT -A INPUT -p ALL -i $LO -s $IP_WRL -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_LO -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_LAN -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_NET -j ACCEPT $IPT -A OUTPUT -p ALL -o $LO -d $IP_WRL -j ACCEPT Buongiorno a tutti, con tutta la buona volonta' non ho capito cosa sia $IP_WRL chi mi spiega? grazie in anticipo |
13-07-2009, 13:28 | #14 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
togli quella riga... ho visto che c'e' qualche errore... visto che avevo preso il firewall che avevo messo in ufficio e strippato le parti che non servivano (tipo quelle dell'interfaccia della wireless... a cui si riferisce la riga) comunque quello che consiglio non e' un copia incolla... ma piu' che altro una base per capire e poi modificare per il proprio firewall...
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
13-07-2009, 13:36 | #15 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 6
|
comunque quello che consiglio non e' un copia incolla... ma piu' che altro una base per capire e poi modificare per il proprio firewall...[/quote]
no infatti anche perche' la mia zona e' totalmente diversa diverse le eth e via dicendo, solo che dopo averlo letto 3 volte e non aver capito cosa accidenti fosse ho pensato bhe se glielo chiedo me lo dira' |
14-07-2009, 09:54 | #16 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
se hai bisogno di consigli... basta che chiedi, e faccio il possibile per rispondere!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
15-07-2009, 08:58 | #17 |
Junior Member
Iscritto dal: Jul 2009
Messaggi: 6
|
|
15-07-2009, 09:03 | #18 |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
se ho un attimo di tempo si... magari se e' anche un attimo commentato cosi riesco a capire meglio cosa vuoi fare, ci metto meno!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
15-07-2009, 09:10 | #19 |
Senior Member
Iscritto dal: Aug 2001
Città: Roma
Messaggi: 3773
|
Davvero una guida completa, complimenti!
Mi viene solo un dubbio: non pensi sia il caso, soprattutto per chi inizia, di mettere su un serverino con qualche distro tipo IPCop, Smoothwall o Endian Firewall? Più che altro richiedeno una conoscenza molto meno approfondita di iptables e networking in generale..
__________________
Desktop: Modded CoolerMaster Wave Master - Asus P8Z68V Pro/Gen3 - Intel i7-3770K@4,5GHz - Noctua NH-U12P SE2 - 16Gb Dominator 2133MHz - Zotac GTX760AMP - SSD Samsung 850Evo 250Gb + HDD Samsung 750Gb - Windows 10Pro
Ultrabook: Lenovo U410 Intel i5-3317U - 6Gb Ram - SSD32Gb + HDD 500Gb - Nvidia 610M - Windows 10 |
15-07-2009, 09:15 | #20 | |
Senior Member
Iscritto dal: Dec 2000
Città: Trento
Messaggi: 5917
|
Quote:
e comunque lo considero un esercizio per imparare qualcosa, non dovrebbe essere una cosa fine a se stessa, ma un inizio per imparare cose nuove che potrebbero venir utili in futuro. Alla fine nelle grosse aziende si usano tutti apparati hardware (che poi magari usano lo stesso un linux con iptables ) ma sapere come funziona veramente, ti da una bella mano anche per usare questi aggeggi!
__________________
Linux User #272700 >+++++++++[<+++++++++>-]<+.++.>++++[<---->-]<++.+++++++. HOWTO: SSH Firewall e DMZ ɐɹdosoʇʇos oʇuǝs ıɯ |
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:56.