Cisco ZBF (Zone Based Firewall)

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 seviyesi
ne kadar detaya inmek mümkündür.

Basit yapılandırma : 

topoloji

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 server
Arayü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 :

  1.  Zone’ler oluşturup arayüzleri bu zone’lara üye ettik .
  2.  Zone’ler arası trafik akışını belirtmek için zone-pair’ler oluşturduk.
  3.  Inspect type policy-map ve class-map’ler ile kuralları belirledik.
  4.  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.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir