PDA

Visualizza la versione completa : cisco nat e access-list


dops
27-04-2007, 20:28
ciao, su un router cisco ho fatto un nat di un ip pubblico su un ip privato.. e fino a qui ci sono arrivato, quindi:


ip nat inside source static ipprivato ippubblico

ma se volessi limitare l'accesso a questa macchina privata, appunto nattata con questo ip pubblico, solo da parte di utenti che escono con un determinato indirizzo ip pubblico statico o un range di ip pubblici statici.. come faccio?
devo creare un access-list? in che modo?

Habanero
28-04-2007, 02:27
Sý, devi creare una access list.
Ricorda che le voci di una access list hanno ordine prioritario. Le prime voci hanno prioritÓ sulle ultime. Se c'Ŕ match su una voce ci si ferma, se non c'Ŕ match si prosegue con la voce seguente. Alla fine della lista c'Ŕ un implicito deny ip any any . Quindi, a meno che tu abbia inserito alla fine della lista un permit ip any any qualunque pacchetto che non abbia avuto un precedente match viene bloccato.

ad es, se il tuo scopo Ŕ consentire unicamente connessioni dall'esterno in un range di ip (ad esempio zzz.xxx.yyy.1-255):


ip access-list extended ACL_WAN
permit tcp any any established
permit ip zzz.xxx.yyy.0 0.0.0.255 any


questa access list estesa di nome ACL_WAN stabilisce che in entrata possono entrare

1) tutti i pacchetti tcp che appartengono ad una connessione giÓ stabilita (per esempio partita dall'interno). Questa voce Ŕ essenziale e deve essere in prima posizione.
2) tutti gli indirizzi appartenenti a pacchetti ip nel range zzz.xxx.yyy.0/24

in genere la forma Ŕ:

permit/deny, protocollo, rete di provenienza, subnet mask inversa di provenienza (gli zeri indicano bit fissi gli 1 bit variabili), ip destinazione

se hai un unico ip pubblico puoi lasciare any come ip destinazione, altrimenti puoi specificare su quale ip pubblico deve essere applicato il filtro.

Attenzione che con lo schema indicato solo gli ip permessi passeranno perchŔ alla fine Ŕ implicito un deny ip any any

Se invece vuoi negare specifiche classi di ip e vuoi lasciar passare tutto il resto come ultima voce dell'access list dovrai inserire un permit ip any any

se hai dei dubbi chiedi pure.

dops
28-04-2007, 20:46
innanzitutto grazie mille per la tua disponibilitÓ ;)
Avrei da farti qualche domanda inerente a quello per cui mi hai risposto, per˛ prima volevo sapere se conosci il comando che mi permette di controllare in tempo reale il traffico sul router.. s˛ che esiste.. ma non mi ricordo qual'Ŕ :(

dops
28-04-2007, 21:03
ah ho dimenticato di dire che per "traffico" non intendo dire statistiche.. ma proprio il traffico che c'Ŕ sul router.. ad esempio: "l'ip privato X.X.X.X stÓ andando verso l'ip pubblico X.X.X.X tramite il protocollo TCP utilizzando la porta 441"
mi serve saperlo perchŔ mi sÓ che devo limitare l'utilizzo di alcune porte in quanto mi stanno saturando la banda..
mica sai anche come controllare quanta memoria (ram) st˛ utilizzando al momento ? :D

Habanero
28-04-2007, 22:39
Originariamente inviato da dops
innanzitutto grazie mille per la tua disponibilitÓ ;)
Avrei da farti qualche domanda inerente a quello per cui mi hai risposto, per˛ prima volevo sapere se conosci il comando che mi permette di controllare in tempo reale il traffico sul router.. s˛ che esiste.. ma non mi ricordo qual'Ŕ :(


devi attivare il debug dei pacchetti...

debug ip packet detail

Ŕ possibile inoltre associare un debug di pacchetto ad una access-list per visualizzare solo un certo tipo specifico di traffico.

per interrompere il debug digita
no debug ip packet

in alternativa Ŕ sufficiente un semplice
undebug all
per disabilitare tutte le info di debug eventualmente abilitate.

Scrivi pure nella console anche se Ŕ inondata dal log. E' probabile che la visualizzazione continui per un po' a causa dei dati memorizzati nel buffer.

Attenzione che Ŕ probabile che la cosa funzioni solo se sei collegato alla console tramite seriale. Se sei collegato via telnet o ssh Ŕ possibile che tu non veda le info di debug.
Se questo Ŕ il caso devi prima di tutto digitare:

terminal monitor

