|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
[IPTABLES] fatto semplice semplice
ho letto un pò in giro ma di roba concisa non ne ho trovata..
attualmente in casa ho la seguente rete router (alice w-gate che non posso eliminare visto voip e home tv) pc windows vista pc test debian etch pc muletto debian base base solo cli sul quale gira torrentflux-b4rt ora dovrei configurare ad hoc il muletto che sta acceso 24/7 con iptables in modo che faccia da personal firewall senza quindi interagire con il resto della rete: apra un range di porte che uso per torrent sia accessibile da dentro la rete alla porta 80 e in ssh (22) sia accessibile dall'esterno come sopra sia tranquillamente aggiornabile/posso installare altri pacchetti da apt o aptitude all'occorrenza e che blocchi tutto il resto ovviamente le regole devono essere caricate all'avvio e per ora l'unico metodo che ho trovato leggendo in giro è quello di fare ad esempio iptables-save > /etc/firewall-rules e di andare ad infilare in /etc/network/interfaces sotto iface lo ineto loopback: pre-up iptables-restore < /etc/firewall-rules è corretto fare così? leggendo sempre in giro ho letto che è buona norma bloccare tutto in ingresso ed in uscita e poi tramite regole fatte apposta aprire quello che serve la sintassi più o meno l'ho capita ma non riesco a tirare fuori un set di regole semplice senza nessuna pretesa ma che mi dia un minimo di garanzia sulla sicurezza
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
|
Prima cosa, il firewall che farai ha due schede di rete? una iface interna ed una esterna..
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
nono il firewall lo configuro su quella macchina per se stessa..quindi nessun firewall di rete
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
|
Ok, quindi puoi impostare anche solo la policy di INPUT per ora a DROP di default e aprire cio' che ti serve.
Le porte 22 e 80 le puoi aprire verso chiunque, tanto mi sembra di capire che non devi filtrare per lan O per internet. E poi apri un range normalmente. Che problemi particolari hai? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
a fare tutto lo script e renderlo avviabile..decisamente più leggo roba in giro più non ci capisco un tubo
![]() preciso che il gateway ha ip 192.168.1.1 e il pc in questione 192.168.1.10 le porte che deve aprire per usare il torrente sono 10 (ora non ricordo il numero preciso) per ora il mio file di creazione è: Codice:
#elimino qualsiasi precedente regola creata iptables -F iptables -Z iptables -X #imposto le policy di default #se non è specificata una regola precisa i pacchetti vengono scartati di default iptables -P INPUT -j DROP iptables -P FORWARD -j DROP iptables -P OUTPUT -j DROP #permetto tutto il traffico proveniente dalla rete iptables -A INPUT -s 127.0.0.1 -j ACCEPT #permetto il transito di pacchetti per le connessioni già stabilite iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables-save > /etc/firewall-rules e uso l'unico metodo di avvio che ho trovato finora: andare ad infilare in /etc/network/interfaces sotto "iface lo inet loopback": pre-up iptables-restore < /etc/firewall-rules ora dovrei iniziare a creare le chains e il firewall veroe proprio ma mi pianto e non riesco a trovare nessuna guida semplice che mi porti avanti
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ Ultima modifica di shura : 17-09-2008 alle 11:03. |
![]() |
![]() |
![]() |
#6 |
Member
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
|
Ok, come ti dicevo, per ora tieni solo la INPUT a drop di default. La FORWARD non ti serve in quanto e' la catena usata nel caso il tuo server facesse da router/gateway per la rete.
Codice:
# variabili MYIP=192.168.1.10 TCPPORTLIST=1,2,3,4,5 UDPPORTLIST=6,7,8 #elimino qualsiasi precedente regola creata iptables -F iptables -Z iptables -X #imposto le policy di default #se non è specificata una regola precisa i pacchetti vengono scartati di default iptables -P INPUT -j DROP iptables -P OUTPUT -j ACCEPT #permetto tutto il traffico proveniente da localhost iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #permetto il transito di pacchetti per le connessioni già stabilite iptables -A INPUT -d $MYIP -m state --state RELATED,ESTABLISHED -j ACCEPT # permetto il traffico verso ssh e web iptables -A INPUT -p tcp --syn -d $MYIP --dport 22 -j ACCEPT iptables -A INPUT -p tcp --syn -d $MYIP --dport 80 -j ACCEPT # permetto il traffico p2p iptables -A INPUT -p tcp --syn -d $MYIP -m multiport --dports $TCPPORTLIST -j ACCEPT iptables -A INPUT -p udp --syn -d $MYIP -m multiport --dports $UDPPORTLIST -j ACCEPT |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
|
una curiosità: come mai non lo vuoi usare come gateway?
non ti interessa usare internet con gli altri pc della rete?
__________________
![]() |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
|
Beh se gia' ha il router che condivide Internet e filtra le connessioni, sarebbe superfluo un ulteriore gateway+firewall.
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
ok grazie per lo script e per l'uso di variabili..avevo visto che si poteva fare ma stavo provando ad andare per gradi
tecnicamente potrei mettere il firewall davanti a tutta la rete ma mi interessa poco per alcuni motivi tra cui il fatto che sotto al router ci sta la x360 e quando gioco online non vorrei subire lag sia xchè in genere tengo il pc con vista pulito ordinato e sottoposto a periodica manutenzione quindi farmi troppe paranoie sulla sicurezza non è il caso cmq un firewall del genere è un qualcosa che potrei metter su sul pc di test..ma prima tocca capire bene iptables giusto una domanda, la riga: #permetto tutto il traffico proveniente da localhost iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT è quella che permette ai pc in lan di comunicare tra di loro senza alcuna restrizione? sul suddetto muletto ho samba impostato per condividere files con il pc windows
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ Ultima modifica di shura : 17-09-2008 alle 14:53. |
![]() |
![]() |
![]() |
#10 | |
Member
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
|
Quote:
Se vuoi che le macchine della lan abbiano accesso completo al tuo muletto allora dovrai aggiungere: Codice:
iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.10 -j ACCEPT |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
ok grazie mille sei stato gentilissimo
quindi quanto fatto finora va bene per un firewall standard..se col tempo volessi aggiungere regole più precise, roba leggermente più avanzata.. hai qualche tutorial o guida da leggere?roba che non si spinga troppo oltre
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
ok ho fatto una prova passando il file e settandolo allo startup ma niente
quello che è uscito è: Codice:
# variabili MYIP=192.168.1.10 TCPPORTLIST=1,2,3,4,5 UDPPORTLIST=6,7,8 #elimino qualsiasi precedente regola creata iptables -F iptables -Z iptables -X #imposto le policy di default #se non è specificata una regola precisa i pacchetti vengono scartati di default iptables -P INPUT -j DROP iptables -P OUTPUT -j ACCEPT #permetto tutto il traffico proveniente da localhost iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #permetto il transito di pacchetti per le connessioni già stabilite iptables -A INPUT -d $MYIP -m state --state RELATED,ESTABLISHED -j ACCEPT # permetto il traffico verso ssh e web iptables -A INPUT -p tcp --syn -d $MYIP --dport 22 -j ACCEPT iptables -A INPUT -p tcp --syn -d $MYIP --dport 80 -j ACCEPT # permetto il traffico p2p iptables -A INPUT -p tcp --syn -d $MYIP -m multiport --dports $TCPPORTLIST -j ACCEPT iptables -A INPUT -p udp --syn -d $MYIP -m multiport --dports $UDPPORTLIST -j ACCEPT #permetto il traffico interno alla lan iptables -A INPUT -s 192.168.1.0/24 -d 192.168.1.10 -j ACCEPT sono andato in /etc/network/interfaces e sotto 'iface lo inet loopback' ho messo la stringa: pre-up iptables-restore < /etc/firewall-rules ho riavviato ma NIENTE che noobata ho fatto?
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
|
Ammetto che potrebbe esserci qualche errore. Hai provato a lanciarlo come fosse uno script bash e vedere se ti da' errori?
Come doc c'e' sempre il validissimo http://iptables-tutorial.frozentux.n...-tutorial.html |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
eh bella domanda..come lo rendo uno script bash?
cmq sto provando a dare i comandi separatamente e a: Codice:
iptables -P INPUT -j DROP iptables -P OUTPUT -j ACCEPT edit3 ho dato semplicemente (trovato su una guida, sto pasticciando tanto chi se ne frega sto pc è up solo per dei test) Codice:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ Ultima modifica di shura : 18-09-2008 alle 09:24. |
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: Jan 2006
Messaggi: 236
|
apri un editor: gedit
in testa al file inserisci: #!/bin/bash copia quello che hai scritto ed alla fine inserisci: exit 0 Salva il file in formato .sh apri una bash, vai nella cartella dove hai salvato il file e dai questo comando: chmod a+x nomefile.sh dopo di che: ./nomefile.sh e vedi che ti dice. Probabilmente devi essere root per far si che venga eseguito bene, oppure sudo, vedi tu. ciao |
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
thx anche a lio
cmq sto provando i comandi uno ad uno a mano e quando arrivo a: Codice:
iptables -A INPUT -p udp --syn -d $MYIP -m multiport --dports $UDPPORTLIST -j ACCEPT da man iptables: Quote:
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ |
|
![]() |
![]() |
![]() |
#17 |
Member
Iscritto dal: Nov 2007
Città: Ginevra
Messaggi: 256
|
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
e anche qua:
Codice:
iptables -P INPUT -j DROP iptables -P OUTPUT -j ACCEPT ![]() per il resto ho messo tutti le stringhe a mano e le ho salvate avviandolo con quel metodo in /etc/network/interfaces all'avvio iptables -L mi restituisce tutto corretto ora ci installo sopra tutto quello che c'è sul muletto sul quale andranno tutte ste cose e testo il funzionamento.. resta di fatto che quel files così come l'abbiamo scritto, con i commenti e le variabili non me lo fa usare..devo provare sta cosa del bash un'altra cosa che non va è la stringa che permette il traffico di rete..non riesco ad accedere alle cartelle condivise con samba dal pc windows.
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ Ultima modifica di shura : 18-09-2008 alle 10:07. |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 2639
|
niente da fare, sto provando in tutti i modi ma non c'è verso di far andare samba con quei comandi di iptables..
ovviamente se reimposto le policy: iptables -P INPUT ACCEPT il tutto funziona quindi deve essere per forza un problema di regole praticamente il file finale dal quale prendo i comandi da passare ad iptables è: Codice:
# variabili MYIP=192.168.1.3 TCPPORTLIST=4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682 UDPPORTLIST=4672,4673,4674,4675,4676,4677,4678,4679,4680,4681,4682 #elimino qualsiasi precedente regola creata iptables -F iptables -Z iptables -X #imposto le policy di default #se non è specificata una regola precisa i pacchetti vengono scartati di default iptables -P INPUT DROP iptables -P OUTPUT ACCEPT #permetto tutto il traffico proveniente da localhost iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #permetto il transito di pacchetti per le connessioni già stabilite iptables -A INPUT -d $MYIP -m state --state RELATED,ESTABLISHED -j ACCEPT # permetto il traffico verso ssh e web iptables -A INPUT -p tcp --syn -d $MYIP --dport 22 -j ACCEPT iptables -A INPUT -p tcp --syn -d $MYIP --dport 80 -j ACCEPT # permetto il traffico p2p iptables -A INPUT -p tcp --syn -d $MYIP -m multiport --dports $TCPPORTLIST -j ACCEPT iptables -A INPUT -p udp -d $MYIP -m multiport --dports $UDPPORTLIST -j ACCEPT #permetto il traffico interno alla lan iptables -A INPUT -s 192.168.1.0/24 -d $MYIP -j ACCEPT
__________________
Thermaltake Chaser MK-I | Cooler Master Silent Pro Gold 600W 80plus | GA-Z77X-UD3H | i5-3570k | Corsair Vengeance Blue Low Profile 1600MHz 8GB | Gigabyte NVIDIA GeForce GTX1070G1 | SSD Crucial M4 128GB | Seagate Barracuda ST2000DM001 | windows 10 pro | steamid: shura30_ |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Dec 2000
Messaggi: 1187
|
Samba non funziona perche` il protocollo Microsoft fa ampio uso dei broadcast, che implicitamente neghi ogni volta che usi -s e -d.
Quindi per aprire Samba devi fare: iptables -A INPUT -i eth0 -p tcp -m multiport --dport 137,138,139,445 -j ACCEPT iptables -A INPUT -i eth0 -p udp --dport 137:139 -j ACCEPT (o se vuoi aprire tutto, iptables -A INPUT -i eth0 -j ACCEPT ) Impara ad usare sempre -i (--interface) (e mai -s/-d da soli), perche` un IP puo` essere falsificato facilmente (come anche il MAC), e l'interfaccia fisica su cui arriva un pacchetto e` l'unica certezza a meno che non ci si trovi gia` in una rete ad alta sicurezza con tutte le workstation e switch blindati. Ad esempio la regola di localhost deve essere semplicemente: iptables -A INPUT -i lo -j ACCEPT Perche` di pacchetti falsificati con scritto 127.0.0.1 ne potrebbero arrivare anche da fuori. E dal momento che usi la policy DROP, metti un LOG globale alla fine dello script. Se non vedi quello che stai bloccando non puoi capire cosa devi aprire quando non funziona qualcosa. iptables -A INPUT -m limit --limit 60/minute -j LOG --log-prefix "#=Drop=# " (il log fa parte della facility kernel di Syslog, quindi finisce in uno dei file in /var/log, a seconda della distribuzione. Vedi eventualmente /etc/syslog.conf) Ultima modifica di Pardo : 18-09-2008 alle 21:28. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:11.