IOS XR Security

Genel olarak IOS XR MPP ve LPTS bilinmesinde yarar vardır. MPP cihaza giren management trafiğini kontrol etmek için kullanılır. Telnet, SNMP vb. LPTS ise IOS ve IOS XE’deki control-plane policing otomatikleştirilmiş halidir.

Management Plane Koruması :

Management trafiği, cihazın yönetimi için olan trafiği kapsar. MPP, management plane protection, bu trafiğin korunması için geliştirilen bir özellikdir. MPP ile management trafiğinin girebileceği interfaceler ve protokoller kontrol edilir.

– MPP ile cihaz üzerinde daha az ACL kullanır.

– MPP RP ve DRP üzerindeki fiziksel management portlarını kontrol etmez.

– TFTP, Telnet, Simple Network Man- agement Protocol (SNMP), SSH, and HTTP gibi protokolleri kontrol eder.

– Yönetim için IPv4 veya IPv6 subnetlerini belirliyerek kontrol sağlanabilir.

MPP iki tip interface tanımlar, in-band ve out-of-band. in-band interface demek, hem kullanıcı trafiğinin alındığı hemde yönetim amaçlı trafiğin alındığı interface’dir. out-of-band ise sadece ve sadece yönetim trafiğinin geldiği interace demekdir. out-of-band yapılan interface’den data trafiği geçmez!. Varsayılan olarak RP üzerindeki management ethernet out-of-band’dir ve MPP altında yapılandırılamaz (Documenda bu şekilde bir bilgi var. Fakat IOS XRv üzerinde yapılandırılıyor).

MPP, LPTS ile birlikte çalışır. Yani MPP enable edilen interface ve protokoller için otomatik olarak izin kuralları yaratılır.

Varsayılan olarak hiç bir interface config değildir (RP management hariç) ve hiç bir protokol enable edilmemiştir.

Bir protokol’ün MPP eklemeden önce service olarak global seviyede enable edilmesi gerekir.

Forwarding Plane Koruması :

Burada amaç routera gönderilen paketlerin kontrolu sağlamakdır. Bu amaç ile ACL, URPF, IOS XR  ‘a özel Local packet transport services (LPTS) kullanılır.

ACL :

IOS XR’da sadece named ACL kullanılır. standart extended ayrımı yokdur. ACL sonucu deny edilen paketler için gönderilen ICMP unreachables paketleri rate limit’e sokulur.

show access-lists afi-all

show access-lists maximum 

show access-lists usage pfilter location 

debug pfilter-ea errors location :

Debugs any errors encountered when applying ACL. Should be used only if there is a problem with applying an ACL.

Aynı zamanda uygulama sırasında ACL uç ucada uygulanabilir.

Interface GigabitEthernet 0/1/1/1
ipv6 access-group common acl-common-v6 acl-unique1-v6 ingress

Tabi bu durumda ilk ACL sonundaki deny’a dikkat edilmelidir. Bu tarz uygulamada acl ve int statisticlerinde bazı kısıtlamalar vardır.

Loopback interface altında ACL uygulanamaz.

URPF : Standart URPF.

LTPS :

BRKSPG-2333 – Securing Cisco ASR 9000 Routers (2014 San Francisco) – 90 Mins

Router’a gelen paketler için, IFIB (Internal FIB) gitmeden trafik filtrelemesi yapar (Her line card üzerinde yapılır, zira her line card’ın kendi CPU’su bulunmaktadır). Gelen paketleri uygun nodelara gönderir. Peki bu trafik neleri kapsar;

1 – Tüm IPv4, IPv6 routing ve L2 control paketleri. OSPF, BGP, MPLS, RSVP, gibi RP gelen paketler.

2 – MPLS Alert etiketli paketler.

3 –  TTL’i 2 den düşük olan IPv4, IPv6 ve MPLS paketleri.

4 – IPv4 option ve IPv6 option etiketli paketler.

5 – IP fragment veya reassembly istiyen paketler.

6 – Layer 2 keepalives.

7 – ARP

8 – ICMP generation and response

Kullanıcı için transparent ve otomatik işler. Bir BGP komşuluğu veya IGP yaratıldığında ilgili kurallları otoatik olarak yaratır. Gömülü bir firewall gibidir. Dağınık yapıda çalışır. LC üzerinde ve RP üzerinde. LC üzerine otomatik olarak uygun configurayonu yükler.

Cisco ASR 9000 Series Aggregation Services Router IP Addresses and Services Configuration Guide içerisinde anlatılır.

Kullanıcı tarafından flow tipleri için police değerleri ve TOS önceliklendirmesi değiştirilebilir.