se ti interessa associare all'info di debug l'istante temporale in cui Ŕ stata generata, verifica di avere nella tua configurazione la voce

service timestamps debug datetime msec

in caso contrario Ŕ sufficiente che digiti quella riga nella console dopo essere entrato in modalita configurazione (conf term ).



Originariamente inviato da dops
mica sai anche come controllare quanta memoria (ram) st˛ utilizzando al momento ? :D

Per visualizzare processi e memoria puoi usare il comando

se vuoi visulizzare la memoria occupata:
sh processes memory sorted allocated

la prima riga ti visualizza la memoria totale, segue la lista dei processi con la memoria allocata e trattenuta da ognuno.


Per finire, nel caso tu non li conoscessi, un paio di suggerimenti utili. Per ogni comando hai la possibilitÓ di vedere quali sono i possibili successivi parametri da utilizzare.

ad es:

sh processes ?
mostra quali sono le opzioni
sh processes memory ?

etc...


il tab ti permette di completare una stringa di comando digitata parzialmente
sh[tab] -> show
conf[tab] term[tab] -> configure terminal

in ogni caso la shell cisco interpreta anche i comandi abbreviati, a patto che non siano ambigui.

dops
29-04-2007, 09:47
hehe ;) sei un grande ;)
cmq ho trovato anche un altro comando:
"show ip nat translation"
che mi fÓ vedere il traffico in tempo reale sul nat, ed ho scoperto che c'Ŕ una macchina in rete che satura la banda facendo un mare di richieste sulla 445, purtroppo per˛ non s˛ come fare per fermarla..
cmq aspettati un p˛ di domande, che al momento non ho il tempo di fare :)

fbracal
29-04-2007, 15:40
Probabilmente oltre ad avere molto traffico sulla porta 445 TCP, lo avrai anche sulla porta 139 TCP, che sono le porte utilizzate dal protocollo NetBIOS in uso su reti IBM e Windows.

Per bloccare tale traffico crei una ACL estesa del tipo:
access-list 101 deny tcp any any eq 445
access-list 101 deny tcp any any eq 139
da applicare alla giusta interfaccia, ad es. se l'interfaccia in questione Ŕ la ATM 0:
interface ATM0
ip access-group 101 in

Se invece vuoi bloccare il traffico 445 in uscita, al posto di
ip access-group 101 in
metti:
ip access-group 101 out

Per visualizzare quanti pacchetti che hanno avuto un match con la ACL e quindi sono stati scartati:
show access-list 101
Fai attenzione per˛ perchŔ a volte il traffico NetBIOS Ŕ del tutto legittimo sulla rete.

dops
29-04-2007, 18:05
Originariamente inviato da fbracal
Probabilmente oltre ad avere molto traffico sulla porta 445 TCP, lo avrai anche sulla porta 139 TCP, che sono le porte utilizzate dal protocollo NetBIOS in uso su reti IBM e Windows.

Per bloccare tale traffico crei una ACL estesa del tipo:
access-list 101 deny tcp any any eq 445
access-list 101 deny tcp any any eq 139
da applicare alla giusta interfaccia, ad es. se l'interfaccia in questione Ŕ la ATM 0:
interface ATM0
ip access-group 101 in

Se invece vuoi bloccare il traffico 445 in uscita, al posto di
ip access-group 101 in
metti:
ip access-group 101 out

Per visualizzare quanti pacchetti che hanno avuto un match con la ACL e quindi sono stati scartati:
show access-list 101
Fai attenzione per˛ perchŔ a volte il traffico NetBIOS Ŕ del tutto legittimo sulla rete.
eh vorrei riuscire ad entrare sul router.. Ŕ talmente intasato che mi fallisce la connessione tramite telnet porcaccia eva.. ovviamente sono in remoto.. non ho manco attaccato il cavo console altrimenti ci sarei entrato dalla console.. uff..

fbracal
29-04-2007, 18:35
Quando riuscirai a mettere le mani sul router e se Ŕ possibile ti suggerisco un bell'aumento di RAM , altrimenti il router va in crisi non solo per le connessioni da remoto.
Per curiositÓ che modello Ŕ?

dops
29-04-2007, 18:41
Originariamente inviato da fbracal
Quando riuscirai a mettere le mani sul router e se Ŕ possibile ti suggerisco un bell'aumento di RAM , altrimenti il router va in crisi non solo per le connessioni da remoto.
Per curiositÓ che modello Ŕ?
un 2600 (vecchiotto) 32 mb ram
ho dovuto sostituirlo perchŔ avevo un elsag SA 801 con 16 mega :(

Loading