Bezpečnosť sieťových zariadení, časť I.

23.02.2003 20:36

Abstrakt
Tento dokumnet obsahuje návod ako môžme zvýšiť bezpečnosť sieťových zariadení na sieti. V mnohých prípadoch je väčšinou dôležitá bezpečnosť zariadenia smotného a nie bezpečnosť celej siete do ktorej je zariadenie pripojené. Treba si však uvedomiť, že bezpečnosť zariadenia je kritická pre bezpečnosť celej siete. Zlomenie jedného zariadenia (neautorizovaný prístup, obmedzenie funkcionality, zastavenie zariadenia) môže mať nepriaznivý dopad na celú sieť.

1.Router Security

1.1 Configuration Management
Je velmi dôležité držať kópie konfigurácií aj na management stanici (FTP, TFTP server) a nie len priamo v zariadení (NVRAM). V prípade útoku môže byť konfigurácia zmenená alebo zničená a záloha Vám poskytuje rýchlu cestu k obnoveniu funkcionality zariadenia. Výhodou je keď túto úlohu zadáte ako Cron Job v pravidelných intervaloch. Túto funkciu Vám zabezpečí mnoho freeware nástrojov. Odporúčam public domain nástroj RANCID (Really Awesome New Cisco confIg Differ) na www.shrubbery.net/rancid.

Uloženie konfigurácie mimo router je možné vykonať pomocou príkazu write net čo je ekvivalent príkažu copy running-config tftp . Viac bezpečný prenos konfigurácie je možný pomocou príkazu copy running-config ftp, pretože FTP využíva TCP a to je connection-oriented protokol, oproti TFTP ktoré používa UDP connectionless protokol a taktiež vyžaduje username a password.

Priklady:
Router#write network
Remote host []? 10.1.1.1
Name of configuration file to write [Router-config]?
Write file Router-config on host 10.1.1.1? [confirm]
Building configuration...

Writing Router-config !!! [OK]
Router#

Router#copy running-config tftp:
Remote host []? 10.1.1.1
Destination filename [Router-config]?
Write file tftp://10.1.1.1/Router-config? [confirm]
!!! [OK]
Router#

Cisco poskytuje dve možnosti pri zadávaní username a password. Prvá možnosť je vložiť username a password ako časť konfigurácie routra. Pri použití funkcie service-password encryption bude FTP password kryptované.

ip ftp source-interface Loopback 0
ip ftp username user
ip ftp password quake

Toto umožní FTP príkazu transparetne vložiť username/password do spojenia.

Router#copy running-config ftp:
Address or name of remote host []? 10.1.1.1
Destination filename [Router-config]?
Writing Router-config !!!
3803 bytes copied in 3.848 secs (1267 bytes/sec)
Router#

Druhá možnosť je vložiť username/password v štandartnom URL formáte.

Router#copy running-config ftp://user:quake@10.1.1.1
Address or name of remote host [10.1.1.1]?
Destination filename [Router-config]?
Writing Router-config !!!
3803 bytes copied in 3.848 secs (1267 bytes/sec)
Router#

1.2 Controlling Access to the Router

Existujú dva základné mechanizmy ako pristupovať k routrom:

