Juniper Networks Netscreen SSG-X 3
Kurulum Kılavuzu-3 (Güvenlik Tanımlamaları)
İlk yazımda aslında Netscreen ile güvenlik anlamında neler yapabileceğimizden bahsetmiştim fakat konusu geldiği üzere bunu tekrar özetlemek ve biraz daha detaylandırmak isterim.Netscreen herşeyden önce bir firewall'dur,ilk tasarlanış şeklide firewall'dur zaten.Ancak yıllar geçtikçe güvenliğe fazla yatırım yapılmaması,güvenlik işinin zor olması,her güvenlik ürününü yönetecek bir personelin olmayışı güvenlik üreticilerini all-in-one mantığında içinde güvenlik ile ilgili(firewall,vpn,anti-x,url filter,ips&ids vb..) herşeyi barındıran yapılar üretmeye itti.İşte Netscreen'de bu akıma ayak uyduran ilk'lerden birisi.

En iyi yaptığı iş olan firewall'luk görevi dışında Juniper Netscreen ile güvenlik anlamında yapabilecekleriniz menu sırası ile şunlardır;
- Screening:
Screening aslında Netscreen Zone'larınızı koruyabileceğiniz küçük bir ips sistemidir.Ancak daha sonra bahsedeceğimiz ips gibi bir database'i bulunmamakta ve bugüne kadar tehlikeli olduğu tespit edilmiş temel ataklar yer almakta.Screening ile neler yapabileceğinize gelirsek örnek olarak;Flood protection yaparak arka arkaya belirli bir ip'den gelen ping paketlerini kesebilirsiniz yada HTTP protokünden geçen Java,Exe,Zip,ActiveX componentlerini yasaklayabilirsiniz veya değişik tipte olan tanımlı DoS atakları engelleyebilirsiniz.Bahsettiğim gibi çok detaylı bir içerik sağlamasada bunun amacı Netscreen cihazınızı ve zone yapınızı temel olarak korumaktır.
- Web Filtering:
Juniper Netscreen ile iki şekilde Web Filtrelemesi yapabilirsiniz.Bunlardan ilki yıllık lisans ile satın almış olduğunuz Surf Control veritabanı kullanma hakkı ile Integrated SurfControl'dur.Diğer yöntem ise network'ünüzde hali hazırda bulunan bir Websense yada SurfControl yazılımına gelen HTTP ve HTTPS paketlerini yönlendirmektir.Ancak bir hatırlatma yapmak isterim ki Websense SurfControl'u satın aldığı için yeni Netscreen versiyonlarında bu bölümler eğer Juniper başka bir url filter yazılımı ile anlaşmaz ise Websense olarak gelecektir.
Netscreen'e entegre olan SurfControl modülü temel url filter özellikleri sağlar,klasik olarak bilindiği gibi web siteleri bazı kategoriler altında bulunur ve siz bu kategorileri yasaklar veya izin verirsiniz,kendinize özel kategoriler olusturup bunun içine istediğiniz url'leri manuel olarak ekleyebilirsiniz.Ya da kategorisi yanlış dediğiniz siteleri white list/blacklist aracılığıyla izin verebilir yada yasaklayabilirsiniz.
- Deep Inspection:
Deep Inspection Netscreen tarafından izin verilen trafiği filtreleyen bir mekanizmadır.Aslına bakarsanız bildiğimiz IDS/IPS sisteminden çok farklı değildir,sadece diğerlerine göre daha fazla servislere özel çalışır.Bu özellikte yıllık subscription gerektiren bir yapıdır çünkü diğer ids-ips yapılarında olduğu gibi sürekli güncellenen bir database'den faydalanılır.Deep Inspection ile belirli servisler için belirli kısıtlamalar getirebileceğiniz gibi,indirilen database sayesinde güncel saldırılardanda haberdar olabilir yada bunları engelleyebilirsiniz.Örnek olarak Service Limits bölümünde MSN username'nin 5 karakter,yahoo messenger'da gönderilecek mesaj uzunluğu 20 karakter olsun gibi değişik kısıtlamalar getirebileceğiniz gibi bu yazılımların çalışmasınıda engelleyebilirsiniz.
Peki tamam Deep Inspection ile bu kadar güzel yazı yazdıktan sonra birazda gerçeklerden bahsetmek istiyorum.Maalesef ki sorun baştan başlıyor,Deep Inspection lisansınızı yada herhangi bir subscription'ı aldığınızda database'i otomatik güncellemek istediğinizde Database sunuculara erişip güncellemeleri indirmekte sıkıntılar yaşayacaksanız,bazen bunun nedeni DNS ve timeserver ayarları olsa bile bazen nedeni olmadan yinede bunları alamayabiliyorsunuz.MSN kullanıcı adını istediğiniz karakter sayısında sınırlandırmak kolay bir iş ancak maalesef MSN'i aslında bloklamasına rağmen bu iş hiçte bir IM filter yazılımındaki kadar tek tıklama ile kolay olmuyor.Yeni bir DI(Deep Inspection) signature yaratıyorsunuz,msn'e özel o anda kullanılan signature ekliyorsunuz,bunu grupluyorsunuz daha sonra policy'den block paketi istiyorsunuz gibi gibi uzuyor.Ancak bunu birkez yapıyor olsanız sorun teşkil etmez fakat maalesef bu Microsoft'un sürekli güncellediği MSN header'ındak signature'ı her güncellendiğinde değiştirmeniz gerekiyor yani sürekli bunu takip etmeniz gerekiyor.Hadi diyelim bunuda yaptık,network'ünüzde bir tek msn'imi tehlikeli buluyorsunuz,diğer IM'ler,P2P yazılımları.. Evet maalesef ki hepsi için bu işlemleri yapmanız gerekiyor ve maalesef hiçbiri kalıcı değil.O yüzden birileri tarafından "MSN,P2P vb. şeyleri Netscreen DI ile kesebilirsiniz,boşuna Websense falan filan almanıza gerek yok" bu şekilde ikna edilmeye çalışırsanız hayatınız kararabilir :) Dediğim gibi ürün bunları yapamıyor değil,yapıyor ancak hiç ama hiç pratik değil.
- Anti-Virus
Gateway'de bu tür UTM'ler içindeki Anti-Virus'lere ne kadar güvenirsiniz bilemiyorum ancak ben özellikle sadece anti-virus amaçlı yapılmamış bu tür UTM'lerin anti-virus'lerine güvenemiyorum.Özellikle birçoğunuz buna katılmayacaktır biliyorum ama kötü tecrübe yaşadığım ve bu yüzden pek hoş yaklaşmadığım Trend Micro'ya hiç güvenemiyorum.Netscreen üzerinde Anti-Virus seçeneği konusunda iki seçeneğimiz mevcut,birincisi Kaspersky ve ikincisi Trend Micro.Açıkçası Netscreen'in genel database indirme sorunları bu modüllerde de mevcut ve anti-virus güncellemeleri yapmakta sıkıntılar yaşanabiliyor.Anti-Virus performansına gelince herhangi bir UTM kutusunda olduğundan daha başarılı.Özellikle son versiyon ScreenOs ile birlikte tarayabildiğimiz FTP,HTTP,IMAP,POP3 ve SMTP protokollerine bir de belli başlı IM protokolleri gelmiş.Bu sayede messenger yazılımınızda bir dosya paylaşımı yaptığınızda bu dosyalar Netscreen Anti-Virus taramasından geçebiliyor.Geri kalan özellikler diğer local ve gateway anti-virus özellikleriyle benzer.
- Anti-Spam
Belkide Netscreen'in UTM bölümünde en güçsüz kaldığı nokta spam konusu.Anti-Spam bölümünde yapabileceğiniz 3 tane konfigurasyon var,Mail Spam olarak algılandığında yapılacak işlem(Drop,Change Subject,Change Header),White List ve Black List :D
"Çok kolay şimdi Netscreen'im bütün spamleri yakalayacak." diye düşünmeyin.Bu kadar pratik ayar sonucunda maalesef sonuçlar hiç tatmin edici değil.Genel RBL listeleri ağırlıklı çalışan bir spam çözümü.Günümüz teknolojisi ile gelen 100 spam mesajdan yakalayabildiği sayı 20 civarlarındadır.Kendi içinde Symantec Brightmail ip database'ni de kullanır gelen mailler bu listedeki ip'lerden ise gerekli işlemi gerçekleştirir.Maalesef Spam konusunda buna güvenmemeniz gerekir.
- Policy
Evet geldik Juniper Netscreen'in en iyi olduğu konuya,firewall kurallarımıza.Netscreen bize bu konuda oldukça detaylı özellikler sunmakta ve adı büyük bazı firewalların aksine oldukça stabil çalışmakta.Fakat maalesef yine bir konuda eksikliği mevcut,gerçi eminim her firewall'un eksik yanları vardır,belki Netscreen'in daha da fazla olabilir.Ancak benim eksik dediğim şey aslında çalışmayan yada bozuk olan birşey değil kendi işimize yarayacak güzel bir özellikten yoksun olması.Fakat Juniper bunu bir eksik olarak görmüyor.Bu bahsettiğim şey maalesef sürekli muzdarip olduğumuz Türk Network yapısının Avrupa ve Dünya'dan biraz daha farklı ve düzensiz olması.Örneğin networkte belirlemiş olduğum ve sıralı giden herhangi bir ip grubuna farklı bir policy uygulamak istiyorum ve bu makina sayısı 50'den fazla,örneğin 192.168.1.53-192.168.1.107 gibi bir aralıktaki kullanıcılarım için farklı bir policy uygulayacağım.Şimdi bu ip aralığını tanımlamak için herhangi bir firewall'da 192.168.1.53-192.168.1.107 arası bir network oluşturabilirken,Netscreen'de bunu yapamıyoruz.Bize izin verdikleri ise ya bu iplerin hepsini tek tek gireceksiniz ki 50'den fazla bir ip'den bahsediyorum,bu oldukça zahmetli ve saçma bir iş olacaktır.Juniper'ın ise savunduğu ve önerdiği yöntem network'ümüzde Subnetting yaparak farklı policy uygulamak istediğimiz bu makinaları subnetten çağırmak.Örneğin 192.168.1.50/28 tarzı.Fakat dediğim gibi bizim network yapılarımız buna uymadığı için kullanacağım subnet mask belirlemiş olduğum ip adreslerini kapsamayacaktır.
Ama açıkçası bunun dışında firewall görevi ile ilgili başkada bir sorun olduğunu söyleyemem.Şimdi gelin basitçe birkaç kural yazalım ve internet giriş ve çıkışlarımızı filtreleyelim.
Aslında mecburi olmamasına rağmen düzen ve kolaylık açısından Policy altındaki Policy Elements->Addresses->Lists'i takip ederek,bu bölümde yerel ağımızı ve özel kural yazmak istediğimiz client ve server benzeri node'larımızı tanımlamanızı tavsiye ederim.Sağ üst köşedeki New butonuna tıklayarak yerel ağımızı tanımlayalım.Tanımlayacağımız nesne local network'ünüzde bulunan bir nesne ise aşağıdaki imajda en altta görüldüğü gibi Trust'ı seçmelisiniz.Eğer tanımlayacağınız nesne internet üzerinden bir node ise bu bölümden Untrust'ı yada DMZ bölgenizde ise DMZ'i seçmelisiniz.Address Name bölümüne kurallarımızda ve diğer obje eklenmesi gereken yerlerde ismi görünecek olan tanımlayıcı bir isim girelim,Comment bölümü genelde boş geçilmesine rağmen benzerlik gösteren nesnelerde tanımlamak için burayı kullanabilirsiniz.Ip Address/Domain Name bölümünde tanımlamak istediğimiz node'un ip ve subnet'ini yada buna karsılık gelen domain ismini yazabiliriz.Biz local networkümüzü tanımlayacağımızdan dolayı default bırakıyoruz ve ip bölümüne local network'umuzun ağ adresini yazıyoruz(10.0.0.0) / işaretinden sonra ise network'umuzun mask'ını giriyoruz.Bu bölüme /24 yada 255.255.255.0 girmenizde bir sakınca yoktur ScreenOS bunu otomatik olarak /24'e çevirecektir.Az önce bahsettiğim gibi node'umuzun zone'unuda seçtikten sonra ok diyerek bu işlemi tamamlayabiliriz.