Default rate değerlerini görmek için ;

show lpts pifib hardware police location (line card veya RP belirtilir)

EEM ile lpts için uyarılar yaratılabilir;

Bunun için uygun bir script https://supportforums.cisco.com/document/75836/ios-xr-lpts-alerting. Fakat ben ASR 9000 ile çalıştırı iken bir sorun ile karşılaştım (Zaten script ASR 9000 için yazılmamış).

eem_server[205]: %HA-HA_EM-6-FMS_POLICY_TIMEOUT : Policy ‘lpts-threshold-alerting.tcl’ has hit its maximum execution time of 20.000000000 seconds, and so has been halted

hatasını alıyordum. Bunun için, script içerisine ;

::cisco::eem::event_register_timer watchdog name lptsCheckTimer time $EEM_LPTS_CHECK_INTERVAL maxrun 60

şekilde ekleme yaptım. Ayrıca

namespace import ::cisco::fm::* namespace yüklemesini aşağıdaki şekilde değiştirdim.

namespace import ::cisco::eem::*

event manager environment EEM_LPTS_CHECK_INTERVAL 300
event manager environment EEM_LPTS_CHECK_FLOWTYPES BGP-known * event manager environment EEM_LPTS_CHECK_LOCATIONS 0/0/CPU0 0/4/CPU0 event manager environment EEM_LPTS_CHECK_THRESHOLD 1 50%
event manager directory user policy disk0:/scripts/
event manager policy lpts-threshold-alerting.tcl username scripts

aaa authorization eventmanager default local

admin plane’de : username scripts group root-system ve cisco-support eklenmelidir.

LPTS debugları :

debug lpts packet location <r/s/m> ‒ On LC, shows LC CPU activity only (not PSE)
‒ On RP/DRP, shows secondary look-ups and packet delivery ‒ One message per layer per packet.
debug lpts packet {ipv4acl | ipv6acl} <name> ‒ Limit to packets matching an ACL.
debug lpts packet snapshot-size <n> ‒ Display <n> packets, then stop.
debug lpts packet drops ‒ Packets dropped by LPTS.
debug lpts pa {irib | ifib | error} ‒ IFIB generation information.
debug lpts pifibm {events | errors} location <r/s/m> ‒ What’s getting into the Pre-IFIB.

LPTS Trace :

Global Traces
‒ show lpts trace global
‒ Captures process starts, slice assignments, dependencies
Per-Process Traces
‒ show lpts trace {pa | fm | ff | platf} ‒ Transactions, errors, and platform-specific information.

LC seviyesinde LPTS tarafından işlenmeyen trafik:

LC üzerinde bazı paket tipleri, BFD, ARP, CDP gibi paketlerde LC üzerinde limitlenir. static flows!

show controller pse stats ingress location

LPTS kullanırken, router üzerinde kullanılmayan tüm protokoller için rate değeri 0 çekilebilir (mevcutları görmek için, show lpts pifib hardware police location 0/0/CPU0). Burada dikkat edilmesi gereken known,configured, default protokol alt tanımları vardır (bgp configured rate,bgp default rate). Burada known configure edilmiş demekdir. Yani eğer bir BGP komşuluk tanımı girilmiş ise bu known şeklide girilir. Dolayısı ile bgp için default değer 0 bırakılabilir. Konfigure edilmemiş hiç bir BGP isteği işlenmez.

rasr9k-(config-pifib-policer-per-node)# flow isis default rate 0 RP/0/RSP0/CPU0:
rasr9k-(config-pifib-policer-per-node)#flow 500 RP/0/RSP0/CPU0: –> confiği girilmiş.
rasr9k-(config-pifib-policer-per-node)# flow bgp default rate 0 RP/0/RSP0/CPU0: –> confiği girilmemiş, bekliyor kapatmak gerek.
rasr9k-(config-pifib-policer-per-node)# flow pim multicast default rate 0 RP/0/RSP0/CPU0:
rasr9k-(config-pifib-policer-per-node)# flow icmp application rate 100 RP/0/RSP0/CPU0:
rasr9k-(config-pifib-policer-per-node)# flow icmp default rate 100 RP/0/RSP0/CPU0:
rasr9k-(config-pifib-policer-per-node)# flow ldp tcp default rate 0 RP/0/RSP0/CPU0:
rasr9k-(config-pifib-policer-per-node)# flow all-routers rate 0

