Router Cisco 2600, versione del sistema operativo (show version):
Cisco Internetwork Operating System Software IOS (tm) C2600 Software (C2600-IS-M), Version 12.0(7)T, RELEASE SOFTWARE (fc2) Copyright (c) 1986-1999 by cisco Systems, Inc. Compiled Tue 07-Dec-99 02:21 by phanguye
Immagine del sistema operativo in flash memory (show flash):
System flash directory: File Length Name/status 1 7330920 c2600-is-mz.120-7.T.bin 2 25 snmpengineid [7331076 bytes used, 1057532 available, 8388608 total] 8192K bytes of processor board System flash (Read/Write)
Interfacce presenti (show interfaces):
Per resettare completamente la configurazione del router ai valori di fabbrica e per impostare le password di accesso (rispettivamente la password per accesso da console, per la modalità enable e per l'accesso via network):
Router>enable Router#erase startup-config Router#reload ... (system reboot) ... (initial configuration dialog: no) Router>enable Router#copy running-config startup-config Router>enable Router#configure terminal Router(config)#line console 0 Router(config-line)#login Router(config-line)#password CiscoRut Router(config-line)#Ctrl-Z Router>enable Router#configure terminal Router(config)#enable secret CiscoRut Router(config)#Ctrl-Z Router>enable Router#configure terminal Router(config)#line vty 0 4 Router(config-line)#login Router(config-line)#password CiSPO Router(config-line)#^Z
Durante il boot il router si può bloccare su initial configuration dialog, ignorando la startup-config. Ciò dipende dal bit 6 (0x40) del configuration register, se è impostato ad 1 il router ignora la startup-config al boot. Per vedere il valore corrente del configuration register:
Router>show version ... Configuration register is 0x2142
Per modificare il valore:
Router>enable Router#configure terminal Router(config)#config-register 0x2102
Oppure se si è interrotta la sequenza di boot dalla console con un Ctrl-BRAK e si è arrivati al prompt del ROM monitor:
rommon 1 >confreg 0x2102 rommon 2 >reset
Vedere anche il paragrafo Gestione password.
Per impostare la password di enable (viene chiesta quando si usa tale comando per ottenere i permessi di amministratore):
enable secret MySecret
Usare invece questo comando solo su vecchie versioni del S.O. che non supportano la secret:
enable password MySecret
Se il S.O. supporta i due tipi di password e se sono impostate entrambe, la secret ha la precedenza e viene verificata solo quella.
Le due password impostate si vedono nello show running-config:
enable secret 5 $1$v4W3$P5zy5FOyWvJEdcwl3WqW0. enable password 7 13151E021B03
Il 5 significa che la password è criptata (oneway hash), invece il 7 significa che la password è hidden (cioè offuscata).
Mostra la configurazione attuale della scheda Ethernet, abilita il routing ip, assegna un indirizzo ip e attiva l'interfaccia. Salva la configurazione in NVRAM.
Router>enable Router#show interfaces Router#configure terminal Router(config)#ip routing Router(config)#interface ethernet 0/0 Router(config-if)#ip address 192.168.2.7 255.255.255.0 Router(config-if)#no shutdown Router(config-if)#exit Router(config)#^Z Router#write memory
Mostra la configurazione, abilita un numero di ip scondario su una interfaccia e poi lo toglie.
Router>enable Router#show running-confg Router>enable Router#configure terminal Router(config)#interface ethernet 0/0 Router(config-if)#ip address 10.1.1.1 255.0.0.0 secondary Router(config-if)#^Z Router#write memory Router>enable Router#configure terminal Router(config)#interface ethernet 0/0 Router(config-if)#no ip address 10.1.1.1 255.0.0.0 secondary Router(config-if)#^Z Router#write memory
Mostra la configurazione attuale del default gateway, attiva il routing ip e aggiunge un default gateway. Infine lo toglie.
ATTENZIONE: il comando ip default-gateway 192.168.2.2 non ottiene lo scopo desiderato. Cisco intende per dafault-gateway quello utilizzato quando non è attivo il routing ip, ma è in funzione il bridging. In quel caso per vedere il default gateway in uso “show ip redirects”.
Router>show ip route Router>enable Router#configure terminal Router(config)#ip routing Router(config)#ip route 0.0.0.0 0.0.0.0 192.168.2.2 permanent Router(config)#^Z Router#write memory Router>enable Router#configure terminal Router(config)#no ip route 0.0.0.0 0.0.0.0 192.168.2.2 permanent Router(config)#^Z Router#write memory
Mostra le route statiche definite, ne aggiunge una e poi la toglie.
Routeri>show ip route Router>enable Router#show running-config | include ip route Router>enable Router#configure terminal Router(config)#ip route 172.16.0.0 255.255.0.0 192.168.2.2 Router(config)#^Z Router#write memory Router>enable Router#configure terminal Router(config)#no ip route 172.16.0.0 255.255.0.0 192.168.2.2 Router(config)#^Z Router#write memory
Mostra la configurazione attuale del server DNS, imposta un server DNS e lo rimuove.
Router>enable Router#show running-config | include name-server Router>enable Router#configure terminal Router(config)#ip name-server 192.168.2.2 Router(config)#^Z Router#write memory Router>enable Router#configure terminal Router(config)#no ip name-server Router(config)#^Z Router#write memory
NOTA: vedere il classico SNAT più avanti.
Configura il NAT statico di un singolo host interno (A.B.C.D) con un singolo indirizzo IP pubblico (E.F.G.H). L'interfaccia verso la rete interna è Ethernet0/0 e quella verso la rete esterna e' BRI0/0.
Router#configure terminal Router(config)#interface Ethernet 0/0 Router(config-if)#ip nat inside Router(config-if)#exit Router(config)#interface BRI 0/0 Router(config-if)#ip nat outside Router(config-if)#exit Router(config)#ip nat inside source static A.B.C.D E.F.G.H Router(config)#^Z Router#show running-config | include ip nat
Invece dell'IP pubblico E.F.G.H
è possibile specificare il nome dell'interfaccia (ad esempio se è dinamico), questo esempio è per un'interfaccia ppp su ATM, denominata Dialer1
:
Router(config)#ip nat inside source static A.B.C.D interface Dialer1
Appena si imposta questa configurazione l'accesso telnet dall'interfaccia esterna viene interrotto, in quanto tutto il traffico viene dirottato sull'host interno. Quindi non è necessario attivare il port forward verso l'host interno.
Per rimuovere la configurazione:
Router#configure terminal Router(config)#no ip nat inside source static A.B.C.D E.F.G.H. Router(config)#interface Ethernet 0/0 Router(config-if)#no ip nat inside Router(config-if)#exit Router(config)#interface BRI 0/0 Router(config-if)#no ip nat outside Router(config-if)#exit Router(config)#^Z
Configura il NAT dinamico degli host interni (A.B.C.0/24) usando un pool di indirizzi esterni. Il pool è costituito da un singolo indirizzo (E.F.G.H/32), cioè inizio e fine pool coincidono, pertanto è necessario l'overload dell'inside global address E.F.G.H. L'interfaccia verso la rete interna è Ethernet 0/0 e quella verso la rete esterna e' BRI0/0.
Se il pool di indirizzi esterni è abbastanza ampio si può evitare l'overload (si omette l'opzione overload). Potranno essere nattati solo tanti host quanti sono gli indirizzi esterni del pool.
Router#configure terminal Router(config)#ip nat pool NAT-POOL E.F.G.H E.F.G.H prefix-length 1 Router(config)#access-list 1 permit A.B.C.0 0.0.0.255 Router(config)#ip nat inside source list 1 pool NAT-POOL overload Router(config)#interface Ethernet 0/0 Router(config-if)#ip nat inside Router(config-if)#exit Router(config)#interface BRI 0/0 Router(config-if)#ip nat outside Router(config-if)#exit Router(config)#^Z Router#show running-config | include ip nat
Nel comando ip nat pool
invece di prefix-length
si può usare netmask
, che però va intesa alla rovescia, cioè per indicare un solo indirizzo IP si mette 0.0.0.0.
Nel caso in cui l'IP pubblico sia dinamico, si può utilizzare il nome dell'interfaccia invece che definire un pool di indirizzi IP:
access-list 1 permit 10.11.12.0 0.0.0.255 ip nat inside source list 1 interface Dialer1 overload
Per rimuovere la configurazione:
Router#configure terminal Router(config)#no ip nat pool NAT-POOL E.F.G.H E.F.G.H netmask 255.255.255.252 Router(config)#no access-list 1 permit A.B.C.0 0.0.0.255 Router(config)#no ip nat inside source list 1 pool NAT-POOL overload Router(config)#interface Ethernet 0/0 Router(config-if)#no ip nat inside Router(config-if)#exit Router(config)#interface BRI 0/0 Router(config-if)#no ip nat outside Router(config-if)#exit Router(config)#^Z
Ridirezione della porta 23 TCP dall'indirizzo esterno A.B.C.D verso la porta 23 dell'indirizzo interno E.F.G.H. L'interfaccia interna è Ethernet 0/0 e quella esterna e' BRI 0/0.
Router>enable Router#configure terminal Router(config)#interface Ethernet 0/0 Router(config-if)#ip nat inside Router(config-if)#exit Router(config)#interface BRI 0/0 Router(config-if)#ip nat outside Router(config-if)#exit Router(config)#ip nat inside source static tcp E.F.G.H 23 A.B.C.D 23 Router(config)#^Z
Al posto dell'indirizzo IP esterno è possibile usare il nome dell'interfaccia (ad esempio per una punto-punto con IP dinamico):
ip nat inside source static tcp 192.168.2.253 80 interface Dialer2 8443
Scenario: router ADSL con due canali PVC (connessione PPP), il primo usato come rotta predefinita, senza NAT. Il secondo utilizzato solo per raggiungere uno specifico host (server VoIP), ma con SNAT usando l'indirizzo punto-punto; su questo PVC infatti solo l'indirizzo punto-punto è pubblicamente raggiungibile.
Anzitutto la configurazione delle due interfacce dial-up:
interface Dialer1 ip address negotiated ip virtual-reassembly encapsulation ppp dialer pool 1 no cdp enable no ppp chap wait ppp pap sent-username MyLogin password 0 MySecret no ppp pap wait ! interface Dialer2 description BANDA PER VOIP ip address negotiated ip nat outside ip virtual-reassembly encapsulation ppp dialer pool 2 no cdp enable no ppp chap wait ppp pap sent-username MyLogin2 password 0 MySecret2 !
Con le seguenti impostazioni si definisce il NAT quando la destinazione è il server VoIP (213.251.147.16) e l'interfaccia d'uscita è Dialer2
ip nat inside source route-map VOIP-MAP interface Dialer2 overload access-list 100 permit ip any host 213.251.147.16 route-map VOIP-MAP permit 10 match ip address 100 match interface Dialer2 !
Infine con una semplice regola di routing si instrada opportunamente il traffico verso il server VoIP:
ip route 213.251.147.16 255.255.255.255 Dialer2
Non è possibile rimuovere una regola di NAT se questa è stata usata di recente, il router risponde Static entry in use, cannot remove. Si deve ripulire la lista delle translations in uso:
router# confgure terminal router(config)# no ip nat inside source static tcp 192.168.1.2 1196 interface Dialer1 1196 %Static entry in use, cannot remove router(config)# exit router# show ip nat translations Pro Inside global Inside local Outside local Outside global ... tcp 185.21.72.66:1196 192.168.1.2:1196 213.182.68.98:35942 213.182.68.98:35942 ... router# clear ip nat translation forced router# confgure terminal router(config)# no ip nat inside source static tcp 192.168.1.2 1196 interface Dialer1 1196 router(config)# exit router# write memory
Dovrebbe essere possibile rimuovere selettivamente solo le regole interessate, vedere l'help del comando clear ip nat.
Installare sul PC un server TFTP e abilitarlo in scrittura (la document root in Debian è /srv/tftp/
):
apt-get install tftpd-hpa
Per abilitare il server TFTP in scrittura mettere in /etc/default/tftpd-hpa
:
TFTP_OPTIONS="--secure --create"
Il server sta in ascolto sulla porta UDP/69, ma il trasferimento di dati avviene su porte effimere. Bisogna essere sulla stessa rete oppure il firewall deve avere il connection tracking TFTP abilitato:
10:55:39.494731 IP 77.239.141.26.55143 > 10.0.1.2.69: 31 WRQ "c2600-i-mz.122-12b.bin" octet ... 11:08:09.448816 IP 10.0.1.2.48939 > 77.239.141.26.55143: UDP, length 4 11:08:09.495166 IP 77.239.141.26.55143 > 10.0.1.2.48939: UDP, length 516
Salvare l'immagine esistente nel router:
Router#show flash: System flash directory: File Length Name/status 1 5427564 c2600-i-mz.122-12b.bin 2 749 cisco2600_nat_config [5428444 bytes used, 27601700 available, 33030144 total] 32768K bytes of processor board System flash (Read/Write) router#copy flash:c2600-i-mz.122-12b.bin tftp://62.48.51.8
Con la vecchia versione 11.3 la sintassi è leggermente diversa:
Router#copy flash tftp System flash directory: File Length Name/status 1 3119712 c2600-i-mz.113-10.T [3119776 bytes used, 5268832 available, 8388608 total] Address or name of remote host [255.255.255.255]? 192.168.10.46 Source file name? c2600-i-mz.113-10.T Destination file name [c2600-i-mz.113-10.T]? Verifying checksum for 'c2600-i-mz.113-10.T' (file # 1)... OK Copy 'c2600-i-mz.113-10.T' from Flash to server as 'c2600-i-mz.113-10.T'? [yes/no]yes
Quindi si fa spazio nella memoria flash per caricare la nuova versione:
Router#erase flash
Infine è possibile caricare dal server TFTP la nuova immagine nella flash:
Router#copy tftp flash System flash directory: No files in System flash [0 bytes used, 8388608 available, 8388608 total] Address or name of remote host [192.168.7.46]? Source file name? c2600-i-mz.122-12b.bin Destination file name [c2600-i-mz.122-12b.bin]? Accessing file 'c2600-i-mz.122-12b.bin' on 192.168.7.46... Loading c2600-i-mz.122-12b.bin from 192.168.7.46 (via Ethernet0/0): ! [OK] Erase flash device before writing? [confirm] Copy 'c2600-i-mz.122-12b.bin' from server as 'c2600-i-mz.122-12b.bin' into Flash WITH erase? [yes/no]
Al reboot successivo il router parte con la prima immagine IOS che trova.
line console 0 login password MySecret
Con questa impostazione si attiva la richiesta di password per gli accessi telnet, si entra senza privilegi di enable:
line vty 0 4 access-class 23 in password MySecret login transport input telnet ssh
La password di enable è impostata con:
enable secret MyEnableSecret
Con questa impostazione viene chiesto un nome di login, se i privilegi sono giusti si accede direttamente come enable, è richiesta la password associata al login, che va impostata a parte:
line vty 0 4 access-class 23 in privilege level 15 login local transport input telnet ssh
username admin privilege 15 secret MyEnableSecret