vty porty (telnet, SSH, rlogin)
TTY porty (console a auxiliary ports

Na kontrolovanie prístupu k routrom je potrebné spraviť minimálne nasledovné kroky:
Krok 1: obmedziť prístup len cez protokol, ktorý bude používať administrátor.

line vty 0 4
transport input telnet ssh

Tento príkaz povolí pristupovať k routru pomocou Telnetu a SSH. Odporúčam povoliť len SSH ak to router umožňuje (záleží od verzie IOSu, routre podporujú len SSHv1).

Krok 2: konfigurovať access-lists, ktoré povolia pristupovať k routru len definovaným IP adresám.
Taktiež navrhujem zapnúť službu service tcp-keepalives-in, ktorá sleduje neaktívne TCP spojenia do routra a uzatvára ich, aby neblokovali VTY porty na routry.

service tcp-keepalives-in

line vty 0 3
access-class 5 in
line vty 4
access-class 6 in

access-list 5 permit host 10.1.1.1 log
access-list 5 permit host 10.1.1.2 log
access-list 5 deny any log

access-list 6 permit host 10.1.1.3 0.0.0.0 log
access-list 6 deny any log

V uvedenom príklade je na linky 0 až 3 aplikovaný access-list 5 a na linku 4 access-list 6, ktorý pomáha zabrániť DoS útoku. Je samozrejmé, že všetky spojenia sa budú zaznamenávať do logov (aj neúspešné). Odporúčam však použiť extended access-lists (xACL), ktoré umožňujú zadať viac podmienok pri definovaní access-listov.

Krok 3: nastaviť kratšie timeouts.
Toto je dôležité opatrenie na ochranu pred Telnet DoS a hijacking útokom. Router automaticky uzavrie telnet spojenie ak sa nepoužíva počas definovaného časového intervalu. Default hodnota je 10 minút.

line con 0
exec-timeout 5 0
line aux 0
exec-timeout 10 0
line vty 0 4
exec-timeout 5 30

V uvedenom príklade je čas definovaný pre con port na 5 minút, pre aux port na 10 minút a pre telnet spojenia 5 minút a 30 sekúnd.

Krok 4: nastavenie authentifikácie pre prístup k routru.
Zo skúseností odporúčam definovať každého uživatela samostatne. Ak použijete jedno generické username/password, je pravdepodobné že sa v krátkej dobe dostane do nepovolaných rúk, čo môže mať dopad na bezpečnosť celej siete. Samozrejme toto pravidlo pomáha aj pri analýzach kto a kedy bol prihlásený do routra. Pri generickom accounte neviete presne definovať konkrétnu osobu.

username jano secret 5 $1$j6Ac$3KArKjdFH5gZ7uj
username fero secret 5 $1$Hkkashiuwq823uqkswn

line vty 0 4
login local

V príklade je použitý na kryptovanie hesla MD-5 encryption algoritmus (od verzie IOS 12.2(8)T). Odporúčam používať túto metódu, pretože encryption metódu 7 je velmi jednoduché dekryptovať (ciscocrack.c). Najbezpečnejšia je ale metóda network-based authentifikačného systému, kde accounty nie sú uložené v konfigurácií zariadenia (AAA, TACACS+, RADIUS).

1.3 Password Management
Odporúčam zapnúť službu service password-encryption . Zakryptuje v konfigurácií všetky heslá. service password-encryption

1.4 Logging Events
Jednou z velmi dôležitých častí network security je logging. Vyčerpávajúce logs a správne time stamps môžu pomôcť vyriešiť mnoho problémov aj mimo oblasti bezpečnosti. Pri time stamps-och sa odporúča použiť Network Time Protocol (NTP, kapitola 1.9).

service timestamps debug datetime msec localtime show-timezone
service timestamps log datetime msec localtime show-timezone
!
no logging console
logging buffered 16384
logging trap debugging
logging facility local 7
logging 10.1.1.1
logging source-interface loopback 0

1.5 Disable Unnecessary Services
Odporúčam vypnúť služby, ktoré nepoužívate. Tieto môžu byť použité ako back doors na prístup do routra.
no service tcp-small-serv
no service udp-small-serv
no ip finger
no service finger
no ip boot server
no ip dhcp-server
no boot network
no service config
no cdp running (globally)
no cdp enable (on an interface )
no ip rcmd rsh-enable
no ip rcmd rcp-enable
no ip http server
no service pad
ntp disable (on an interface

1.6 Using Loopback Interfaces
Loopback interfaces môžu hrať v bezpečnosti routra dôležitú úlohu. Z pohľadu bezpečnosti sú to trusted IP addresses. A z poľadu funkcionality, že loopback interfaces sú vždy up. Ak použijete IP adresu ktorá je na seriovom interface a tento je down, nedostanete sa na router ani ak ma ethernet interface up.

snmp-server trap-source Loopback 0
ip tftp source-interface Loopback 0
ip tacacs source-interface Loopback 0
ip radius source-interface Loopback 0
ip telnet source-interface Loopback 0
logging source.interface Loopback 0

1.7 Controlling SNMP as a Management Protocol
SNMP protokol hrá dôležitú úlohu pri spravovaní komplexných sietí. Je potrebné ale vedieť, že táto služba môže byť použitá ako back door alebo na získanie dôverných informácií, ktoré neskôr môžu byť použité pri útoku. Pri aktivovaní tejto služby je nutné konfigurovať obmedzenia a definovať kto môže pristupovať k tejto službe. Na zariadeniach ktoré nepotrebujete spravovať pomocou SNMP, vypnite túto službu pomocou príkazu no snmp-server. Z bezpečnostného hladiska používajte túto službu len v read-only móde. Na všetky interfaces cez ktoré nebudete používať túto službu aplikujte nasledovné access-lists:

access-list 100 deny udp any any eq snmp
access-list 100 deny udp any any eq snmptrap

SNMP existuje v troch verziách: v1, v2 a v3. Verzie v1 a v2 nie sú veľmi bezpečné na authentifikáciu používajú len community string. Tento nikdy nepoužívajte v tvare public, private alebo cisco. Ak je to možné vždy použite verziu v3. Základné nastavenie snmp na routry:

snmp-server community 5nmc02s RO 98
snmp-server trap-source Loopback0
snmp-server trap-authetication
snmp-server enable traps config
snmp-server host 10.1.1.1 5nmc02s

access-list 98 permit host 10.1.1.1

1.8 Using CEF as a Switching Mechanism
Niekoľko nových SYN floods a DDoS útokov používa veľké počty ľubovolných cieľových IP adries. Klasické routovacie algoritmy môžu pri takomto type útoku zvýšiť zaťaženie CPU routra. Zapnutím CEF funkcie túto možnosť vylúčite a umožní Vám aktivovať aj ďalšie bezpečnostné funkcie.

ip cef

1.9 Using NTP
Aj v campus sieťach je potrebné synchronizovať čas na všetkých dôležitých zariadeniach. Potrebu time stamps zistíte pri porovnávaní logov v rámci siete, bezpečnostných incidentoch a AAA záznamov.

Router A ako NTP master
ntp authentication-key 20 md5 0235678768 7
ntp trusted-key 20
ntp master 10

Router B ako NTP slave
ntp authentication-key 20 md5 0235678768 7
ntp trusted-key 20
ntp server ip_adresa_routra_A key 20

Správne nastavený čas pre časovú zónu Slovenska:
clock timezone cet 1
clock summer-time METDST recurring last Sun Mar 2:00 last Sun Oct 3:00

note:V ďalšiej časti budem popisovať zabezpečenie PIX firewallu a catalyst switchu.erik kirschner