LPTS Excessive Flow Trap ise başka bir kullanışlı özellikdir. Peering yaptığınız bir interface’de sadece bir komşudaki bozukluk diğer komşuların BGP mesajlarında soruna yol açabilir. Bunun için ACL ile flow tanımlanabilir veya LPTS Excessive Flow Trap kullanılabilir. Atanan değeri aşan trafik ceza verilir ve diğer trafikler bundan etkilenmez.

show running-config lpts punt excessive-flow-trap ! default değerleride yeterli olmayabilir bakmak gerekli.
lpts punt excessive-flow-trap
penalty-rate arp 50
penalty-rate icmp 50
penalty-rate igmp 100
penalty-rate ip 100
penalty-timeout arp 5
penalty-timeout icmp 5
penalty-timeout igmp 2
penalty-timeout ip 4
non-subscriber-interfaces

show lpts punt excessive-flow-trap information

Ayrıca daha install edilmiyen line cardlar içinde konfig yüklenebilir (preconfigure).

lpts punt police location preconfigure 0/4/CPU0

apply-group’da kullanılabilir.

Erişim Güvenliği :

Cihaza erişim, console, aux veya vty hatları ile sağlanabilir. VTY için 0-99 hatları kullanılır. 100-106 numaralı VTY hatları EEM için kullanılır.

IOS XR cihazı yönetim açısından iki ana alana bölmüştür.

– Admin Plane : Tüm SDR tarafından paylaşılan kaynakların ( power, fan-trays, fabric modules, and environmental aspects of the router required to maintain normal operations) yönetimi, yeni SDR yaratımı. Sadece root-system tipindeki kullanıcılar tarafından yönetilebilir. İlk kullanım sırasında IOS XR tarafından root-system kullanıcısının yaratılması istenir. IOS XR user group tanımı olmadan çalışmaz. Eğer tüm kullanıcılar,user groupları ve AAA yapılandırması silinir ise bir sonraki erişim sırasında yeni bir username ve password yapılandırması istenir.

– Secure Domain Router, SDR : Sadece söz konusu SDR ait kaynakların yönetimi. Admin plane benzer, her SDR için bir root-lr (root-local) sadece o SDR için bir root kullanıcısı vardır.

IOS XR’de user gurup, task gurup ve task id ‘lerden oluşan bir yetkilendirme sistemi vardır.

 

User and Task Gurupları :

Kullanıcıları guruplandırmak için user gurupları kullanılır. Task guruplarını anlatmadan önce task nedir? task aslında yapılmak istenen işlemdir. OSPF için ospf task kullanılır, mpls için mpls. Bir komut için hangi task kullanıldığını belirlemek;

(config)#describe router ospfv3 deneme

……

User needs ALL of the following taskids:

ospf (READ WRITE)

 

Ayrıca o task için hangi yetkilerin kullanılacağıda action ile belirtileri. Bunlar READ, WRITE,EXECUTE,DEBUG.

Task guruplarıda aslında taskların guruplamısıdır. Örnek olarak;

taskgroup igp-admin
task read ospf
task read mpls-te
task write ospf
task execute ospf
task debug ospf
task debug bundle.

usergroup igpadmin
taskgroup igp-admin

Bu task gurupları daha sonra kullanıcı guruplarına eklenir.  Ayrıca kullanıcı gurupları başka kullanıcı guruplarını, task guruplarıda task guruplarını içerebilir.

IOS XR önceden tanımlanmış user gurupları vardır. Bunlar;

cisco-support: This group is used by the Cisco support team.
netadmin: Has the ability to control and monitor all system and network parameters.
operator: A demonstration group with basic privileges.
root-lr: Has the ability to control and monitor the specific secure domain router.
root-system: Has the ability to control and monitor the entire system.
sysadmin: Has the ability to control and monitor all system parameters but cannot configure network protocols.
serviceadmin: Service administration tasks, for example, Session Border Controller (SBC).

agrıca önceden tanımlanmış task gurupları ;

cisco-support: Cisco support personnel tasks
netadmin: Network administrator tasks
operator: Operator day-to-day tasks (for demonstration purposes)
root-lr: Secure domain router administrator tasks
root-system: System-wide administrator tasks
sysadmin: System administrator tasks
serviceadmin: Service administration tasks, for example, SBC

Tacacs içinAAA :

task = “rwxd:ospf,#operator”

attribute kullanılır. Bu şekilde kullanıcı gurubu belirtilir.

IOS tabanlı cihazlar için priv level ile auth yapıyo iseniz, genelde kullanıcılar için priv-level 15 donuyorsunuzdur. Priv-level 15 donulen kullanıcılar otomatik olarak root-system’e dahil olurlar!.

Secure Shell :

k9sec PIE gereklidir. show install active | include k9sec.