====== Cisco Router 2600 ====== ===== Reset configurazione ===== 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): * Console seriale (9600 8N1) * Ethernet0/0 * BRI0/0 (ISDN) * BRI0/0:1 (ISDN) * BRI0/0:2 (ISDN) * Serial0/0 * ATM1/0 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 ===== Bootstrap automatico ===== 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 ===== enable password ===== Vedere anche il paragrafo [[#gestione_password|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). ===== Configurazione TCP/IP ===== ==== Configurazione dell'interfaccia Ethernet ==== 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 ==== Configurazione di un secondo IP address su Ethernet ==== 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 ==== Configurazione del default gateway ==== 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 ==== Configurazione di una route statica ==== 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 ==== Configurazione del DNS ==== 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 ===== Configurazione del NAT (SNAT) ===== ==== NAT statico (NAT uno-a-uno, usato di rado) ==== **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 ==== NAT dinamico (SNAT classico) ==== 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 ==== Port forward (DNAT) ==== **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 ==== Doppio PVC DSL con destination routing e NAT ==== 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 ===== Rimozione regola NAT in uso ===== 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**. ===== Aggiornamento Sistema Operativo IOS ===== 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. ===== Gestione password ===== ==== Password su console ==== line console 0 login password MySecret ==== Password su accesso telnet ==== 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