IOS ZBF erişim kontrolü/kısıtlaması için kullanılan bir özelliktir. Bildiğimiz en temel kısıtlama yöntemi access-list oluşturup arayüzlere IN/OUT şeklinde uygulamaktır. Ancak ZBF’de bölgeler oluşturulur. Arayüzler bölgelere dahil edilir. Ve bölgeler arası erişim kuralları belirlenerek kısıtlama yapılır. Bu sayede daha detaylı önlemler alınabilir. Profesyonel bir yapılandırma ile bir router’dan bir firewall verimine yakın verim alınabilir.
Temel kavramlar :
Security Zone :
Security zone’ler interface veya interface’lerden oluşan mantıksal alanlardır. Default olarak router’in tüm arayüzleri aynı zone’a (self zone) member edilmiştir. Bu sebeple de default olarak herhangi bir kısıtlama yoktur. Ama interface’ler farklı zone’lara üye edildi ise default olarak trafik bir zone’den diğerine geçemez. Bunu sağlamak için zone-pair (+ policy) oluşturulmalıdır.
Zone-Pair :
Zone-pair bir zone’den bir diğerine tek yönlü olarak tanımlanan firewall policy’lerdir. Zone pair sayesinde ACL’ler altında trafik akış yönünü belirtmeye gerek kalmaz. Çünkü burada zaten bir yön vardır. Bu sebeple policy’lerde kurallar sadece protokol ile oluşturulabilir. Çift taraflı akan traik için çift zone-pair tanımlaya da gerek yoktur. Tek zone yeterli olmaktadır.
Zone Policy :
Zone-policy zone’lar arası uygulanacak kurallardan oluşur. Qos yapılandırırken izlediğimiz yöntemlerden birisi olan MQC’ye benzer şekilde ZBF yapılandırırız. Tek fark kullandığımız class-map ve policy-map’ler inspect type’dir. Bu inspect type map’ler ile derin paket analizi seviyesine kadar detaya inmek mümkündür.
Basit yapılandırma :
ZBF üzerinde security zone’ların oluşturması : (Zone isimleri büyük/küçük harfe duyarlıdır)
ZBF(config)#zone security OUTSIDE ZBF(config-sec-zone)#Description Internet ZBF(config)#zone security INSIDE ZBF(config-sec-zone)#description LAN ZBF(config)#zone security DMZ ZBF(config-sec-zone)#description web serverArayüzlerin oluşturulan zone’lara member edilmesi :
ZBF(config)#interface ethernet 1/0 ZBF(config-if)#zone-member security OUTSIDE ZBF(config-if)#int fa 0/1 ZBF(config-if)#zone-member security DMZ ZBF(config-if)#int fa 0/0 ZBF(config-if)#zone-member security INSIDE
ZBF#show zone security
zone self
Description: System defined zone
zone INSIDE
Description: LAN
Member Interfaces:
FastEthernet0/0
zone OUTSIDE
Description: Internet
Member Interfaces:
Ethernet1/0
zone DMZ
Description: web_server
Member Interfaces:
FastEthernet0/1
Zone-Pair’lerin oluşturulması :
Bu yapı için 3 tane zone pair oluşturulması yeterlidir. Dışarıdan DMZ’ye erişim, içeriden DMZ’ye erişim ve içeriden dışarıya erişim.
ZBF(config)#zone-pair security INSIDE_TO_OUTSIDE source INSIDE destination OUTSIDE ZBF(config-sec-zone-pair)#description ICERIDEN_DISARIYA ZBF(config)#zone-pair security OUTSIDE_TO_DMZ source OUTSIDE destination DMZ ZBF(config-sec-zone-pair)#description DMZ_ERISIMI ZBF(config)#zone-pair security INSIDE_TO_DMZ source INSIDE destination DMZ ZBF(config-sec-zone-pair)#description INSIDE_TO_DMZ
Policy altında kuralların belirlenmesi :
İlk olarak içerden dışarıya kullanılması gereken protokolleri belirliyorum. Burada spesifik trafik bir acl ile veya ayrı bir class-map ile belirtilebilir.
ZBF(config)#class-map type inspect match-any INSIDE_TO_DMZ&OUTSIDE ZBF(config-cmap)# match protocol http ZBF(config-cmap)# match protocol https ZBF(config-cmap)# match protocol ftp ZBF(config-cmap)# match protocol ssh ZBF(config-cmap)# match protocol sip ZBF(config-cmap)# match protocol h323 ZBF(config-cmap)# match protocol telnet ZBF(config-cmap)# match protocol dns ZBF(config-cmap)# match protocol icmp ZBF(config-cmap)# match protocol ftps ZBF(config-cmap)# match protocol mysql ZBF(config-cmap)# match protocol imap ZBF(config-cmap)# match protocol pop3 ZBF(config-cmap)# match protocol udp ZBF(config-cmap)# match protocol ntp
Sonrada dışarıdan DMZ’ye erişim için gerekli protokolleri belirleyelim.
ZBF(config)#class-map type inspect match-any OUTSIDE_TO_DMZ ZBF(config-cmap)#match protocol http ZBF(config-cmap)#match protocol https ZBF(config-cmap)#match protocol login ZBF(config-cmap)#match protocol ftp ZBF(config-cmap)#match protocol ftps ZBF(config-cmap)#match protocol ssh
Sıra geldi policy’leri oluşturmaya :
ZBF(config)#policy-map type inspect INSIDE_TO_OUTSIDE&DMZ ZBF(config-pmap)#class type inspect INSIDE_TO_DMZ&OUTSIDE ZBF(config-pmap-c)#inspect ZBF(config)#policy-map type inspect OUTSIDE_TO_DMZ ZBF(config-pmap)#class type inspect OUTSIDE_TO_DMZ ZBF(config-pmap-c)#inspect
Ve oluşturulan policy’leri uygulamaya :
ZBF(config)#zone-pair security INSIDE_TO_OUTSIDE ZBF(config-sec-zone-pair)#service-policy type inspect INSIDE_TO_OUTSIDE&DMZ ZBF(config)#zone-pair security INSIDE_TO_DMZ ZBF(config-sec-zone-pair)#service-policy type inspect INSIDE_TO_OUTSIDE&DMZ ZBF(config)#zone-pair security OUTSIDE_TO_DMZ ZBF(config-sec-zone-pair)#service-policy type inspect OUTSIDE_TO_DMZ
İp yapılandırması :
DMZ (Web_Server) : 95.9.35.6
İnternet : 95.9.35.1
Lan : 192.168.1.2
Ve sonuç :
Local network’den DMZ ve Internet yönüne :
LAN#ping 95.9.35.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 95.9.35.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 40/40/40 ms LAN#ping 95.9.35.6 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 95.9.35.6, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 36/40/44 ms
LAN#telnet 95.9.35.1 Trying 95.9.35.1 … Open Password required, but none set LAN#telnet 95.9.35.6 Trying 95.9.35.6 … Open Password required, but none set
İnternetten DMZ ve Local Network yönüne :
NET#ssh -l root 95.9.35.6 Password: DMZ>
NET#ping 192.168.1.2 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 192.168.1.2, timeout is 2 seconds: ….. Success rate is 0 percent (0/5) NET#ping 95.9.35.6 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 95.9.35.6, timeout is 2 seconds: ….. Success rate is 0 percent (0/5)
NET#telnet 95.9.35.6 Trying 95.9.35.6 … % Connection timed out; remote host not responding NET#connect 95.9.35.6 80 Trying 95.9.35.6, 80 … Open NET#connect 95.9.35.6 443 Trying 95.9.35.6, 443 … Open
ZBF#show policy-map type inspect zone-pair komutu ile hangi paket takılmış hangisi geçmiş kontrol edilebilir. …
Ne yaptığımızı kısaca özetleyelim :
- Zone’ler oluşturup arayüzleri bu zone’lara üye ettik .
- Zone’ler arası trafik akışını belirtmek için zone-pair’ler oluşturduk.
- Inspect type policy-map ve class-map’ler ile kuralları belirledik.
- Inspect type policy-map’lari zone-pair’ler altına uyguladık.
ZBF artık CCIE R&S’in yeni versiyonunda yok bu ek bilgiyi de söylemekte fayda görerek herkese iyi çalışmalar diliyorum …
Murat KAYAPINAR
Comm. Eng. & Elect. Eng.