Ben örnek olması açısından aynı şekilde bir adet temsili sunucu tanımladım ve ismine Server1(10.0.0.5/32) dedim.Bunu yaptıktan sonra Policy başlığı altından Policies'e gelebiliriz.Aşağıda görüldüğü gibi bu eklediğim öğeleri kullanarak birkaç kural ekledim.Bu kuralları nasıl eklediğimden bahsedeceğim fakat öncelikle bu kurallar ne işe yarar neler yapar sırasıyla bunlardan bahsedeyim.

Dikkat edeceğiniz üzere burası iki bölümden oluşuyor,From Trust to Untrust ve From Untrust to Trust.Aslına bakarsanız burası her zaman iki bölümden oluşmaz zone'lar arasında eklediğiniz kurallara bağlı olarak buradaki bölümler artar,mesala DMZ'den Trust'a bir kural ekleseydim oda bir bölüm oluşturacaktı ve eklediğim kural yada kurallar bu başlığın altına gelecekti.
Evet ilk bölümümüz Untrust to Trust ve kuralda sırasıyla;
Any,Server1,SMTP ve Action bölümünde yeşil Checkmark görülüyor.Netscreen'de gördüğümüz Any,interneti temsil eder,bunu az önce local area ve server'ımızı tanımladığımız Object->Addresses altında ip adresi 0.0.0.0/0 şeklinde görebilirsiniz.
Kuralımızın untrust to trust başlığı altında olması kuralın internetten local alanımıza gelen trafiği filtreleyeceğini gösterir.Source kısmı Any olduğu için Internetin tamamından gelen paketler için bir kuraldır,destination Server1 olduğu için bu kural internetten Server1 makinamıza gelen bir filtre kuralıdır ve Service altında gördüğümüz SMTP servisi ve Action altında gördüğümüz yeşil CheckMark bize bu kuralın;Internetten Server1 sunucumuza gelen SMTP protokollü paketlere izin verdiğini gösterir.Options altında gördüğümüz küçük hücreli tablo bize bu kuralın loglandığı gösterir ve o ikona bastığmız zaman bu kural ile ilgili trafiği gösterir.Bu satırın devamında göreceğimiz.Edit ile kural özelliklerini değiştirebiliriz,daha sonraki Clone ile bu kuralın aynısından altına bir tane daha ekleyebilir,Remove ile de bu kuralımızı kaldırabiliriz.Bundan sonraki Enable Checkbox'ı kuralımızın aktif-pasif konumunu ayarlamamıza yarar,Move butonu ile ise kuralımızın kural tablosundaki sırasını değiştirmemize yarar.
İlk kuralımızı detaylı inceledikten sonra bundan sonraki kurallarımızı hızlı hızlı geçelim.Bir altında ki kuralda göreceğiniz üzere Any bölgesinden,Any bölgesine giden tüm paketleri blockladığımızı ve logladığımızı görüyoruz.Bu kuralı her zone kural grubunun en altına koymanızda fayda vardır.Bu kural tüm firewall'arda uygulanan cleanup yani temizleme kuralıdır.Eğer üstteki kurallarınıza uymayan bir paket bütün kuralları geçerek en alta gelirse ve burada onu engelleyecek bir kural yoksa bu kural loop'lara neden olabilir ve sistemde taşmalar yaratabilir.Bu durum sadece başı boş paketler için geçerlidir ve bu yüzden bunları en alttaki bu kuralımızla engellemiş oluruz.Bu kuralın başka bir faydası ise sisteminizde bir yazılım farklı bir port kullanıyorsa ve bunu bilmiyorsanız bu porta izin vermeniz gerektiği durumda bu cleanup rule'unun log'larına bakarak neleri blokladığını görebliirsiniz,bu sayede blocklanan paket ve protokollerden izin vermeniz gerekenleri rahatlıkla görebilirsiniz.Ayrıca bu loglama ile sisteminize varsa yapılan saldırıların nereden geldiğini ve hangi protokolleri hedeflediğini görebilirsiniz.
Gelelim Trust to Untrust başlığımıza,yani local networkümüzden İnternet yönüne giden paketleri filtreleyeceğimiz kurallar.En üstte Source'unda Server1 olan bir kuralımız var,ben bunu bir mail sunucu olarak hayal ettiğim için internetten gelen kurallarda SMTP için server'ımıza gelen paketlere izin vermiştik.Her ne kadar içeriden dışarıya gerçekleşen ataklar daha sınırlı olsada buda bir güvenlik problemidir ancak içeride çalışan uygulamalarımızın dışarıyla haberleşmesi açısından bazı şeylere izin vermek durumundayız.Örneğin server özel bir node olduğundan,sürekli bir insan tarafından kullanılmadığından ve update etmesi ve internet ile iletişim kurması gereken daha önemli servisleri bulunmasından dolayı sadece bu makinamızı tüm yetkilerle internete çıkartıyoruz.Ancak action kısmında dikkatinizi çekmiştirki yeşil Checkmark'ımız yerine kırmızı yuvarlak bir dişli simgesi görmekteyiz.Bu bize bu kuralda anti-virus engine'ı çalıştığını gösterir.
Bir altında ki kuralın kaynağı ise LocalNet'dir,yani demek oluyor ki LocalNetwork'teki node'larımızın internete yada internet üzerindeki bazı kaynaklara erişmesi yada erişmemesi için yapılmış bir kural.Destination kısmı Any olduğu için tüm internet için geçerli bir kural bu ve Service bölümünde gördüğümüz üzere sadece HTTP ve HTTPS paketleri girilmiş ve yine Anti-Virus engine'miz var.Bu demek oluyor ki local'deki kullanıcılarımız internette sadece HTTP ve HTTPS protokülünü kullanabilecek yani temel olarak sadece web browser'ını kullanabilecek ve giden paketler anti-virus taramasından geçecek.Ancak bu sefer gördüğünüz üzere Options altında Log simgemizin dışında bir içinde WWW bulunan bir dur simgesi mevcut.Bu bize bu kural için Url Filtering aktif olduğunu gösterir ve url filter profilinde hangi kategoriler izinli ise local kullanıcılarımız ancak bu kategorideki sitelere erişebilecektir.En altta yine Cleanup kuralımız mevcut ancak bu sefer dışarıya giden paketler için.
Şimdi gelin birde nasıl kural yaratıyoruz bunu öğrenelim;

Öncelikle sayfanın üst kısmında From ve To listelerinden kuralımızın hangi yön için olacağını belirleyelim,örneğin,Trust to Untrust yapalım.
Daha sonra en sağ tarafta bulunan New butonu ile kuralımızı düzenlemeye başlayalım.Aşağıda da gördüğünüz gibi birçok ayar ve advanced altında çok daha fazla konfigurasyon mevcut.Bu kadar karışık görünmesine rağmen temel bir kural olusturmamız için birkaç tıklama yetiyor.
Name bölümüne tanımlayıcı bir isim girebilirsiniz,eğer çok sayıda kuralınız varsa işinizi kolaylaştırabilir.Daha sonra Source address bölümünden daha önce oluşturduğumuz Address Book Entry bölümünden LocalNet'i seçelim(daha önce oluşturmadıysak bir üst kısımdaki New Address bölümüne LAN adres bilgilerimizi girelim)Destination adres bölümüne kuralın nereler için geçerli olduğunu belirtelim,eğer kural tüm internet trafiği için ise Address Book Entry'den Any'i seçelim.Ayrıca bu adres bölümlerinin yanlarındaki Multiple butonu ile birden fazla source yada destination adresi ekleyebilirsiniz.Service kısmından internet trafiğinde hangi paketlere izin vereceğimizi belirleyelim.Any durumunda iken tüm paketlere izin vermiş durumdasınız.Buradan Multiple'ı seçelim ve açılan pencereden sağ tarafta HTTP ve HTTPS'i bulalım bunları seçerek sol tarafa atalım.OK dedikten sonra iki adet servisimize internet trafiği için izin veriyor olacağız.Application bölümü ise biraz daha detay vermemize yarıyor.Örneğin HTTP protokolünü Web browserlardan başka yazılımlarda kullanabilir bunlarıda kısıtlamak isterseniz Application bölümünden HTTP kullanmasına izin vereceğiniz protokolü seçebilirsiniz.Bu bölümü None olarak geçebiliriz.
Hemen altında ise bu belirlediğimiz adres ve protokllerin ne olacağını yani action kısmını belirleyeceğiz.Web filter'ı seçerseniz bu kural için Netscreen yönlendirmesi ile çalışan bir websense yada SurfControl devreye girecektir.Action kısmı ise en önemli bölüm diyebliriz,Bu verdiğimiz bilgilere uyan bir kurala rastlandığından ne yapmasını gerektiğini söyleyeceğiz.Buradan Permit'i seçerek bu kuralın izin veren bir kural olduğunu belirliyoruz.Yanındaki DeepInspection butonundan var ise deep inspection gruplarımızı ekliyoruz ve alert seviyesini belirliyoruz.Alt kısımdaki Anti-Virus profile'den eğer bu kuralın anti-virus taraması yapmasını istiyorsak gererkli profili seçmemiz gereken yer.Altındaki Anti-Spam enable ise geçen bir mail trafiği varsa bunun için anti-spam özelliğini aktif etmeye yarıyor.Diğer alttaki kısımlar VPN ile ilgili ve bunlara ileriki bölümlerde deyineceğim.Son olarak kuralımızın loglanması için Logging checkbox'ını seçmemiz gerekiyor.Bunu da yaptıktan sonra OK butonua basıp kuralımızı kayıt ediyoruz.
Evet Netscreen'de güvenliğe giriş yaptığımız en önemli konu şimdilik sona erdi.Bundan sonra yine Netscreen ile ilgili birkaç faydalı yazı daha paylaşmayı düşünüyorum,fakat malumunuz zamansızlıktan bunların zamanları uzayabiliyor.Son olarak yine maruz kalmış olduğunuz kötü dilbilgim yüzünden affınızı rica ediyorum.Bir sonraki yazıda görüşmek dileğiyle..