Consenso all'uso dei cookies

SITO1 -- SITO2 -- Forum2 -- CercaGlobale -- Informativa su Cookie e Privacy

Questo Forum1 è in sola lettura -- Usa il Forum2


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Script per IPtables
#1
Rainbow 
Il mio vecchio pc non regge l'interfaccia di Ufw. Sono costretto, mio malgrado ad usare la riga di comando, inoltre ufw non consente molte operazioni avanzate.
Mi date una mano a realizzare questo script:

1) Tutto chiuso in entrata ed uscita
2) Solo le connessioni richieste dall'interno del PC possono essere autorizzate a comunicare
3) Solo sulle porte: 53, 80, 443, 8080 (e solo per un IP proxy)
4) Creare un log delle azioni di IPTABLES sul desktop (per semplificare la consultazione)
5) Isolare il computer (non deve andare in rete con nessuno), come si comporta se sono su internet tramite il modem del cellulare?
Come lo isolo o lo e' di default?
6) Droppare gli ICMP (non deve interessare a nessuno che il computer e' in rete)
7) come faccio a caricarlo all'avvio senza doverlo fare manualmente ogni volta?
8) Lo script funziona sempre, sia sotto router che collegato via modem?
Devo specificare sempre l'interfaccia o lo modifica automaticamente, es: 192.168.0.1, 192.168.10.1....
9) Come loggo tutto il traffico non permesso?
10) Altri suggerimenti.

Grazie anticipatamente.

Ho già dato un'occhiata in giro ed ho trovato:

# INIZIO SCRIPT #

# puliamo tutto prima di applicare le nuove regole
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F

#Prima di tutto permettiamo il dialogo con il server DNS, ipotizzando
#che sia all'esterno della rete, ricordando che il traffico può essere
#sia UDP che TCP:
/sbin/iptables -A FORWARD -p udp -s 192.168.10.4 -d 8.8.4.4 --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s 192.168.10.4 -d 8.8.8.8 --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -s 8.8.4.4 -d 192.168.10.4 --sport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s 8.8.8.8 -d 192.168.10.4 --sport 53 -j ACCEPT

# poi facciamo in modo di accettare i pacchetti in entrata
# che appartengono ad una connessione già esistente
# o che sono correlati a connessioni preesistenti
/sbin/iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

#Ora abilitiamo tutti i pacchetti in uscita e in risposta relativi al
#servizio HTTP (porta 80 per il server) e HTTPS (443):
/sbin/iptables -A FORWARD -s 192.168.10.4 -i eth0 -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.10.4 -o eth0 -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.10.4 -i eth0 -p tcp --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.10.4 -o eth0 -p tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT

# abilitiamo il blocco del transito di pacchetti provenienti
# dalla rete interna (ad es. 192.168.10.*)
/sbin/iptables -A FORWARD -s 192.168.10.0/24 -j DROP

# abilitiamo il transito di pacchetti che appartengono
# ad una connessione già esistente o che siano correlati
# a connessioni preesistenti
/sbin/iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j
ACCEPT

# Blocchiamo i pacchetti icmp (il ping) per l'interfaccia
# di loopback
/sbin/iptables -A INPUT -i lo -p icmp -j DROP

# Blocchiamo i pacchetti icmp per la scheda di rete
/sbin/iptables -A INPUT -i eth0 -p icmp -j DROP

# FINE SCRIPT #
Cita messaggio
#2
Ciao, a che punto sei con lo script?
Vorrei dare un contributo ma dai numerosi quesiti e dalla bozza di script ( e soprattutto per i miei limiti) non riesco a farmi un'idea chiara.
Quindi, partendo dal punto 10, ti posso solo suggerire di descrivere meglio la tua rete e l'utilizzo del pc.
Il firewall deve proteggere solo il pc? è il gateway della tua rete? quali servizi devono essere esposti in rete? ...
Poi ti suggerirei di scegliere uno tra i due approcci tipici, cioè: policy accept e poi nego il traffico che voglio escludere o policy drop e poi consento quello che mi serve?
Poi, per il punto 1 policy INPUT e OUTPUT drop.
Per il punto 7 ci sono vari metodi e comunque puoi guardare questa guida di Teo
Punto 8 se ti riferisci all'assegnazione dinamica degli IP, indicando l'interfaccia (es: eth0) anziché l'IP il problema non si pone.
Punto 9 inserendo PRIMA di ogni regola che finisce con -J DROP una uguale che però finisce con -J LOG.
Per gli altri punti .... confused.
Ciao
just my two cents
A volte ritorna on line http://max4me.no-ip.net
Cita messaggio
#3
(21-06-2013, 00:49 )Max4me Ha scritto: Ciao, a che punto sei con lo script?
Vorrei dare un contributo ma dai numerosi quesiti e dalla bozza di script ( e soprattutto per i miei limiti) non riesco a farmi un'idea chiara.
Quindi, partendo dal punto 10, ti posso solo suggerire di descrivere meglio la tua rete e l'utilizzo del pc.
Il firewall deve proteggere solo il pc? è il gateway della tua rete? quali servizi devono essere esposti in rete? ...
Poi ti suggerirei di scegliere uno tra i due approcci tipici, cioè: policy accept e poi nego il traffico che voglio escludere o policy drop e poi consento quello che mi serve?
Poi, per il punto 1 policy INPUT e OUTPUT drop.
Per il punto 7 ci sono vari metodi e comunque puoi guardare questa guida di Teo
Punto 8 se ti riferisci all'assegnazione dinamica degli IP, indicando l'interfaccia (es: eth0) anziché l'IP il problema non si pone.
Punto 9 inserendo PRIMA di ogni regola che finisce con -J DROP una uguale che però finisce con -J LOG.
Per gli altri punti .... confused.
Ciao

Sono fermo per motiviazioni varie. Non sono riuscito nemmeno a provare la mia bozza....
Si, devo proteggere il singolo PC. No, non e' gateway, nessun servizio esterno.
Direi Drop e permetto solo quello che mi serve.
Fatto...(input oputput drop) Angel
Ok, ci do' un'occhiata. Utile e molto semplice.
L'ip o l'interfaccia di rete riesce a conf in automatico indipentemente, uso il PC sia su una rete con router che con connessione modem.
Ok. Riscrivo.
Ok, era solo per dire: mi sto dimenticando di qualcosa?
Appena posso provo lo script. (se puoi lo provi anche tu?)

# INIZIO SCRIPT #

# puliamo tutto prima di applicare le nuove regole
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F

#Prima di tutto blocchiamo tutto
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Prima di tutto permettiamo il dialogo con il server DNS, ipotizzando
#che sia all'esterno della rete, ricordando che il traffico può essere
#sia UDP che TCP:
/sbin/iptables -A FORWARD -p udp -s 192.168.10.4 -d 8.8.4.4 --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s 192.168.10.4 -d 8.8.8.8 --dport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p udp -s 8.8.4.4 -d 192.168.10.4 --sport 53 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -s 8.8.8.8 -d 192.168.10.4 --sport 53 -j ACCEPT

# poi facciamo in modo di accettare i pacchetti in entrata
# che appartengono ad una connessione già esistente
# o che sono correlati a connessioni preesistenti
/sbin/iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

#Ora abilitiamo tutti i pacchetti in uscita e in risposta relativi al
#servizio HTTP (porta 80 per il server) e HTTPS (443):
/sbin/iptables -A FORWARD -s 192.168.10.4 -i eth0 -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.10.4 -o eth0 -p tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.10.4 -i eth0 -p tcp --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -d 192.168.10.4 -o eth0 -p tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT

# abilitiamo il blocco del transito di pacchetti provenienti
# dalla rete interna (ad es. 192.168.10.*)
/sbin/iptables -A FORWARD -s 192.168.10.0/24 -j LOG
/sbin/iptables -A FORWARD -s 192.168.10.0/24 -j DROP

# abilitiamo il transito di pacchetti che appartengono
# ad una connessione già esistente o che siano correlati
# a connessioni preesistenti
/sbin/iptables -A FORWARD -m state --state ESTABLISHED, RELATED -j
ACCEPT

# Blocchiamo i pacchetti icmp (il ping) per l'interfaccia
# di loopback
/sbin/iptables -A INPUT -i lo -p icmp -j LOG
/sbin/iptables -A INPUT -i lo -p icmp -j DROP

# Blocchiamo i pacchetti icmp per la scheda di rete
/sbin/iptables -A INPUT -i eth0 -p icmp -j LOG
/sbin/iptables -A INPUT -i eth0 -p icmp -j DROP

# FINE SCRIPT #
Cita messaggio
#4
Ciao,
allora stando così le cose, visto che non devi "forwardare" nulla, non ha senso riempire di codice la catena FORWARD in cui non dovrebbero transitare pacchetti, mentre, è opportuno curare la catena INPUT.
Un settaggio essenziale da cui partire potrebbe esere questo:
Codice:
#comodo
IPTABLES="/sbin/iptables"

#pulitina (eventualmente anche delle tabelle raw e security)
$IPTABLES –F
$IPTABLES –F –t nat
$IPTABLES –F –t mangle


#settiamo le policies
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

#accettiamo il traffico di ritorno
$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#e quello di loopback
$IPTABLES -A INPUT -i lo -j ACCEPT

#se vogliamo un log decommentare le due righe che seguono
#$IPTABLES -A INPUT -m pkttype --pkt-type unicast -j LOG --log-prefix "sostituisciconunastringadidescrizione: "
#$IPTABLES -A FORWARD -m pkttype --pkt-type unicast -j LOG --log-prefix "sostituisciconunaltrastringadidescrizione: "
##########
dove le regole di LOG, in assenza di target DROP, sono appese alla fine cioè prima del DROP di default della catena.
Prova, modifica, smanetta e divertiti.
Se vuoi aprofondire in rete si trova molto materiale utile (purtroppo non si trova il tempo di leggerlo).
Ciao
just my two cents
A volte ritorna on line http://max4me.no-ip.net
Cita messaggio


Vai al forum:


Utenti che stanno guardando questa discussione: 1 Ospite(i)