Quantcast
Channel: Güvenlik
Viewing all 105 articles
Browse latest View live

WatchGuard MAC Address Kısıtlamalı ve Kimlik Doğrulamalı Internet Erişimi

$
0
0

 

Günümüzde “bilgi güvenliği” farkındalığı sadece büyük ağların ihtiyacı değil 3 - 5 kullanıcılı ağlarda bile gerekli önlemlerin alınması, doğru konfigürasyonun yapılması, güvenliğin sağlanmasında en önemli faktörlerden. Kullanıcı kimliğinin doğrulanması, orta büyüklükteki ve büyük ağlarda bir dizin yapısı kullanılarak yapılır. (Active Directory, Novell Directory, Open LDAP vb.) Ancak çok az kullanıcı bulunan ağlarda kimlik doğrulaması için daha basit çözümlere ihtiyaç vardır. Watchguard XTM serisi cihazların kendi bünyesinde bulunan kullanıcı veritabanı ve otomatik browser yönlendirmesi özelliklerini, MAC adresi kısıtlaması ile birleştirdiğimizde, başarılı bir doğrulama yapısı kurmuş oluyoruz. Client sayısının yüksek olduğu yerlerde kullanışsız olan bu metot az kullanıcı yerlerde oldukça başarılı bir şekilde çalışmaktadır.

 

 

Bu makalemizde WatchGuard ürünü üzerinde MAC address kısıtlamalı Kimlik Doğrulamalı Internet Erişimi konfigürasyonunun nasıl yapıldığını anlatmaya çalışacağım. MAC adres kısıtlaması bize, her kullanıcının ağ kablosunu takıp veya kablosuz yayına bağlanıp internet te dolaşmasını engellemek ve bu erişim kontrolünün tamamen bizim kontrolümüzde olmasını sağlayacaktır. User Authentication ise, kullanıcı mac adresi tanımlandıktan sonra internet erişimini sağlarken, logların daha anlaşılabilir bir şekilde tutulması için faydalı olacaktır. Bunu yapmayıp direkt internet izni de verebilirdik. Fakat bu bizim için ve log kayıtlarını anlamakta zorlanmamıza neden olacaktır. Bu konfigürasyonu ister şirket içinde, isterseniz Misafirler için sağlanan internet erişiminde kullanabilirsiniz. Anlatım teknik bir anlatım olduğu için sık ekran paylaşımları ile ilerleyeceğiz;

 

 

Önemli Bir Not: MAC Adreslerini tanımlarken mutlaka ve mutlaka cihazı yönetmek için bir MAC adresi tanımlamayı unutmayın. Eğer tanımlamazsanız cihaza erişemez ve cihazı yeniden yapılandırmak zorunda kalırsınız.

 

 

 

image001

 

 

 

İlk olarak XTM cihazımıza login oluyoruz.

 

 

 

image002

 

 

 

Daha sonra Policy Manager” tabına tıklıyoruz.

                                                                                                   

 

    

image003

 

 

 

MAC erişimlerini tanımlamak için Menü den “Network” daha sonra “Configuration” tabını seçiyoruz.

 

 

 

image004

 

 

 

Gelen ekranda “MAC Access Control” tabına tıklıyoruz ve aşağıda bulunan Restrict access by MAC adress kutucuğunu işaretliyoruz. Daha sonra “Add” butonuna tıklayıp ilgili MAC adresimizi tanımlıyoruz.

 

 

 

image005

 

 

 

Daha sonra kullanıcıların Kimlik doğrulama ekranına yönlendirilmesini sağlamak için “Setup” – “Authentication” – “Authentication Settings” ekranına giriyoruz.

 

 

 

image006

 

 

 

Burada “Firewall Authenticationtabına gelip aşağıdaki “Auto redirect user to authentication page for authentication kutucuğunu işaretliyoruz. Bu kutucuğu işaretledikten sonra kullanıcı internet erişmek istediğinde otomatik olarak kimlik doğrulama ekranına yönlendirilecektir. Tabi MAC adresi tanımlarında adresi tanımlı ise.

 

 

 

image007

 

 

 

Daha sonra kullanıcılarımızı oluşturmak için “Setup” – “Authentication” – “Authentication Servers ekranına giriyoruz.

 

 

 

image008

 

 

 

Ben burada ilk önce naviga grubunu oluşturdum, Daha sonra “cem” kullanıcısını oluşturup naviga grubunun üyesi yaptım. Bu grup kurallarımızı oluştururken bize kolaylık sağlayacaktır. Kullanıcının ağdaki kalma ve Boşta kalma sürelerini de istediğimiz şekilde tanımlayabiliriz.

 

 

 

image009

 

 

 

Kullanıcımızı ve grubumuzu da tanımladıktan sonra artık kurallarımızı yazmaya başlayabiliriz. Kuralımızda dikkat etmemiz gereken bir şey var. “DNS” kuralını network e vermek zorundayız. Burada kullanıcı erişimi sağlamak için, DNS sorgusu yapmak zorundadır. Eğer sorguyu yapmaz ise “Kimlik doğrulama ekranı” da yönlendirilemez. Dns kuralımızı oluşturduktan sonra web erişimi için “http proxy” kuralını oluşturduğumuz kullanıcıların erişebileceği şekilde yapılandırıyoruz. Aşağıdaki resimde de görüldüğü gibi… Bu işlemler “https proxy” içinde geçerlidir.

 

 

 

image010

 

 

 

Kurallarımız da hazır artık. Fakat dikkat etmemiz gereken bir unsur daha. Henüz kuralımızı kaydetmedik. Bunu da resimde en üste gördüğümüz “XTM510.xml” yazısının yanında bulunan “*” işaretinden anlıyoruz. Konfigürasyonumuzu kaydediyoruz. Kaydettikten sonra “*” kaybolduğunu göreceksiniz.

 

 

 

image011

 

 

 

Kullanıcımız Internet erişim sağlamak istediğinde WatchGuard direkt olarak kullanıcıyı “Kimlik doğrulama ekranı” na yönlendirecektir.

 

 

 

image012

 

 

 

Kullanıcı “Login” oluyor.

 

 

 

image013

 

 

 

image014

 

 

 

Ve artık internet erişimi sağlanmış durumdadır.

 

 

 

image015

 

 

 

Loglarımızda da gördüğümüz gibi kullanıcıya izin verilmiş ve internet erişimi sağlanmış durumda. Eğer Mac adresi tanımlanmamış bir kullanıcı internet e erişmek isterse aşağıdaki loglarda görüldüğü gibi “Deny” ve “Mac address blocked” kayıtları gözükecektir.

 

 

 

image016

 

 

 

Konfigürasyonumuz bu şekilde sonlanmıştır. Umarım faydalı bir makale olmuştur.

 

 

Yeni makalelerde görüşmek üzere…


WatchGuard Farklı XTM Modellerinin Konfigürasyonlarının Birbirine Aktarımı

$
0
0

 

Ölçeklenebilir bir altyapı kurmaya çalışsak da, bazen elimizdeki ürünün sınırlarına geliriz. Bu gibi durumlarda (özellikle donanımsal bir ürün söz konusu ise) bir üst modele geçer ve sorunumuzu çözeriz. Bir çok BT uzmanının karşılaştığı bu ortak sorunu WatchGuard ürünleri açısından inceledim ve aşağıdaki makaleyi hazırlamaya karar verdim. UTM gibi içinde karışık konfigürasyon olan ürünlerin terfisi sırasında, herşey elle yapılır ve konfigürasyon baştan yapılırsa insan hataları kaçınılmaz olur. Neyse ki WatchGuard ürünlerinde kullandığımız bazı eski kızılderili numaraları var. Aşağıda bunlardan bahsedeceğiz. Bu makaleyi okuduktan sonra, herhangi bir WatchGuard cihazındaki konfigürasyonu en az efor ile farklı bir modele kopyalayabilir olacaksınız. Ben XTM 23 ten XTM 510 a geçiş yapacağım. XTM 510 un ilk yapılandırmasını yaptıktan sonra İşlemlerimize başlıyoruz;

 

 

 

image001

 

 

 

WatchGuard System Manager’ i açıyoruz. Sisteme login olmadan doğrudan Policy Manager simgesini tıklayarak daha önceden kaydettiğimiz XTM 23 cihazımızın konfigürasyon dosyasını açıyoruz.

 

 

 

image002

 

 

 

Burada ürünlerimiz farklı olduğu için Feature Key (lisans) dosyasında sıkıntı olacaktır. Bu yüzden Feature Key imiz yeni takacağımız XTM 510 un Feature key i olmak zorundadır. Eğer eski Feature Key kullanmak istersek bize hata verecektir.

 

 

 

image003

 

 

 

Ekrana gelen eski XTM 23 Feature Key ini Remove edip XTM 510 Feature Key ini Import ediyoruz. Burada ekrana gelen uyarıda Interface sayıları tutmadığı için Konfigürasyonda sıkıntı çıkabileceğini belirtiyor. Bizim Interface yapılandırmamızda sıkıntı yaratacak bir durum olmadığı için devam ediyoruz.

 

 

 

image004

 

 

 

Feature Key imizi Import ettikten sonra artık bu konfigürasyon u XTM 510 üzerine kaydedebiliriz. Kayıt esnasında Ip yapısı değişeceği için uyarı veriyor. Biz buna Yes deyip devam ediyoruz. Kayıt işlemi bittikten sonra artık XTM 23 üzerindeki konfigürasyonumuz bire bir XTM 510 a aktarılmış olacaktır.

 

 

 

image005

 

 

 

System Manager dan artık cihazımıza yeni ip mizden (XTM 23 e ait konfigürasyon daki ip) login oluyoruz. Artık default ip ler yok. XTM 23 üzerindeki yapılandırmamızı kullanıyoruz.

 

 

 

image006

 

 

 

Görüldüğü gibi kurallarımız artık aktarılmış durumda ve Cihaz geçişi sorunsuz bir şekilde yapılmış oldu.

 

 

Önemli Bir Not : Cihaz şifresi unuttulduğu zaman da bu yöntem kullanılabilir. Sadece elimizde konfigürasyon yedeğimizin olması yeterli. Cihazı factory default a çekip yedek konfigürasyonu cihaza kaydetmemiz yeterli olacaktır. Artık factory default a alırken verdiğimiz şifreler geçerlidir ve bu işlem max 10 dk alacaktır.

 

 

Umarım faydalı bir makale olmuştur. Yeni makalerde görüşmek üzere…

Zaafiyet Yönetim Sistemi

$
0
0

 

Zaafiyet Yönetimi Sistemi ile BT Sistemleri’ndeki olası zaafiyetler belirlenerek tehditler için kontrol aksiyonları alınması amaçlanır. Peki zaafiyet ve tehdit nedir?

 

 

Zaafiyet (vulnerability) , sistemlerde tehditlere hedef olabilecek yapısal ve konfigürasyonel açıklıklardır.

Tehdit (threat): Sistemlerdeki açıkları kullanarak sistemleri ele geçirme veya devre dışı bırakmaya yönelik kullanılabilen suistimallerdir.

 

 

Zaafiyetler hangi sistemlerde bulunur, bu sistemlerin sahipleri kimlerdir? Bu sistemlerin kritik seviyeleri nelerdir? Kritik olmayan bir sunucuda bulunan kritik bir açık ne kadar kritiktir? ZYS için öncelikle varlıklarımızı kritiklik seviyelerine göre sınıflandırmış olmamız gerekmektedir.   

 

Sahiplik

 

Sistemlerimizde kullanılan sunucu, network cihazı, terminal, utp kablo vb’nin sahibi kimdir? Bankalardaki Veritabanı Yönetim Servisi’nden örnek verecek olursak, Veritabanı Sunucusu’nun ve içinde barındırdığı bilginin sahibi Sistemci mi yoksa bu bilgileri kullanarak kuruma gelir kazandıran iş birimi midir? Müşteri kayıt formundaki iki imzadan biri müşterinin ise diğer imza kime aittir? BT’ye mi? Tabii ki hayır:  İlgili şube, dolayısıyla o şubenin bağlı olduğu ilgili İş Birimi Müdürlüğü’ne aittir. Bu açıdan düşünüldüğünde, Veri ve Sistem’in sahibi, kurumlardaki İş Birimleri’dir. BT, bu verinin ve sistemin bütünlüğünden (integrity), gizliliğinden (confidentiality) ve erişilebilirliğinden (availability) sorumludur (Data Custodian).

 

 

Sistemlerin sahiplerini bulduğumuza göre artık ZYS’ye dönebiliriz. Günümüzde, zaafiyet analizleri BT Güvenliği, BT Risk,  BT Uyum gibi farklı birimlerce yürütülmektedir. Buradaki yaklaşım –çoğunlukla-, zaafiyetlerin bu işe özel bir yazılım ile bulunması (şanslı ise manuel testlerle de), ilgili sistem yöneticilerine ticket/issue açılması (giydirilmesi J ), son olarak da bulguların giderildiğinin belirtilmesinden sonra kontrol taraması yapılmasıdır.

 

 

Peki, bu taramanın yapılmasını kim istemiştir? Taramayı yapan birim, kendi kendine aksiyon almaya yetkili midir? Tarama sırasında ya da iyileştirici aksiyon alınırken hizmet dışı vb oluşursa sorumluluk kime ait olacaktır? (Bazı yamaların ya da konfigürasyonların etkin olması için restart gerekmesi vb). Bu noktada, İş Birimleri’ne gerekli farkındalığın kazandırılması ve onlar adına bu teknik faaliyetlerin ilgili birimlerce yürütülmesi gerekmektedir. Bu olgunluk düzeyinin sağlanması ilgili BT Birimleri’nin sorumluluğundadır. Unutulmamalıdır ki, İş Birimi’nin önceliği İş Sürekliliği (Business Continuity), Sistem Birimi’nin önceliği ise Erişilebilirliktir (Availability).

 

 

NE’nin yapılacağına İş Birimi karar verdikten sonra (BT Birimleri’nin yönlendirmesiyle) NASIL yapılacağı konusunu BT Güvenliği Birimi’ne outsource edebilir. Bu noktadan sonra sistem sahibinden yetki alan BT birimi, gerekli taramaları yaptıktan sonra dikey ve yatay taramaların kesişimindeki sistemlerin zaafiyetlerini ilgili sistem yöneticisine nokta atışı çözüm önerisiyle birlikte sunmalıdır. Zaafiyet Analizi yazılımlarının çoğu sadece link verdiğinden o kadar linki okuyacak kaynak/bilinç maalesef yoktur.

 

 

Günümüzde çoğu zaafiyet taraması yatay yapılmakta; varlıklar türlerine göre (Microsoft Sunucu, Unix/Linux Sunucu, Network Cihazı, Veritabanı Sunucusu vb) zaafiyet taramasından geçirilmektedir.

 

 

Aşağıdaki tabloda görüldüğü gibi, yatay tarama sonucu sadece ilgili sistem yöneticisine özel bir rapor olacaktır:

 

 

 

Internet Bankacılığı

Ana Bankacılık

E-Posta Sistemi

Microsoft

MS1

MS2

MS3

Veritabanı

DB1

DB2

DB3

Network

SW1

SW2

SW3

Unix/Linux

U/L1

U/L2

U/L3

 

 

 

Tarama1: MS1+MS2+MS3 olduğunda, birçok MS Sistem Yöneticisi için hepsinin önceliği aynıdır: “0”, sıfır J

 

Neden? Sistem Yönecisi’nin önceliği Güvenlik değildir de ondan. Sistem Yöneticisi’nin önceliği erişilebilirliktir (availability). Sistem Yöneticisi gözünden bakıldığında, zaafiyetleri kendisine gönderen (giydiren) birim, bir tool ile next-next yaparak tarama yapıp sonuçlarını mouse ile sağ tık- assign  eden birimdir. Bu yaklaşımın çok etkin/başarılı olmamasının sebebi de budur. Öyle ise burada yanlış olan nedir? ZYS’nin yetkilendirilmesi için taramanın dikey olarak proje bazlı yapılması gerekmektedir.

 

 

Her hafta ctesi gece 03:00’te Internet Bankacılığı Projesi’nin zaafiyet analizini dikey yapıp (MS1+DB1+SW1+U/L1) Executive Report olarak ilgili İş Birimi Müdürü’ne sunduğumuzda, pie-charttaki kırmızı dilimin fazlalığı BT Güvenliği’nin aksiyon alma sürecindeki en büyük destekçisi olacaktır. Bu açıdan bakıldığında, İş Birimi, BT Güvenliği Birimi’ni para kazandığı Internet Bankacılığı Projesi’ndeki teknik risklerin giderilmesi için kiralamış gibi düşünülebilir. BT Güvenliği Birimi’nin de aldığı bu gücü ve ZYS raporlarını kullanarak bu süreci etkin şekilde yönetmesi sonuçlarını da Yönetim’e raporlaması gerekmektedir.

 

Etkin ZYS Sistemi için:

 

 

Dikey ve yatay taramalar sonucu, kurum sistemlerindeki en kritik açıklar sistem bazında (unix, ms,  network, veritabanı vb) belirlenerek sistem kurulum prosedürlerinde BT Güvenliği adımı olarak yerini almalıdır. Örneğin, Unix sunucularda kronik hale gelmiş yüksek seviyeli 10 bulgu Unix Sunucu Kurulum Prosedürü’nde BT Güvenliği adımı olarak yerini aldığında taramalarda, yüksek dereceli bulgu sayısı azalacaktır. Bu da Sistem ve Güvenlik Birimleri’nin iş yükünü önemli ölçüde azaltacaktır. Bu liste dinamik olacağından yeni bulgular eklenip geçerli olmayanlar çıkarılacaktır.

 

 

 

Güvenlik sadece zaafiyet taraması yapan birimin işi değildir. Öncelikle, ilgili sistemi (dikey) kullanarak para kazanan iş biriminin, sonrasında Sistem Yöneticisi’nin, son olarak da zaafiyet analizini yapan birimindir. Zaafiyet taramalarında çok sayıda bulgu çıkması durumunda, bu Sistem Birimi’nin mi yoksa BT Güvenliği’nin mi başarısızlığıdır? Yoksa başarısı mıdır?

 

 

 

Zaafiyet Analizi Raporu’ndaki bulguların seviyelerini değerlendirirken bulgu sahibi varlığın da kritiklik seviyesini göz önünde bulundurarak İyileştirme Planı (Remediation Planı) yapılmalıdır. Yüksek seviyeli bulgular 1 hafta içinde, orta seviyeli bulgular 1 ay içinde, düşük seviyeli olanlar da 3 ay içinde giderilmli gibi kurum politikasına göre oluşturulan, bir nevi bulgu takip listesi hüvüyetinde olacak bu liste yardımıyla bulguların bir plan dahilinde giderilmesi ve kontrolü sağlanacaktır.

 

 

 

Zaafiyet aracının önerisinin yanısıra kuruma özel çözümlerin de kayıt altına alınabileceği bir sistem kurularak know-how havuzu oluşturulmalıdır. Bu sayede, aynı zaafiyet farklı bir sistemde de raporlandığında bu know-how kullanılarak hızlı/etkin aksiyon alınabilir.

 

 

Denetimler açısından bakıldığında, ZYS’de kullanılan ürünün yetkinliği değil; sürecin bir bütün halinde işletilmesi önemlidir. En çok bulgu bulup nokta atışı iyileştirmeler öneren bir ürün alındığında bile açılan ticket/issuelar uzay boşluğuna gidiyorsa denetim konusunda sıkıntı yaşanacağı aşikardır.

 

 

Önemli olan zaafiyet ürününden ziyade Zaafiyet Yönetimi Sistemi kurmaktır. Zaafiyetin bulunması için yetki alınmasından giderildiğinden emin olunmasına kadar geçen süreç bir bütün olarak düşünülmelidir.

 

 

Güvenliğin tüm birimlerin görevi olduğu noktasından çıkıldığında ZYS içindeki olası aksaklıklar ivedilikle çözülebilir. Bir adım ileriye gidildiğinde ise, bu ZYS operasyonlarını ilgili sistem yöneticilerin yapması sağlanmalıdır. Böylece, sistem yöneticilerinin ZYS’yi daha fazla benimseyerek kurum kültürünün parçası haline getirmeleri sağlanmalıdır.

 

Peki en iyi ZYS Yazılımı hangisidir?

 

 

Zaafiyetleri en çok bulan mıdır? Bu zaafiyetlerle ilgili iyileştirme adımlarını en net şekilde ortaya koyan mıdır? Bulduğu zaafiyetlerle ilgili otomatik ticket/issue açan mıdır? Sürecin herhangi bir anında istediğiniz türde raporlama yapan mıdır?

 

 

İyi bir ZYS Yazılımı’nın aşağıdaki sorulara cevap veriyor olması gerekmektedir:

 

 

Kurulum:

- Kurulum opsiyonları neler? (Hardware, Software, Service)

- Unix/Linux/Microsoft sunucu üzerine mi kuruluyor?

- 64-bit desteği var mı?

- Veritabanı olarak ne kullanıyor? Veriler nasıl saklanıyor?

 

Yapılandırma:

- Envanterler gruplanarak farklı politikalar uygulanabiliyor mu? (unix, microsoft, veritabanı, network vb)

- İmza veritabanı neler içeriyor (network, os, veritabanı, web application vb)? Ne sıklıkta güncelleniyor?

- Farklı network taramaları için agent vb opsiyonu var mı? Nasıl lisanslanıyor?

- csv formatındaki assetleri import edebiliyor mu?

- Rapor çıktıları Metasploit, Immunity Canvas gigi  exploit yazılımlarına import edilebiliyor mu?

 

Zaafiyet Taraması,Raporlama,Ticketing ve İyileştirme

- Asset Discovery özelliği var mı?

- Compliance için hazır tarama şablonları var mı (PCI, NIST, HIPA, FISMA vb)? Bunlar için ekstra ücret talep ediliyor mu?

- Wireless ağ tarama özelliği var mı?

- VOIP ağ tarama özelliği var mı?

- Envanter grupları için Best Practices tarama şablonları var mı? Bunlar için ekstra ücret talep ediliyor mu?

- Web Uygulaması tarama opsiyonu var mı? Ücrete dahil mi?

- Tarama için kullanılan engineler neler? (nmap, netcat vb)

- DOS taraması yapabiliyor mu?

- Kendi zaafiyet imzalarımızı tanımlamak için arayüzü var mı?

- User Credential vererek tarama yapabiliyor mu? (Authenticated scan)

- Hangi veritabanlarını destekliyor? (Oracle, DB2, MS SQL, Mysql vb)

- Ticket mekanizması var mı? Kaç kişi tanımlanabiliyor? Lisanslama nasıl yapılıyor?

- Geçmişe dönük raporlama yapılabiliyor mu?

- Tarama raporları nerede nasıl saklanıyor? (şu dizinde, encrypted/hashed olarak vb)

- Tarama ve Raporlar için farklı yetkilendirme seviyeleri var mı?

- Farklı iki tarihte yapılan taramalar arasındaki farkı gösterebiliyor mu? (Delta, Differential Reporting, Trend Analizi, Önceden şu durumdaydı, şu an bu durumda gibi)

- Hedef sistemlerde tespit edilen güvenlik açıkları için exploit bilgisi de bulunuyor mu?

- Bulguları gidermek için nokta atışı öneriler yapabiliyor mu? (remediation)

- Custom raporlar oluşturulabiliyor mu? Farklı raporlar için ekstra ücret talep ediliyor mu?

- Scheduled Tarama ve Raporlama özellikleri var mı?

- Veritabanlarında yama seviyesi kontrolünün yanında konfigürasyon kontrolleri yapabiliyor mu? (Yetkili kullanıcı verilerek)

 

Diğer:

- Audit mekanizması var mı? (kim ne değişiklik yaptı vb)

- Lisanslama nasıl yapılıyor? (IP bazlı vb)

- Baz lisans dışında ekstra ücret talep edilen modüller hangileri?

- 2. yıl için ne kadar bakım ücreti ödeniyor?

- Referansları ve görüşebileceğimiz kontakt kişi

 

Umarım faydalı bir makale olmuştur.

Kim Korkar 5651’ den?

$
0
0

Bu yazıda ülkemizde uygulanmakta olan " 4/5/2007 Tarihli ve 5651 Sayılı İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanun " “ üzerine duracağız. 5651 yasası hemen yazının başında belirtmek isterim ki aslında hali hazırda IPv4 için uygun ya da uygulanabilir bir yasa değildir. Öncelikli olarak bir yasanın çıkması için devletin bu yasaya istinaden gerekli koşulları yasaya uymakla mükellef şahıs, kurum vb… yerlere sağlayabilmesi gerekmektedir. İşin özü meclisten Türk milleti nefes almayacak diye bir yasa çıkartılıyorsa, öncelikli olarak alınmayacak olan nefes yerine devletin insanların nefes almadan yaşayabilmesini sağlayacak alt yapıyı kurması gerekmektedir.

 

Peki bu şekilde bir yasa var ve bilindiği gibi adaletin haklı ya da haksız günümüz de genelde haksız olarak kestiği parmağın acımaması gerekmektedir, durum bu olunca yasa nedeni ile alınabilecek maddi ya da hapis sonuçlu cezalar sonucunda canınızın acımaması gerekmektedir. Yok, eğer sizde bu tür bir durumda benim gibi canı yanacak olanlardansanız o zaman 5651 yasasını inceleyelim açıklarını ve yasanın kendisinden korunma yöntemlerini bulalım.

 

Yasa temel olarak özgür olan ve kontrolsüz olan internet omurgasının kontrol altına alınması amacı ile hazırlanmış Avrupa uyum yasaları içinde olduğu için yine Avrupa uyum yasaları bahanesi ile diğer bir ton iyi yasa mecliste geçmeyi beklerken hayatımıza sokulmuştur. Temelde yasa insanların haklarını her ortamda korumayı görev edinmiş olan yargı kurumlarımızın gerekli durumlarda bunu internet ortamında da yapabilmesine olanak sağlamak amacı ile hazırlanmıştır. Fakat işin ilginç tarafı Italya, Türkiye ve bir kaç tele kulak vakasının bol olduğu ülkeler dışında uygulamaya alınmamış hazırlıkların bitmesi beklenmiştir.

 

Neden uygulanmamıştır? Neden hazırlık gerektirmektedir? Hali hazırda uygulanmamasının nedeninin başlıca sebebi yasanın ve hedefinin tam olarak anlaşılmamış olması ve IPv4 yetersizlikleridir. Bilindiği gibi bugün aynı internet bağlantısını aynı anda birçok kişi aynı anda kullanabilmektedir. Tabi bura da bir sistem mevcut ve bu sistemin adı NAT sistemidir. NAT ın karşılığı Network Adress Translation demektir ve bir ağın başka bir ağa ( many to many nat ) ya da bir ağın bir IP ( many to one nat) adresine çevrilerek internet ya da benzeri local ağ ( yerel ağ ) dışına çıkartılmasıdır. Burada temel sorun birden çok IP adresinin bir IP adresine çevrilerek dışarı çıkartılmasından kaynaklanmakta tır. Şimdiye kadar tersine mantıkla gittik yasayı bilmeden sorunlarına baktık, peki yasa ne diyor?

 

Yasa temel olarak internet üzerinde yapılan hareketlerin loglanmasını istemektedir. Fakat bunu da yine yanlış logları isteyerek yapmaktadır. Yasa tarafından hukuki bir süreç içerisinde oluşacak savunma durumunda istenilen log kayıtları DHCP loglarıdır. Hali hazırda DHCP logları bir anlam ifade etmemektedir. Altta verdiğim resimlerde bir sunucu ve istemci arasında yapılan ilişkide oluşan istek ve cevaplar bulunmaktadır.

 

Örnek A: istemciden sunucuya yapılmış olan http request ve response.

Görüldüğü gibi istemcimiz olan 172.16.255.11 nolu cihaz internet üzerinde bulunan 88.248.71.21 nolu IP adresinden http isteğinde bulunmuştur.

 

 

image001

 

 

Örnek B : Sunucdan istemciye yapılmış olan http reponse ve rquestleri,

 

Dikkat ederseniz sunucudan istekleri 172.16.255.11 nolu IP ye sahip olan kullanıcı değil, 172.16.255.11 nolu IP adresinin dahil olduğu ağın internet çıkış cihazının ( Modem, Router vb... ) WAN ( internet ) IP adresi yapmaktadır.

 

 

image002

 

 

Burada IPv4 ün yetersizliklerinden dolayı kullanılmakta olan NAT sisteminden dolayı ( NAT )gerçek işi yapan yerine, internet çıkış cihazının IP adresi gözükmektedir.

İşlemin yapıldığı sistemin örnek diyagramı;

 

 

image003

 

Halbuki yasa ile verilen LOG örneklerinde (Tib log Örneği
) sistemin sadece DHCP loglarının tutulmasının yeterli olacağı vurgulanmaktadır. DHCP logları ağ üzerinde MAC adreslerine istinaden verilen IP adreslerinin verildiği kişiye verilme zamanı ve tekrar bırakılma / yenilenme zamanı kayıtlarını tutmaktadır. Hali hazırda bir hukuki süreç;


1.       Suç duyurusunda bulunan kişinin xxxx web sitesinden kendisine yapılmış olan hakaret, aşağılama, ya da dini siyasi görüşüne istinaden yapılmış olan su istimale ilişkin yapacağı suç duyurusu ile başlar,

2.       Savcılık bu suç duyurusunu haklı bulursa xxxx site sahibinden ilgili olayla ilgili kayıtları ister. Bunlar suçu işleyen kullanıcının yazdığı yazı ve bu yazıyı yazarken kullandığı IP adresi ve zamandır.

3.       Savcılık ISP lerden bu IP adresini bahsi geçen zamanda kimin kullandığını isteyecektir, ISP doğal olarak DHCP log kayıtlarını verecek ve son kullanıcıya ulaşılacaktır.

Bizim ile ilgili kısım burada başlamaktadır. Bahsi geçen olayda gözüken bizim internet IP adresimizdir fakat işlemi yapan biz değiliz. Bu durumda bizimde suçsuzluğumuzu ispat etmek adına kendi LOG kayıtlarımızı mahkemeye sunmamız gerekmektedir. Bizde kendi DHCP kayıtlarımızı sunduğumuzda, aslında devletin tutmamızı istediği bu LOG kayıtlarının hiçbir işe yaramadığı çünkü tut uttuğumuz bu kayıtlarda yerelde tutulan IP adreslerinin aslında internet üzerine görünmediğini ve doğal suçlusunun IP sahibi ya da ilgilisi olduğunu öğrenmiş ve cezayı kabullenmiş olacağız.

Durum bu olunca ilgili söylediklerim boşta kalmasın diye www.tk.gov.tr adresinden bilgi edinme kanununa istinaden alttaki metin ile bir bilgi isteğinde bulundum.   

İstek Metni;

“Ülkemizde yürülükte olan " 4/5/2007 Tarihli ve 5651 Sayılı İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanun " kapsamında internet servis sağlayıcıları tarafından tutulması gereken ve " http://www.tib.gov.tr/IP_log_imzalayici " ilgili link adresinde bulunan örnek logların " http://www.tib.gov.tr/dokuman/Ornek_Dahili_IP_Dagitim_Logu.txt " tutulması ile " http://www.tib.gov.tr/onayli_filtreleme_yazilimlari " ilgili linkte bulunan yazılıların kullanılarak;

1. Ev kullanıcıları olan bizler, evimizde ev ahalisi ve misafirlerimiz ile paylaşmakta olduğumuz adımıza kayıtlı olan internet bağlantısı üzerinden yapılacak her kapsam altında ki usulsüzlük ve suç teşkil edecek olan sorumluluklardan kurtulmakta mıyız?

2. İş yeri sahibi, ve ağ yöneticisi olan bizler, personelimiz, misafirlerimiz ile paylaşmak olduğumuz adımıza kayıtlı internet bağlantısı üzerinden yapılacak her kapsam altında ki usulsüzlük ve suç teşkil edecek olan sorumluluklardan kurtulmakta mıyız?

3. Halka açık internet bağlantısı dağıtan internet kafe tarzı işletmelerde tüm bu güvenlik ve önelmelerin kullanılmasına rağmen internet üzerinde yaptığımız her türlü usulsüzlük ve suç teşkil edecek durumdan kafe işletmecisi mi sorumludur yoksa bu işlemi yapan şahıs mı sorumludur? Eğer şahıs sorumlu ise, şahsın kimlik tespiti hangi şekilde yapılamaktadır?

Önemli Not: Bu mail içeriği ve verilecek cevabın içeriği bilgi edinme ve edilen bilginin paylaşılması kapsamında, halka açık yerlerde arz edilebilir. Gönderilecek cevap içeriğinde bulunacak her türlü devlet sırrı, paylaşılması yasak olan yazı ve ekler e-postaya cevap verilmesi durumunca şahsımca arz edilebilir bilgi olarak değerlendirilecek ve halka açık yerlerde arz edilecektir.”

Cevap Metni;


“Sayın Erberk,


Bilindiği üzere; Bilgi Edinme Hakkı Kanununun Uygulanmasına İlişkin Esas ve Usuller Hakkında Yönetmeliğin "İstenecek bilgi veya belgelerin niteliği" 12. maddesinde "Bilgi edinme başvurusu, başvurulan kurum ve kuruluşların ellerinde bulunan veya görevleri gereği bulunması gereken bilgi veya belgelere ilişkin olmalıdır." denilmektedir.

Yine, 4982 sayılı Bilgi Edinme Kanunu'nun "Tavsiye ve mütalaa talepleri" başlıklı 27. maddesinde "Tavsiye ve mütalaa talepleri bu Kanun kapsamı dışındadır." denilmektedir. Başvurunuz bu maddeler kapsamında değerlendirilmiştir.

Bilgilerinizi rica ederiz.

Bilgi Teknolojileri ve İletişim Kurumu

Basın ve Tüketiciler ile İlişkiler Müşavirliği”

İstenilen bilgi çok açıktır, orta da hukuki bir durum vardır sosyal devlet olan ülkemizde avukat ya da danışman tutma maliyetini karşılayamayacak olan ben vatandaş Ertan ERBEK, duruma ilişkin bir bilgi istedim ve sonucunda alamadım. Sonuç aslında yasayı çıkartan, onaylayan ve yürüten hiçbir makam durum hakkında bilgili değildir, ya da yapılan hatanın farkındalıkla hatanın düzeltilme zamanına kadar hatayı ört pas etme çalışmasındadır. Peki bu farkındalık ve örtpas etme durumunu nerden çıkarttım, Bkz. Türkiye Cumhuriyeti Başbakanlık Genelgesi. Görüldüğü gibi olayın aslında farkındayız, yasayı yanlış zamanda çıkarttığımızın farkındayız lakin ört pas etmeye çalışmakta ve bu çalışma dada yavaş adımlarla geçilmesi gereken bir sisteme hızlı bir geçiş yapmaya çalışarak hem haddi hesabı olmayan bir miktarda da paranın uzun vadeye yayılarak devleti ve milleti rahatsız etmeden harcanması yerine toplu ve bir anda yapılarak ülke ekonomisine zarar vermekteyiz. Neyse bu kısım bizi pek ilgilendirmiyor bunu siyasetçiler ve maliyeciler ya da para ile kim ilgileniyorsa onlar tartışsınlar.

Artık NAT nedir, sistemin açıkları nedir ve işin siyasi boyutu nedir bildiğimize göre bizim haklarımızı korumak için çıkartılmış olan bu yasadan nasıl korunacağımıza ve kurunun yanında yaş ta yanar atasözünde bulunan yaş olmaktan nasıl kurtulacağımıza bakalım. Yasa hali hazırda bizden DHCP loglarını tutmamızı ve yine bilgi işlemcilerin bu logları değiştirebileceği düşülerek digital imza ile zaman mührü vurulmasını istemektedir. HASH sistemleri için devletimiz milletine bir imzalayıcı program hediye etmiştir, uzun vadede çöken ve işletim sistemi bağımlığı olan bu programı http://www.tib.gov.tr/dokuman/IPLogImzalayiciSetup3.0.exe adresinden ulaşabilirsiniz. Fakat tutulması istenen bu loglar maalesef IPv4 yetersizlikleri nedeni ile yeterli değildir. Durum bu olunca içerde bulunan her kullanıcının anlık olarak hangi zaman biriminde hangi adrese gittiğini kayıt altına almalı ve bunu zaman mührü ile mühürlemeliyiz.

Örnek Log Kayıtları; Quedra L-MON Programı örnek alıntısıdır.

IP Dağıtım Logları;

 

image004

İç IP erişim LOG ları;



image005

Sistem Yöneticisi İçin FQDN Logları;



image006

Kaydı tutulmakta olan LOG lardan anlaşılacağı gibi bir bilgi işlemci sisteminde bulunan MAC adreslerinin hangi zaman biriminde hangi IP adresini kullandığını ve bu IP adresi ile nerelere erişim sağladığının kayıtlarını tutarak bunları zaman damgası ile değiştirilemez şekilde kayıt altına almalıdır. Tabi hali hazırda maalesef sadece bu bizi kurtarmamaktadır.

Bahsi geçen MAC adresleri sistemde sabitlenmeli, MAC adresini ya da IP adresini değiştiren kullanıcıların Internet çıkışları yasaklanmalıdır. Durum bu olunca sistemde bulunan internet çıkış cihazının MAC bazında IP Bind yapabilmesi şartı gelmektedir. Tabi internetin tarafımıza kullanımı dışında sistemde başka birinin kullanması durumunda internet servis sağlayıcı durumuna düştüğümüzü bu nedenle misafirlerimizin de kullanıcı adı şifre ya da 802.1x gibi sertifika bazlı sistemler olmadan sistemimize dahil edilmemesi edilse dahi birçok şeyin kısılarak bize zarar verebilecekleri bir işlem yapmalarının önüne geçilmelidir. Bu durumda internet çıkış cihazında DNS Proxy işlemi yapılabilmeli kullanıcılar mutlak suretle devletin DNS adreslerini kullanmaya mecbur bırakılmalı, Devlet tarafından yasaklanmış içeriklere gidişler kesilmelidir.

DrayTek 2820 cihazı ile MAC listesi oluşturma;

 

image007

DrayTek 2820 cihazı ile firewall kurallarında kullanmak üzere MAC-IP Objesi oluşturma;

image008

DrayTek 2820 cihazı ile 802.1x radius yönlendirme yapılması;
 

image009

 
 
 

Şu ana kadar yasayı anladık, NAT sistemlerini sorunları ve yapılması gereken daha birçok şeyi anlamış olduk. Peki artık bir LOG lama programımız var gerekli işlemleri ve LOG ları üretebileceğimiz bir Internet çıkış cihazımız var peki bunlar yeterli midir?
 
 
 
Yeterli olmasını isterdik lakin değil. Bilindiği gibi ülkemizde ıslak imza olmadan yapılan tüm işlemler geçersizdir. Durum bu olunca MAC ve IP adreslerini sabitlediğimiz ve kayıtlarını tutuğumuz kullanıcılardan da bunun için alttakine benzer bir dokümanı imzalamalarını ve personel birimine bu dokümanı işe giriş sözleşmesine eklemlerini talep etmekteyiz.
 
 
 
 
 
“ ………………………………… MAC adresi ………………………………… IP adresi ………………………………………….. adlı ben çalışmakta olduğum …………………………………….. firmasınca iş amaçlı iletişim amacı ile sağlanmış olan internet bağlantısı üzerinden bahsi geçen MAC ve IP adresli iletişim cihazını kullanarak yaptığım internet ulaşım işlemlerini kabul ederim. Yaptığım tüm işlemlerin iletişim hakkı çerçevesinde tarafıma bu yazı ile bildirilmesi ile peşinen kayıt altına alındığını kabul eder ve bu şartlar altında kullandığımı beyan ederim.
 
IMZA
 

  
 
 
Tabi bu yazı kuruma ve duruma göre değiştirilebilir. Yukarıda bir çok konudan bahsettik, bunları alttaki çerçevede özetleyerek kafa karışıklıklarını gidermek isterim.
 
 
 
1.       Sigorta kayıtlı ve birimi Bilgi İşlem departmanı olarak görünen her personel firmanın dış IP adresi ile yapılmış her bağlantı ve işlemden mesuldür. ( Yasa IP sahibi ve Mesul Kişileri kapsamaktadır. )
 
2.       Bilgi işle departmanı olarak ilgili yasa hakkında kurumunuzu ya da çalıştığını iş yerini uyarmakla mükellefsinizdir.
 
3.       2 Maddede bahsi geçen uyarma ve gerekli yatırımların yapılması konusunda firmayı yönlendirmemeniz ya da yönlendirdiğinizi yazılı ispatı olmaması durumunda asıl suçlu konumundasınız.
 
4.       Yasa için yapılan loglamanın içerik değil ulaşım LOG laması olduğunu unutmayınız, içerik loglaması iletişim haklarında kullanıcıdan habersiz ya da şahsına, durum ve pozisyonuna zarar verebilecek durumda ise bu suçtur, vermese de ispatı halinde suçtur.
 
5.       Yargıç önünde demiştim, söylemiştim, kelimeleri yazılı ya da görsel bir kayıt olmadığı sürece geçersizdir. Yatırımlar konusunda firmayı yönlendirdiğiniz ya da bilgilendirdiğinize dair yazılı ya da görsel kayıt bulundurmalısınız.
 
 
 
 
 
Evet aslında kişilik haklarını korumak amacı ile çıkartılmış olan bu yasa bir anda biz bilgi işlem danışmanlarını / çalışanlarını paranoyak yapma seviyesine gelmiştir. Piyasadan bir çok arkadaşımdan biliyorum direk olarak interneti kesme yoluna dahi gidilmiştir fakat bu bir çözüm değildir ve uygun koşullar ve cihazlar ile bu sorumluluktan rahatlıkla kurtulup asıl suçlunun teşhis ve tespiti çok kısa sürede yapılabilir.
 

SSL ve TLS Sertifika Oluşturulması

$
0
0

İnternet doğası gereği karşımızdakinin doğru kişi olup olmadığını hatta karşımızda olup olmadığını dahi bilemeyeceğiz bir yapıda gelişmiştir. İnternetin gelişimi ile bilgi birikiminin gelişiminin aynı hızla ilerlememekte, ilerleyememektedir. Bu sebeple birçok suiistimal ile karşılaşılmaktadır. Saldırganların iştahını en çok kabartan suiistimal yöntemlerinden biri de son kullanıcının farkında olmadan başka bir web sitesine yönlendirilmesidir.

 

Peki, gerçekten girmeye çalıştığımız web sitesinin aslında erişmek istediğimiz site olduğundan nasıl emin olabiliriz? Burada devreye sertifika kavramı girmektedir. Sertifika ile kimlik doğrulama işlemi yapılır. Web sitesi kendisi son kullanıcıya tanıtır. Kimlik doğrulama sağlandıktan sonra verinin şifreli iletilmesi süreci başlar. En basit anlamıyla, Sertifika kişinin açık anahtarının yetkili bir sertifika otoritesi tarafından imzalanmış halidir denilebilir.

 

Sertifika otoritelerini (Certification Authority-CA), kurumların ve kişilerin gerçek manada o kurum/kişi olduklarını onaylayan üst kurumlar olarak tanımlayabiliriz. CA sertifika başvurusunda bulunan kişi/kurumun gerçekten o kişi/kurum olduğunu garanti eder. Sertifika onaylarını, kayıt otoritesi (Registration Authority-RA) olarak adlandırılan yerel kurumlar aracılığı ile yapabiliriz. Bu kurumlara yapılan sertifika taleplerinde şu adımlar izlenir;

 

·         Sertifika İmzalama isteği oluşturulması

·         Sertifika talebinde bulunulması

·         Kurum bilgilerinin doğrulanması

 

 

1 - Sertifika İmzalama isteği oluşturulması(Certificate Signing Request-CSR)

 

Sertifika talebinde bulunacak olan kurumun sunucusuna uygun bir anahtar çifti oluşturması gerekmektedir. CSR dosyasını herhangi bir web sunucuda oluşturabiliriz.

 

IIS yüklü bir sunucuda CSR oluşturulması

 

Microsoft Yönetim Konsolu (mmc) ‘den Internet Information Services (IIS) Manager açılır.

 

 

image001

 

 

image002

 

 

image003

 

 

Bu adımda Web Sitesi ismi örnek olarak Default Web Site verilmiştir.

 

 

image004

 

 

Properties denilerek Directory Security sekmesine geçilir. Burada Secure Communications altında Server Certificate seçilir.

 

 

image005

 

 

Sihirbaz başlatılır.

 

 

image006

 

 

Create a new certificate denilerek devam edilir.

 

 

image007

 

 

image008

 

 

Name alanı sertifikada görülen "Friendly name" bölümüdür. Bu alana sertifikanın kullanacağını alan adı girilir. Sertifika uzunluğu seçilir. Sertifika otoriteleri bu değerin 2048 bit olacak şekilde girilmesini şart tutmaya başlamışlardır.

 

 

image009

 

 

Bu adımda girilecek parametreler RA tarafından kontrol edilecektir. Bu alanların doldurulması sırasında Türkçe karakterler kullanılmamalı ve girilen kurum adı bilgisi domaine ait WHOIS bilgileri ile aynı olmalıdır.

Organization: Kurumun ticari unvanı

Organization Unit: Departman

 

 

image010

 

 

Common Name: Kullanılmak istenilen domain adresi

 

 

image011

 

 

Country/Region: Ülke kodu (TR)

State/Province: İl

City/Locality: İlçe

 

 

image012

 

 

CSR dosyası RA’ya gönderilecek şekilde hazırlanmıştır;

 

 

image013

 

 

image014

 

 

2 - Sertifika Talebinde Bulunulması

 

Üretilen CSR ile sertifika talebinde bulunulur. CSR’ın RA’ ya iletilmesi ile birlikte bir başvuru formu doldurulması gerekmektedir. Bu formda teknik sorumlu kişinin iletişim bilgileri ve fatura/kurum bilgileri yer alır. Kurum içerisindeki yetkili yöneticinin onayı ile RA’ya bu form gönderilir. Yönetici onayında CA tarafından sunulan abonelik anlaşmasının okunup, onaylandığı taahhüt edilir. Talep formuyla birlikte aşağıdaki belgeler RA’ya iletilir:

 

·         Kurumsal sicil kaydı (özel şirketler için ticari sicil gazetesi) fotokopisi

·         Kurum yetkilisine/yetkililerine ait imza sirkülerinin fotokopisi

·         Sunucu (SSL) sertifikasının bedelinin ödendiğine dair banka dekontu

·         Kurumun, sunucuya ait alan adına sahipliğini gösterir belgenin örneği

 

Bu mekanizma onaycı kurumlar arasında işleyiş sırası olarak farklılık gösterebilir. Bazı kurumlar başvuru için talep yazısı istemekte, ardından CSR ile başvuru formunu istemektedir.

 

 

image015

 

 

3 - Kurum Bilgilerinin Doğrulanması

 

 

RA, kendisine iletilen belgeleri kontrol edip doğrulanmasının ardından gerekli bilgileri CA’ya gönderir. CA, başvuran kişi/kurumun Public Key' inin Hash’ ini alıp kendi Private Keyi ile şifreler (imzalar). Yani, dijital imza Public Key Hashi’nin CA’in Private Keyi ile şifrelenmesidir. CA, başvuruyu yapan kişi/kurumun Public Keyi ve ve bu Hash’i kullanarak sertifika üretir[1].

 

4- Sertifikanın Sunucuya Yüklenmesi

 

 

Microsoft Yönetim Konsolu (mmc) ‘den Internet Information Services (IIS) Manager açılır. Bu bölümde CSR oluşturmada ilerlenen adımlar izlenir.

Default Web Site üzerinde Properties denilerek Directory Security sekmesine geçilir. Burada Secure Communications altında Server Certificate seçilir.

 

 

image016

 

 

Sihirbaz başlatılır.

 

 

image017

 

 

Process the Pending Request and Install the Certificate seçilerek devam edilir.

 

 

image018

 

 

 

CA tarafından teknik sorumluya ulaştırılan sertifika seçilerek yükleme işlemi tamamlanır.

 

 

image019

 

 

5- Sertifika Temininin Ardından Yapılması Gereken Adımlar

 

 

Üretilen sertifika RA tarafından teknik sorumlu kişi ile paylaşılıp yüklenmesinin ardından teknik sorumlu bu adımda sertifikayı yedeklemeli ve güvenli bir harici depolama ortamında saklanmalıdır.

 

IIS yüklü bir sunucuda sertifikanın yedeklenmesi

Microsoft Yönetim Konsolu (mmc) ‘den Certificates açılır.

 

 

image020

 

 

Computer Account seçilir.

 

 

image021

 

 

Local Computer seçilerek işlem tamamlanır

 

 

image022

 

 

“Add/Remove Snap-in” penceresini kapatmamızın ardından Console Root" altında, Certificates (Local Computer)">Personal>Certificates" da sertifikayı görebiliriz.

 

 

image023

 

 

All Tasks>Export denilir;

 

 

image024

 

Sihirbaz başlatılır;

 

 

image025

 

 

Private key ile birlikte export edilir;

 

 

image026

 

 

Include all certificates in the certification path if possible" ve "Enable strong protection” seçilerek devam edilir.

 

 

image027

 

 

Sertifika dosyasını güvenli olarak saklamak için bir şifre girilir. Bu şifre import edilme işlemi sırasında sorulacaktır.

 

 

image028

 

 

Yedek dosyasına isim verilerek işlem tamamlanır.

 

 

image029

 

 

image030

 

 

Bu yedek dosyası kullanılmak istenildiğinde import edilmesi yeterli olacaktır. Gerekli root sertifikalar ve private-public key bu dosya içerisindedir.

Juniper Netscreen Firewall Pentest - Hacking

$
0
0
Bu yazımda JTR(John The Ripper) kullanarak netscreen firewall'u üzerindeki hash'li şifrenin nasıl kırılabileceğini anlatacağım. Güvenlik cihazına bir şekilde sızıldığını varsıyorum. Read only veya herhangi bir kısıtlı hesap ile erişmiş olduğumuz cihazdan öncelikle hash'li parolayı almalıyız. Ben bu hash'in, Read only bir hesap ile NSM(Network and Security Manager) üzerinden nasıl alınabileceğini anlatacağım. Daha sonra JTR ile kırma işlemini anlatırken ise kullanacağımız hash'li kullanıcı bilgilerini(kullanıcıadı/şifre) yine JTR üzerinden oluşturacağım. Siz cihaz üzerinden aldığınız hash'i de aynı yöntemle kırabilirsiniz.

 

 

NSM(Network and Security Manager),birden fazla netscreen güvenlik cihazının tek bir elden yönetilebilmesini sağlayan bir programdır. NSM üzerinden cihaza bir şekilde Read only erişim yaptıktan sonra, aşağıdaki menülerden get config komutu ile cihaz üzerindeki kullanıcılara ait kullanıcıadı ve hashli şifre bilgisini alabilirsiniz.

 

Configure/Devices menüsünden ilgili cihaz seçilip, cihaz üzerine sağ click yapılarak Troubleshoot menüsünden komut koşturulucak arayüze aşağıdaki gibi ulaşılabilir.

 

 

 

image001

 

 

Bu arayüzde aşağıda görebileceğiniz ve yetkiniz dâhilinde set ve get komutları koşturulabilir. Sol menüdeki hazır komutlar seçilerek veya netscreen komutlarına hâkimseniz farklı komutlar verilerek execute command demeniz yeterli. Get config komutu ile cihaz üzerindeki kullanıcı bilgileri dahil tüm konfigrasyon alınabilir.Read only bir hesap ile NSM'e eriştiyseniz yalnızca get komutlarını koşturabileceksiniz buda sizin hash bilgisini almanıza yetecektir zaten.

 

 

 

image002

 

 

Bir netscreen firewall'u üzerinde komut satırından veya NSM üzerinden get config komutu koşturulduğunda aşağıdaki gibi bir çıktı ile karşılaşacaksınız. Bu bilgileri kullanacağız. Buradaki bilgiler ile boşu(boşu)na uğraşmayın bu arada :)

 

 

 

image003

 

 

 

Biz şifre kırma çalışmamızda JTR üzerinden oluşturduğumuz hash'i kullanacağız. Öncelikle gerçek bir netscreen ürününün kullandığı özel hash algoritması(NS MD5) ile aynı algoritmayı kullanarak hash'lenmiş şifreye sahip bir örnek kullanıcı hesabı oluşturacağız.Bu hesap gerçek bir netscreen ürününün verdiği çıktıyı elde etmek için oluşturulacaktır.Bu özel kulanıcı hesabımızı(kullanıcıadı/şifre) JTR desteği ile nasıl oluşturulabileceğini ve ardından nasıl kırılabileceğini anlatmaya başlayalım.

 

 

Backtrack işletim sistemi üzerinde, öncelikle john komutunu koşturuyoruz.Böylece sistem bizi ilgili dizine gönderiyor.

 

 

 

image004

 

 

Daha sonra netscreen ürünlerinin kullandığı hashing algoritması(NS MD5) ile aynı algoritmayı kullanıp bir user account oluşturalım. Bunun için python dilinde yazılmış netscreen.py scriptini kullanıyoruz.

Aşağıdaki örneğimizde deneme kullanıcı adına ve password parolasına sahip bir user account oluşturduk. Parolamız netscreen ile aynı algoritma ile şifrelenecektir."$ " işaretinden sonraki "n" , ve satır sonundaki "n" karakterleri netscreen hashing algoritması kullanıldığını gösteriyor.Burada "$" işaretinden öncesi kullanıcı adı bilgisini, sonrası ise kullanıcının password hash bilgisini verir.

 

 

 

image005

 

 

Netscreen firewall'u üzerinde gerek CLI(Command Line Interface) gerekse NSM üzerinden(yukarıda anlattığım gibi) get config komutu ile gerekli account bilgileri(username ve password hash) alınabilir. Burada oluşturduğumuz account bilgilerini bir text dosyasına (netscreenhack.txt ) kopyalayalım.

 

 

Text dosyasını touch komutu ile oluşturuyoruz.

 

 

image006

 

 


Şimdi text dosyamıza yukarıda oluşturduğumuz(veya netscreen cihaz üzerinden alacağınız) username ve password hash'ini kopyalayalım. Bunun için vi editörünü kullandık.

 

 

 

image007

 

 

Şimdi vereceğimiz komut ile JTR, password.lst dosyasındaki tüm kelimeleri netscreen hashing algoritması ile hashleyip daha sonra tek tek bizim oluşturduğumuz netscreen.txt içerisindeki hash ile aynı hash olup olmadığını kıyaslayacaktır.Eğer eşleşmeyi sağlayabilirse(bunun için güçlü bir word list verilmeli), bize kullanıcı ve parola bilgisini aşağıdaki gibi verecektir.

 

 

 

image008

 

 

 

Örneğimizi, deneme kullanıcı adına sahip bir kullanıcının password isimli şifresini kırarak anlatmaya çalıştım. Bu herhangi bir netscreen ürünü üzerinden alınan kayıt içinde yapılıp netscreen ürününün üzerindeki kullanıcıların hesapları kırılabilir. En büyük avantajı ise bu işlemi offline olarak gerçekleştirebiliyor olmamız.


Bu arada wordlist içersindeki her kelimenin hash'inin alınıp karşılaştırması işleminden dolayı işlem biraz uzun sürebilir. Bu işlemin daha hızlı gerçekleştirmesini isterseniz internet üzerinden rainbow table olarak adlandırılan hazır hash'ler bulunarak bunlar ile de crack işlemi gerçekleştirilebilir.

 

Çıktıdan da görüleceği üzere burada kullanılan hashing algoritması özel bir MD5(NS MD5) hashing algoritmasıdır.

 

Alias ve Bash Scripting ile Syn Flood ve Http Get Flood Saldırılarının Tespit Edilmesi

$
0
0

 

 

Alias, Linux işletim sistemlerinde kendi girdiğiniz kelimeyle komut satırında istediğiniz komutu çalıştırmanıza yarayan oldukça hoş bir Linux komutudur. Kendi komutunuzu oluşturmanıza izin veriyor. Mesela her gün girmeniz gereken uzunca bir komut var ama bunu her gün yazmak istemiyorsunuz. Bunu yazacağınız tek kelime ve ardından enter ile halledebilirsiniz. Yine aynı işlemi fonksiyon yazarak da gerçekleştirebilirsiniz. Örneklerle konuya açıklamaya ve daha sonra güvenlik tarafında nasıl kullanılabileceğine değineceğim.

 

 

Program kurulumu:

 

Her seferinde program kurmak için sudo apt-get Install programadi şeklinde bir komut yazmak yerine kur programadi şeklinde bir komut girmek isteyebilirsiniz. Bunun için şöyle bir alias tanımlayabilirsiniz.

 

 

 

image001

 

 

 

Şimdi snort kurmak istiyorsanız gireceğiniz komut aşağıdaki gibi:

 

 

 

image002

 

 


Aynı işlemi shell fonksiyon yazarak oluşturalım:

 

 

 

image003

 

 

 

Browser ile gezinme:

 

Networkpentest.net web sitesine girmek istiyorsunuz, komut satırından "pentest" demeniz yeterli olacaktır. Bunun için yazılacak alias aşağıdaki gibidir.

 

 

 

image004

 

 

 

Şimdi siteye gitmek istiyorsanız yapacağınız komut satırına pentest yazmak.

 

 

image005

 

 

 

Aşağıda görüldüğü gibi istediğimiz sayfa browserda açılacaktır.

 

 

 

image006

 

 

 

Şimdi aynı işlemi bir shell fonksiyonu oluşturarak yapalım;

 

 

 

image007

 

 

 

SYN Flood Tespiti:

 

 

Biz olaya güvenlik tarafından yaklaşalım. Syn flood saldırısı alıp almadığınızı test etmek için "netstat -ant | grep SYN_RECV" komutunun yerine komut satırına "saldırıvarmı" yazıp sonuçlarını görebilirsiniz.

 

 

 

image008

 

 

 

Bundan sonra komut satırında saldirivarmi yazıp sonuçlarını görebilirsiniz. Bizde herhangi bir Syn flood atağı olmadığı için sonuç temizdir :) Aksi halde birçok SYN_RECV paketi ile karışılacaktık.

 

 

 

image009

 

 


Şimdi aynı komutumuzu bu sefer shell fonksiyon yazarak oluşturalım:

 

 

 

image010

 

 

 

Syn Trafik Kaydı:

 


Şimdi de saldırı anında paket analizi için kullanabileceğimiz küçük bir örnek olan, sunucumuz üzerindeki tüm gelen giden SYN paketlerini tcpdump ile yakalayıp networkpentest dosyasına kaydeden komutu alias ile oluşturalım, alias' ın ismine de synyakala diyelim.

 

 

 

image011

 

 

 

Şimdi de komutu koşturalım;

 

 

 

image012

 

 

 

Aynı işlemi şimdi shell fonksiyonu yazarak oluşturalım:

 

 

 

image013

 

 

 

NOT:

 

tcp[13]=2 Syn paketlerini yakalayabilmek için kullandık diğer paketler için şunlar kullanılabilir.

tcp[13]=1 ==>> Fin için

tcp[13]=4 == >> Rst için

tcp[13]=8 ==>> Psh için

tcp[13]=16 ==>>Ack için

tcp[13]=32 ==>>Urg için

tcp[13]=18 ==>> SYN + ACK

tcp[13]=6 ==>> SYN + RST kullanılabilir.

 

 

HTTP GET Flood Tespiti:

 

 

Http GET flood saldırısı aldığımızı düşünelim. Sistemimize gelen http get isteklerini ve hangi hosttan geldiğini tespit eden bir alias oluşturup httpgetyakala ismi ile çağıralım.

 

 

 

image014

 

 

 

Sonuçlarına bakalım;

 

 

 

image015

 

 

 

Aynı komutumuzu bir shell fonksiyon yazarak çağıralım:

 

 

 

image016

 

 

 

Tüm sisteminiz üzerindeki mevcut oluşturulmuş alias'ları görebilmek için alias -p komutu aşağıdaki gibi girilebilir.

 

 

 

image017

 

 

 

İstediğiniz herhangi bir mevcut alias'ı silmek için unalias isim şeklinde bir komut koşturulabilir.

 

 

 

image018

 

 

 

Görüleceği gibi aşağıda saldirivarmi aliasımız artık yok.

 

 

 

image019

 

 

 

İşin alias kısmı oldukça kolay ve kullanışlı. Shell function kısmı ise programlama dilleri seviyesinde derinleştirilebilir. Komplex uygulamalar oluşturulabilir. Ben yüzeysel olarak konu için önemli kısmı üzerinde durdum.

Shell fonksiyon oluşturma işlemlerini bir text editörü aracılığı ile açılan bir dosyada da yazabiliriz. Daha sonra yazdığımız script ile aynı dizinde olmak şartı ile ./komut şeklinde çalıştırıp çıktıyı görebiliriz. Bizim komutlarımız bash script üzerinde yorumlanmaktadır. Diğer programlama dilleri(Pyhton,perl,awk v.s) scriptlerimizi de bu şekilde çalıştırabiliriz.

 

 

Bu komut oluşturma işlemleri, nerede işimize yarıyabilir? Özellikle saldırı alınan durumlarda, zaman bizim için oldukça kıymetli olacaktır. Gerekli tetkikleri, alınacak network paket kayıtları veya aktif edilecek snort imzaları vs. birçok işlem için bize zaman kazandırabilecektir. Ayrıca komut satırından girilecek tüm komutları Türkçeleştirebilirsiniz. Veya yapılması tehlikeli olan remove komutları vs.(rm -rf) şeklinde yanlışlıkla silinebilecek komutlar girildiğinde bunlar rm -i şeklinde icra edilmesi ve yapılacak işlem için bize onay verdirilmesi sağlanabilir.

 

 

Bundan sonrası hayal gücünüze kalmış :)

Metasploit ile Ssh Bruteforce Attack

$
0
0

Metasploit aracı hackerlar ve pentest uzmanları tarafından en sık başvurulan araçların başında gelmektedir. Sistemler üzerinde zafiyet bulmada veya bulunmuş zafiyetleri exploit etmede kullanılır. Amaç hedef sistemler üzerinde root yetkilerinde erişim kazanmaktır. Metasploit framework' ü, zafiyet tespit aracı olan Nessus çıktılarını da destekleyen en gelişmiş vulnerability exploiting aracıdır.

 

Bu yazımda, Ssh server çalışan sistemlere yönelik bruteforce attack için metasploit kullanımını anlatacağım. Bilindiği gibi bu tarz pentest çalışmalarını yapan medusa ve hydra gibi araçlarda oldukça başarılıdır. Bu araçlar bir başka yazıma bırakıp metasploit ile devam etmek istiyorum.


Metasploit exploiting aracı Backtrack üzerinde kurulu olarak gelmektedir. Öncelikle aşağıdaki şekilde metasploiti başlatalım.

 

 

 

image001

 

 

 

image002

 

 


Programı başlatırken /pentest/exploits/framework3 dizinine girip ./msfconsole komutu ile de başlatabiliriz.

 

 

 

image003

 

 

 

Şimdi ssh bruteforce için kullanacağımız ssh modülü altındaki ssh_login scriptini kullanacağımızı belirtelim.

 

 


image004

 

 

 

image005

 

 

 

İnfo komutu ile bu script hakkında bilgi edinebiliriz. Burada hangi parametrelerin ne işe yaradığı detaylı bir şekilde açıklanmıştır. Aynı amaç için show options komutu da koşturulabilir.

 

 

 

image006

 

 


Şimdi Ssh bruteforce saldırısı gerçekleştireceğimiz sistemleri, kullanılacak username ve parola listesini belirtelim. set RHOST komutu ile hedef sunucu veya sunucular belirlenir. Eğer bir subnet belirtilecek ise 192.168.2.0/24 şeklinde kullanılabilir. USER_FILE ve PASS_FILE ile username ve parolaların belirtilen dosyalardan alınması sağlandı. Burada PASSWORD ve USERNAME kullanılarak yalnızca belli bir kullanıcı adı ve şifre ile de test yapılabilirdi.

 

 

 

image007

 

 

 

Şimdi artık bruteforce saldırımızı başlatabiliriz. Exploit’i çalıştırmak için exploit veya run komutlarından herhangi biri kullanılabilir. Her ikisi de aynı işlevi gerçekleştirecektir. Biz exploit komutunu verdik ve aşağıda göreceğiniz üzere tüm kullanıcıadı-parola çiftleri deneniyor.

 

 

 

image008

 

 


USER_FILE olarak belirttiğimiz user dosyasındaki tüm kullanıcı isimleri, PASSWORD_FILE olarak belirttiğimiz pass dosyasındaki tüm şifrelerle eşleştirilip login olma isteğinde bulunuluyor. Bu arada ssh server kurulu sistem üzerinde login sınırlaması varsa metasploit buna takılmadan denemelerine devam edebiliyor. Bu da güzel bir özelliktir. Metasploit başarılı bir şekilde bulduğu kullanıcı adı ve şifre ile sistemde bir session açıyor. Başarılı bulduğu kullanıcı adı şifre aşağıdaki gibidir.

 

 

 

image009

 

 


Şimdi mevcut sistem üzerinde session açılmış mı ona bakalım. Tüm sessionları listelemek için sessions komutunu vermek yeterli.

 

 

 

image010

 

 

 

Session ID 1 olan bizim kırdığımız sistem üzerinde oluşturulan session' dır. Şimdi sıra ile uzak sistem üzerinde şu işlemleri yapalım:

 

session -i 1 komutu ile uzak sistemin komut satırını alalım

ifconfig ile ele geçirdiğimiz sistemin IP'sinin geldiğini görelim

ls -la /etc/passwd ile /etc/passwd dosyasının erişim bilgilerini görelim

uname -a ile sistem bilgisinide alalım.

 

 

 

image011

 


Bir sonraki makalemizde görüşmek üzere.

 


Metasploit Meterpreter Uygulamaları

$
0
0

 

Öcelikle Metasploit hakkında biraz bilgi verdikten sonra, Metasploit projesinin en önemli parçası olan Metasploit Framework’ünü kullanarak uzak sistemler üzerinde pentest amaçlı nasıl işlemler gerçekleştirilebileceğini örnekler ile anlatacağım.

 

 

Open source bir araç olan Metasploit , Perl programlama dilinde yazılmaya başlanmış fakat daha sonra Ruby dili ile sil baştan tekrar geliştirilmiş bir zafiyet tesbit ve exploit aracıdır.Hackerlar,antivürüs geliştiricileri ve pentest uzmanlarının olmazsa olmaz araçlarının başında gelmektedir. Metasploit, set edilen payloadların encode edilerek sistemlere gönderilebilme özelliği ile IPS/IDS gibi saldırı tespit ve engelleme sistemlerini atlatarak,Antivirüs ve personal firewallara takılmadan uzak sistemler üzerinde çalıştırabilme özelliğine de sahiptir.

 

 

Metasploit ile çalışmak için temel olarak şu 3 adım gerçekleştirilmelidir:

 

 

·         Hedef sistem işletim sistemi üzerinde çalışacak uygun exploitin tesbiti ve gerekli konfigrasyonunun yapılması

·         Uygun payload’un belirlenmesi ve konfigrasyonunun yapılması

·         Exploit işleminin gerçekleştirilmesi.

 

 

 

Meterpreter ise, Metasploit Frameworkü’nün sahip olduğu bir çok payloaddan yalnızca biridir. Komplex bir yapısı olmasına rağmen en yararlı payload olduğu kanaatindeyim . Genellikle uzak sistemler üzerinde download ve upload işlemleri ve uzak sistemlerin ekranlarını VNC gibi kontrol sistemleri ile kontrol etmek için kullanılır.Fakat tabi ki meterpreterin yetenekleri bunlarla sınırlı değildir.Aşağıda meterpreter ile yapılabilecek bir çok çalışmanın nasıl yapılabileceğine değindim. Ayrıca daha iyi anlaşılması ve ne ile karşılaşılacağının görülebilmesi açısından verilen komutların, çıktılarını da makaleye ekledim.

 

 

Biz tüm makalemiz boyunca psexec exploitini ve meterpreter payloadunu kullanacağız.Psecec exploitini sistemi ele geçirmek için meterpreter payloadunu ise ele geçirilen uzak sistem üzerinde kontroller ve önemli bilgilerin ele geçirilmesi için kullanacağız. Psexec exploiti, Windows işletim sistemine sahip uzak bir sistem üzerinde bilinen bir kullanıcı adı ve şifre ile oturum açma işlemini gerçekleştirmektedir.Bunun için 445 SMB portunun açık olması gerekmektedir.

 

 

Bu kadar bilgininin ardından vakit işe koyulma vakti : ) Şimdi metasploit frameworkünü consoldan çalıştırmak ile işe başlayalım. Bunun için aşağıdaki komutu sistemimize verelim.

 

 

 

image001

 

 

 

Metasploiti çalıştırdıktan sonra aşağıdaki gibi use komutu ile,belirtilen path’deki psexec exploitini kullanarak,uzak bir sisteme erişim sağlayamak istiyoruz. Psexec ile ilgili kullanılacak ve değer atanmış/atanacak parametreler show options komutu ile metospoloit üzerinde görülebilir. Aynı şekilde info ve show advanced komutları da aynı işi görecektir.

 

 

 

image002

 

 

 

Görüleceği üzere RHOST,SMBUser ve SMBPass parametrelerinin current setting kısımları şuan boş duruyor,bunlara gerekli değerleri atamalıyız.

 

 

Uzak bağlantı yapacağımız sunucunun IP'sini RHOST parametresine atıyoruz. Aynı şekilde SMBUser ile sistem üzerindeki bir accounta ait kullanıcı adı ve SMBPass parametresi ile de uzak sistem üzerinde aktif accounta ait parola bilgisini atıyoruz. Accountun hesap bilgilerinin nasıl ele geçirildiği bu yazımın konusu olmadığı için oralara değinmiyorum.

 

 

 

image003

 

 

 

İlgili parametrelere değerleri belirtildikten sonra sıra bu exploiti çalıştırmaya geldi. Exploit komutu ile psexec exploitini çalıştırıyoruz. Run komutu da exploit komutu yerine aynı amaç için kullanılabilirdi.

 

 

Not: Metasploitde bir exploit kullanılmak isteniyorsa use komutundan sonra exploitin path’ini belirtmemiz ve daha sonra uygun parametreler ile gerekli ayarları yapmamız yeterlidir. Exploiti çalıştırmak için ise run veya exploit komutlarının biri koşturulmalıdır.

 

 

 

image004

 

 

 

Evet artık meterpreter satırına kavuştuk. Farkettiyseniz yukarıda payload set etmedik.Bunun sebebi psexec zaten bizim yerimize meterpreter payload’unu uzak sisteme uploat etti.Fakat bunu yaparken default olarak 4444 local portunu kullandı.Bu ve bazı default değerleri manuel girmek isterseniz payload’u set etmek için set PAYLOAD windows/meterpreter/reverse_tcp şeklinde bir komut verdikten sonra yukarıda yaptığımız gibi LHOST,LPORT v.s gibi parametrelere değerleri atamanız gerekecektir. Bundan sonra bir sonraki adıma geçebilirsiniz.

 

 

Bundan sonrası uzak sistem üzerindeki atraksiyonlardan oluşan oldukça zevkli bir bölüm.Şimdide uzak sistem üzerindeki networksel ( interfaceler ,IP,Netmask , Gateway v.s) ayarları görmek için ipconfig –a komutunu koşturmakla işe başlayalım.

 

 

image005

 

 

 

Meterpreter ile uzak sistem üzerinde sysinfo komutu ile uzak sistem üzerindeki sistem bilgilerini özetle alabilirsiniz.

 

 

 

image006

 

 

 

Sistem üzerinde hangi yetkilerde erişim yaptığınızı görebilmek için getuid komutu koşturulabilir.Görüldüğü üzere System yetkilerinde erişim sağlanmış görünüyoruz.

 

 

 

image007

 

Getpid komutu ile ise mevcut sistem PID değeri alınabilir.

 

image008

 

 

 

Uzak sistem üzerinde etkin Process privilegets görebilmek için getprivs komutu koşturulabilir.

 

 

 

image009

 

 

 

Uzak sistem üzerinde herhangi bir komut çalıştırmak istiyorsak bunu execute komutu ile gerçekleştirebiliriz. Basit kullanımı aşağıdaki gibidir.

 

 

 

image010

 

 

 

Uzak sistemde bu komutla aynı anda aşağıdaki gibi bir ekran görüntüsü alacaktır.

 

 

 

image011

 

 

 

Burada iletiyi görüntüle derseniz , başlat/çalıştıra "cmd" yazmışsınız gibi bir adet komut satırı görüntüleyecektir .Bu da komutun uzaktan sistemimiz de çalıştırılabildiğini bize gösteriyor.

 

 

Execute komutunu biraz daha profesyonel kullanıp aşağıdaki gibi uzak sistem üzerinde komut koşturulup ve çıktısının yani komut satırının bizim ekranımızda görüntülenmesi ve buradan çalışmalar yapılabilmesini sağlayalım.

 

 

 

image012

 

 

 

Görüldüğü üzere uzak sistemde execute komutu bir komut koşturarak mevcut sistemin command promtunu elde ettik.Aynı işlemi shell komutu verilerek de yapılabilirdi.

 

 

Uzak sistemdeki Event logları silmek için aşağıdaki komut koşturulabilir.

 

 

image013

 

 

 

Veya mevcut tüm event loglarının silinmesi için aşağıdaki komutu da kullanabiliriz.Aşağıdada görüleceği üzere çeşitli kategorilerdeki(application,hardware event,internet explorer,key management service,event log media center,Odiag ,Security v.s) tüm event loglarını silmektedir.Bu da bir pentestçinin veya hackerların sistemlere sızdıktan sonraki son aşamalarından olan Clear track aşamasındaki izlerin silinmesi için kullanılabilir.

 

 

 

image014

 

 

 

Meterpreter ile uzak sistemin mevcut masaüstü görüntüsünün bir screenshotu kolaylıkla alınabilir.Bu işlem için screenshot komutu bizim işimizi görecektir.Kullanımı aşağıdaki gibidir.

 

 

image015

 

 

 

-p ile kaydedilmesi gereken path bilgisini belirtiyoruz ve -q ile jpeg resmimizin kalite değerini giriyoruz. Kaydettiğimiz uzak makinanın screenshot görüntüsü ise aşağıdaki gibi olacaktır.

 

 

 

image016

 

 

 

Meterpreter ile ele geçirilen uzak sistemler üzerinde etkin olan mikrofonun kontrolü kolaylıkla ele geçirilebilir.Mevcut ortam dinlemesi yapılabilir.Buna örnek olarak uzak sistemdeki mikrofondan bir dakikalık sesin nasıl kaydedilebileceğini gösterdim.

 

 

 

image017

 

 

 

-d parametresi ile kaç saniye kayıt yapılacağını belirttik ve -f ile ise yapılan kaydın hangi isimde nereye kaydedileceğini belirttik.

 

 

 

image018

 

 

 

Görüldüğü gibi seskaydi.wav dosyamız root dizini altındadır.Herhangi bir wav oynatıcı programı ile kayıt dinlenebilir.

 

 

Sistem üzerindeki mevcut web kameraların belirlenmesi ve etkin olan kameradan belli bir miktar görüntü(snapshot) alınması için ise aşağıdaki gibi bir komut verilmelidir.Bizim sistemimizde kamera olmadığı için çıktısını göstermeden geçiyorum.

 

 

 

image019

 

 

 

 

Kameradan snapshot görüntü almak için ise aşağıdaki gibi komut koşturulabilir.

 

 

 

image020

 

 

 

Burada "-p /root/" görüntünün kaydedileceği path bilgisi, "-q 60" kaydın jpeg olarak kalitesini ifade eden bilgi, " -v false" ise kaydın komut durur durmaz otomatik olarak açılmaması için verilen parametre değeridir.

 

 

Uzak sistemdeki çalışılan dizin bilgisini öğrenmek için pwd komutu kullanılabilir.

 

 

 

image021

 

 

 

Uzak sistem üzerinde dizin değiştirmek için ise cd komutu kullanılabilir.

 

 

 

image022

 

 

 

Local sistemdeki çalıştığımız dizini öğrenmek için local pwd anlamında lpwd kullanılabilir.

 

 

 

image023

 

 

 

Yine local sistemde dizin değiştirmek için ise lcd komutu kullanılabilir.

 

 

 

image024

 

 

 

Sistemi keylogger ile adım adım izlemek için run keylogrecorder komutu verilebilir.Bu arada run, meterpreter scriptlerini çalıştırmak için kullanılan bir komuttur.Meterpreter scriptlerini /opt/framework/msf3/scripts/meterpreter altında bulabilirsiniz.Şimdi ele geçirdiğimiz sistemde keylogger çalıştıralım.

 

 

 

image025

 

 

 

Belirtilen dosyaya neler kaydedildiğine bakalım:

 

 

 

image026

 

 

 

Görüldüğü gibi klavyeden basılan her tuş kaydedilmiştir.Burada <Return> ile belirtilen enter tuşuna basılması durumudur. <Tab> isminden belli olduğu üzere tab tuşu ile bir geçiş yapıldığını göstermektedir.

 

 

Ele geçirilmiş sistem eğer windows ise bu sunucuyu enumurate etmenin en güzel yolu winenum.rb scriptini kullanmakdır.Bu meterpreter scripti kullanılarak bir çok windows komutunu aynı anda sistem üzerinde koşturulması ve bunun sonuçlarının bir dosyaya yazdırılması sağlanabilir.Komutun verilmesi,sistemde koşturulan komutlar ve sonuçların kaydedildiği dosya ile birlikte sonuçların belirtildiği ekran görüntüsü aşağıdaki gibidir:

 

 

 

image027 

image028 

image029

 

 

 

Yukarıda belirtilen text dosyasında belirtilen tüm komutların çıktısı görülebilir.Tek komutla sistem üzerinde bir çok konuda bilgi sahibi olunması açından çok değerli bir script.

 

 

Uzak sunucuya dosyayı veya tüm bir klasörü upload etmek için,upload komutu aşağıdaki gibi kullanılabilir.Yukarıda aldığımız ekran görüntüsünü(screen.jpg) uzak sistemin D:\hacked\ dizini altına upload edelim.

 

 

 

image030

 

 

 

Uzak sistemi kontrol edelim bakalım gerçekten screen.jpeg resmimiz başarılı bir şekilde upload edilmiş mi ?

 

 

 

image031

 

 

 

Görüldüğü üzere mevcut resmimiz D:\hacked dizini altına gelmiş.

 

 

Şimdi ise uzak sistemden bir dosyayı veya klasörü local sistemimize nasıl download edebiliriz ona bakalım.

 

 

 

image032

 

 

 

Şimdi de dosya bize ulaşmış mı kontrol edelim.

 

 

image033

 

 

 

Görüldüğü gibi white_list_ip.xls isimli dosyayı download ettik.Aynı yöntemle belli bir klasör ve altındaki tüm dosyaları da download edebilirsiniz.

 

 

Uzak sistem üzerinde çalışan tüm uygulamaların ve bu uygulamaların versiyon bilgilerini elde edebilmek için aşağıdaki meterpreter scripti kullanılabilir.

 

 

 

image034

 

 

 

Sistemdeki tüm uygulamaları ve bunların versiyonlarını tesbit eden oldukça hoş bir scripttir.Ben tüm sonuçlarını yukarıdaki ekran görüntüsünde göstermedim,fakat bu script sistemde ne var ne yok her programı versiyon bilgileri ile birlikte önümüze döküyor.

 

 

 

Uzak sisteme RDP yapmak için yeni bir account oluşturabilmek için aşağıdaki script kullanılabilir .Scripte parametre olarak verdiğimiz kullanıcı adı ve şifre ile artık uzak sisteme RDP bağlantısı da yapabiliriz.Mevcut bağlantıyı artık kullanmak istemediğinizde aşağıda belirtilen komut koşturulup oluşturulan account devre dışı bırakılabilir.

 

 

 

image035

 

 

 

Sistem üzerindeki tüm kullanıcıları ve bunların parolalarının hashlerinin ele geçirilmesi için aşağıdaki komut koşturulabilir.

 

 

 

image036

 

 

 

Burada dikkatten kaçmayan,ele geçirilen sistem üzerinde SysKey parolası aktif olmasına rağmen onun da hash bilgisini tesbit edebilmiş olması önemli.Bu özellikleri ile meterpretere aşık olmamak elde değil :)

 

 

Yukarıda görüldüğü üzere sistemdeki tüm kullanıcı adları ve şifrelerin hashli halleri dump edildi.Ele geçirilen bu NTLM hashleri JTR benzeri toollarla kırılarak şifrelerde ele geçirilebilir.Veya şifreye ihtiyaç duymadan mevcut kullanıcı adı ve şifrelerin hashli halleri ile de sistemlere login olunabilir.

 

 

Uzak sistemin host dosyasını zehirleyerek,bu sistem üzerinden internette çıkan kullanıcının gerçek DNS sunuculara gitmeden localdeki zehirlenen host dosyası ile isim çözümlemesine maruz bırakılıp, kullanıcıyı başka sahte sayfalara yönlendirilebilir. Bizim örneğimizde kullanıcı facebook.com sitesine gitmeye çalışırken cnn.com sitesine gidecektir.

Kötü amaçlı kullanımlarla phishing saldırıları ile account bilgileri veya bankacılık erişim bilgileri ele geçirilebilir.

 

 

Uygulamamıza öncelikle fakehost.txt isimli bir dosya oluşturup içerisine aşağıdaki gibi iki satırı ekleyerek başlayalım. Burada 157.166.224.25 IP'si cnn.com sitesine ait IP adresidir.Kullanıcının host dosyasını değiştirerek facebook yerine kullanıcının cnn web sitesine gitmesini sağlayalım.

 

 

 

image037

 

 

 

Şimdi de bu fakehost.txt dosyasının içeriğini uzak sistemdeki windows sunucunun host dosyasına inject edelim.Script öncelikle mevcut host dosyasının yedeğini alıyor daha sonra bizim verdiğimiz satırları host dosyasına ekliyor.

 

 

 

image038

 

 

 

Evet hepsi bu kadar.Şimdi ele geçirilen sunucuda facebook sayfasına login olmaya çalışalım bakalım ne ile karşılaşacağız.

 

 

image039

 

 

 

Görüldüğü üzere ele geçirilen uzak sistemin host dosyası başarı ile değiştirilmiştir ve kullanıcı facebook.com sitesine gitmek istediğinde bu domaine ait isim çözümlemesi DNS sunucudan önce host dosyası tarafından çözüldüğü ve host dosyasını da biz zehirlediğimiz için kullanıcı facebook.com yerine cnn.com web sitesine girmiştir.

 

 

Host dosyasının içeriği ise aşağıdaki gibidir.Host dosyasına C:\Windows\System32\drivers\etc\ dizininden erişebilirsiniz.

 

 

 

image040

 

 

 

Buradan da görüleceği üzere gerçekten host dosyası hostedit ismindeki meterpreter scripti ile değiştirilmiştir.

 

 

Meterpreter çoklu script çalıştırılmasına izin vermektedir.Bunun için multiscript isimli bir scripte bir dosyadan okutularak script listesi verilerek,bu listedeki tüm komutların tek komut ile execute edilmesi sağlanmış olur. Örnek ile anlatmaya çalışayım.Öncelikle içerisinde icra edilmesi gereken scriptlerin isimlerinin olduğu commands.txt isimli bir text dosyası oluşturuyorum.

 

 

 

image041

 

 

 

Şimdi bu commands.txt dosyasını parametre olarak alıp işleyecek multiscript isimli scriptimizi çalıştıralım.Böylece tek seferde listedeki tüm scriptleri çalıştırmış olacağız.Sonuçlarına birlikte bakalım.

 

 

 

image042

 

 

 

Listemizdeki 3 adet scripti dosyadan okutarak tek seferde execute ettirmiş olduk.

 

 

 

Bir sonraki makalemizde görüşmek üzere.

WatchGuard IP Adres Rezervasyonu ve MACIP Binding Yöntemi

$
0
0

 

Rezervasyon nedir (Reservation) ?

 

Otomatik ip almaya ayarlanmış client’a (DCHP Client) hep aynı ip’ yi otomatik olarak atamak demektir. IP rezervasyonu makina üzerindeki ethernet’ in mac adresine atanır.

 

Bu sayede clientlarımıza tek tek el ile ip atamak zorunda kalmayız. IP Adreslerinin kira süreleri sona erdiğinde firewall’umuz da IP bazlı oluşturduğumuz kurallar da yetkili/yetkisiz isteğimiz dışı hareketlere maruz kalmamış oluruz. Kısacası denetimi tam anlamıyla elimize almış oluruz.

 

Örn Mac: 00:1E:64:6D:75:DC

 

Tabi kullanıcılar her zaman zekidirler ve hep açık bir kapı arayışı içindedirler. Giremediği sitelere erişim sağlayabilen bir ip adresi öğrenen zeki kullanıcımız, ip adresini manuel olarak bu ip ile değiştirirse gayesine ulaşmış olacaktır. Bu nokta da güzel bir özellik olan MAC/IP Binding devreye girer.


Birçok UTM Cihazda olduğu gibi WatchGuard ürünümüzde de “MAC/IP Binding yönetimi bulunmaktadır. Peki nedir bu MAC/IP Binding ?

 

Firewall kuralları genellikle ip adreslerine göre oluşturulur. Yetkiler ve kısıtlamalar da tanımlanan bu ip adresleri bazında yapılandırılır. Tabi ki oluşturulan bu kuralların doğru çalışması için de kişilerin ip adreslerinin değişmemesi gerekmektedir. (Akıllı kullanıcılar) Yetkisi kısıtlanmış bir kişi daha fazla yetkiye sahip bir IP adresini kullanarak istenmeyen erişimleri gerçekleştirebilir. Bu durumu engellemenin yönetimi de MAC/IP Binding ten geçmektedir.

 

Öncelikle IP Rezerve nasıl yapılır?

 

Öncelikle IP Rezervasyonunu WatchGuard üzerine yapabilmek için DHCP mizin WatchGuad olması gerektiğini unutmamak gerekir.

 

Policy Manager‘ımızı açarak Network -> Configuration menüsüne giriyoruz.

 

 

image001

 

 

IP Adresini rezerve edeceğimiz Trusted Interface‘imizi seçerek Configure ediyoruz.

 

 

image002

 

 

10.0.0.2 – 10.0.0.200 olarak tanımlanan DCHP IP Havuzumuzdan 10.0.0.34 olan IP adresimizi gokhanvarol ismi ile Rezerve edeceğiz.

 

Reserved Addresses bölümüne geliyoruz ve Add tıklıyoruz.

 

 

image003

 

 

10.0.0.34 IP Adresini gokhanvarol için rezerve ederek OK diyoruz.

 

 

image004

 

 

Şimdi sırada 10.0.0.34 nin sadece 00:1E:64:6D:75:DC MAC Adresine ait olduğunu cihazımıza belirtmeye geldi. Bunun için aynı penceredeki Advanced sekmesine geçiyoruz.

 

 

image005

 

 

Advanced sekmesine Static MAC/IP Address Binding bölümünde Add tıklıyoruz.

 

 

image006

 

 

Karşımıza çıkan pencerede bakicubuk ismine atadığımız IP adresi 10.0.0.34 ve Client’ın sahip olduğu 00:1E:64:6D:75:DC MAC adresini giriyoruz.

 

 

image007

 

 

İşlem görüldüğü üzere WatchGuard ile çok kolay bir şekilde sonuçlanıyor.

 

 

image008

 

 

Ayarlarımızı WatchGuard üzerine kaydettikten sonra etkin olacaktır.

JunOS İşletim Sisteminin Temelleri

$
0
0

 

Juniper firmasına ait bir işletim sistemi olan JunOS yeni nesil Juniper ürünlerinin tümünde kullanılır. Bu ürün yelpazesinde firewall, switch, router gibi cihazlar yer alır. Dolayısıyla JunOS işletim sisteminin çalışma ve komut mantığını anlamak bu ürün yelpazesinin yönetiminde gerekli bilgiyi ve tecrübeyi sağlayacaktır. Bu makale dizisinde, işletim sisteminin mantığını anlatmakla başlayıp firewall yapılandırmasıyla devam edeceğiz.

 

JunOS modüler bir işletim sistemidir ve FreeBSD üzerinde geliştirilmiştir. Çoklu yazılım proseslerine ayrılacak şekilde yapılandırılmış bir işlevselliğe sahiptir. Her proses cihazın fonksiyonalitesinin bir parçasını işler ve kendi korunan memory alanında çalışır.

 

 

image001

 

 

Bu şekilde bir prosesin diğeriyle çakışmaması sağlanır ve proseslerden birisinde meydana gelen bir hata tüm sistemin çalışmasına engel olmaz.

 

JunOS işletim sistemli tüm Juniper ürünleri tek bir source code’a dayanan image’lar kullanır. Bu şekilde pek çok özellik ve servisin konfigürasyonu ve yönetimi aynı şekilde gerçekleştirilir.

 

 

image002

 

 

Kontrol ve İletim Ayırımı:

 

JunOS mimarisi, Control Plane ve Forwarding(Data) Plane olmak üzere iki ayrı bölüm üzerine tasarlanmıştır. Bu mimari ile işletim sistemi JunOS olan ürünlerde, routing control ve protocols switching işlemleri Control Plane’de gerçekleştirilirken, frame’lerin ve paketlerin iletilmesi Forwarding(Data) Plane tarafından gerçekleştirilir.

 

 

Control Plane ve Forwarding(Data) Plane süreçlerinin tamamen ayrılması sayesinde her proses maksimum performansa ve verimliliğe ulaşır.



Control Plane denildiğinde Routing Engine(RE) akla gelmelidir. Zira Routing Engine(RE) Control Plane’in beynidir. Routing Engine protocol update’lerinden ve sistemin yönetiminden sorumludur.

 

 

Routing tables(RT), bridging table, ve primary forwarding table(PFT) olmak üzere üç table’da Routing Engine(RE) sorumluluğundadır. Routing Engine(RE) bir internal link sayesinde Packet Forwarding Engine(PFE) ile iletişim halindedir.


Packet Forwarding Engine(PFE), genellikle cihaz içerisinde ayrı komponentler üzerinde çalışır. Transit trafikten sorumludur.

 

Ve sorumluluğunu yüksek performansla gerçekleştirmek için uygulamaya özel entegre devreler kullanır.

 

 

 

image003

 

 

 

Bu mimari ile, protocol güncelleştirmeleri ve sistem yönetimi gibi kontrol işlemleri, trafik iletim işlemlerinden ayrilır ve JunOS bu ayrı platformlar sayesinde yüksek performans sunar.

 


PFE, internal bir link aracılığıyla forwarding table’ı(FT), RE’den alır. FT güncellemeleri, JunOS OS kerneli için yüksek bir önceliğe sahiptir ve aşamalı olarak yapılmaktadır.

 

 

PFE’nin görevi frame ve paketlerin forward edilmesi yönünde RE’den aldığı talimatları istikrarlı ve performanslı bir şekilde yerine getirmektir. Bu mimari tasarım sayesinde high availability feature’larının birleştirilmesi mümkün olmaktadır. Örneğin

GRES, NSR ve ISSUs gibi.

 

 

Routing Engine(RE):    

 

Control Plane’in beynidir.



(Routing Table(RT) ve Forwarding Table(FT) ‘ı sağlar. Bütün protokol süreçlerinden sorumludur. Ayrıca interface’lerin kontrolü, chassis komponentleri, sistem yönetimi ve kullanıcıların cihaza erişim süreçleri gibi diğer süreçlerden de sorumludur.

 

Chasis’i izler ve kontrol eder. CLI ve Web GUI erişimleri de üzerinden sağlanır.

 

RE, PFE’yi yönetir. Layer2 ve Layer3 forwarding table’ı güncelleyerek PFE’yi kontrol eder. RE, hardware status mesajlarını PFE’den alır ve bu mesajlar sayesinde uygun hareketi belirler.

 

 

image004

 



Packet Forwarding Engine(PFE):



PFE, forwarding plane’in merkezi işlem komponentidir.



Layer2 ve Layer3 forwarding table’ı RE’den alır ve bu table sayesinde trafiği hedefine iletir. PFE’nin kullandığı table, RE’den alınan forwarding table’ın bir kopyasıdır. Kaydedilen ve kullanılan bu tablo sayesinde trafik verimli bir şekilde hedefine iletildiği gibi, tablonun senkronizasyonu belirli aralıklarla gerçekleştirilerek sürekli RE’ye danışma ihtiyacı da ortadan kalkmış olur.


               
Policy’ler, Stateless Firewall Filtering ve CoS gibi hizmetler de PFE’i tarafından gerçekleştirilmektedir. Ayrıca PFE’ye farklı interface kartları monte edilerek ek hizmetler de verilebilmektedir.

 

 

JunOS ve Traffic Processing

 

1- Transit Traffic:



Lokal sistem tarafından iletilen trafiktir. Bir ağ noktasından giren ve Forwarding Plane’deki FT(forwarding table) ile karşılaştırılarak başka bir ağ noktasından çıkış yapan tüm trafiği ifade eder. Transit trafiğin, Forwarding Plane’den geçerek hedefe iletilmesi esnasında, Control Plane’e yani tuttuğu RE’ye herhangi bir sorgu gitmez ve bu sayede yüksek performans elde edilir. Belirli bir hedefe gitmek üzere Forwarding Plane’e gelen trafiğin, sadece Forwarding Plane’den geçerek hedefe gidebilmesi için, Forwarding Plane tarafından tutulan FT(forwarding table)’de hedef için bir kayıt/bilgi bulunması gerekmektedir.

 

 

image005

 

 

2- Exception Traffic



Lokal sistem tarafından işlenen trafiktir ki hedefi lokal sistem olan bu trafik, Routing Engine(RE) CPU’su tarafından işlenir. Transit traffic sürecinin aksine, Exception Traffic, özel bir işleme tabi tutulur ve lokal sistem üzerinden geçerek herhangi bir hedefe gitmez. Yani Exception trafiği oluşturan paketlerin hedefi bizzat lokal sistemdir ya da paketlere dönen cevapların source’u Routing Engine(RE)’dir. Örneğin


- Routing protocol updates, Telnet sessions, pings, traceroutes işlemleri.

 

- Packet Forwarding Engine(PFE) IP header’ındaki option alanına müdahale etmeyecek şekilde tasarlandığı halde, header’da işlem yapılacaksa paket Control Plane’e yani RE’ye gönderilir.

 

- Pek çok hata durumunda PFE tarafından üretilen ICMP mesajları Exception Traffic örneğidir.

 

 


image006

 

 

 

Exception Traffic Rate-Limit



JunOS işletim sistemi, tüm exception trafiği RE’ye gönderir. Forwarding Plane’den Control Plane’e (RE için) gönderilen exception traffic, internal link üzerinden geçmektedir. Internal link üzerinde oluşan trafiğin sıklığı, bir tıkanıklığa sebebiyet verip RE ile iletişimde kopma olmamasını sağlamak üzere Exception Traffic için rate-limit devreye girer. Built-in olarak gelen rate limiter konfigüre edilemez. Bir tıkanıklık anında JunOS OS tarafından hedefi RE olan trafik için preference atanır.

 

 

 

image007

 

 

Hoşçakalın.

JunOS İşletim Sistemi CLI Mimarisi

$
0
0

Juniper firması tarafından geliştirilen yeni nesil firewall, router ve switch gibi network/güvenlik cihazlarında kullanılan JunOS işletim sistemi mimarisini ve çalışma mantığını incelediğimiz Junos Isletim Sisteminin Temelleri isimli makalemizin ardından, JunOS İşletim Sistemi CLI(Command Line Interface) Mimarisini inceleyeceğimiz serinin bu ikinci makalesiyle devam ediyoruz.

 

İlk makaleyi kısaca hatırlayacak olursak,



- Juniper tarafından FreeBSD üzerinde geliştirilmiş modüler bir işletim sistemi olan JunOS’un, çoklu yazılım proseslerine ayrılacak şekilde yapılandırılmış bir işlevselliğe sahip olduğunu ve her proses’in cihazın fonksiyonalitesinin bir parçasını işleyerek kendi korunan (protected) memory alanında çalıştığını,



- Control Plane ve Forwarding(Data) Plane isimli iki ayrı bölümden oluşacak şekilde tasarlanan JunOS mimarisinde, Control Plane denildiğinde Routing Engine(RE)’in, Forwarding(Data) Plane denildiğinde de Packet Forwarding Engine(PFE)’in düşünülmesi gerektiğini,



- RE’in, Control Plane’in beyni olduğunu, PFE’nin de Forwarding(Data) Plane’in merkezi işlem bileşeni olduğunu,


- JunOS işletim sistemli tüm Juniper ürünlerinin tek bir source code’a dayanan image’lar kullanması sebebiyle firewall, router ve switch gibi network/güvenlik cihazlarında pek çok özellik ve servisin konfigürasyon ve yönetiminin benzer şekilde gerçekleştirilebileceğini söylemiştik.

 

Yani JunOS işletim sistemli bir firewall’un CLI’ı ile JunOS işletim sistemli Router ve Switch’in CLI’ı çok benzerdir ve bu durum bizlere büyük bir yönetim avantajı sağlamaktadır.

 

Juniper JunOS İşletim Sistemi CLI Mimarisi başlıklı bu makalemizi oluşturacak çalışmalarımızı SRX High-End Serisi firewall’lar üzerinde gerçekleştireceğiz.

 

 

image001

 

 

JunOS CLI’ı metin tabanlıdır ve ilk kez bağlanılmak istendiğinde konsol portu kullanılır. SRX Firewall’un RE CONSOLE başlıklı kısmında 0 ve 1 yazan portlardan 0 olanına RJ-45 uçlu bir ethernet kablosu takılır; kablonun diğer tarafı DB-9 serial dişi uçludur. SRX Firewall’a, Telnet ya da SSH yönetim protokolleri kullanan bir program kullanılarak erişilebilir.

 

 

image002

 

 

Konsol portundan erişimde kullanılan programın parametreleri aşağıdaki gibi tanımlanmalıdır:

 

 

image003

 

 

Factory default konfigürasyonlu bir SRX Firewall’a root kullanıcısı ile login olunur ki root’un da şifresi yoktur. SRX’e root ile login olunduktan sonra yapılacak ilk iş, root’a bir şifre atamak olmalıdır. Zira root kullanıcısı ile login olunduktan sonra yapılacak konfigürasyonlar kaydedilmek istendiğinde root’a şifre atanmadan konfigürasyon değişikliği yapılamayacağına dair uyarı mesajıyla karşılaşılır.

 

Root kullanıcısı ile konsol portu üzerinden login olunan bir SRX Firewall’da, bağlandığımız yer Unix shell’idir. (JunOS, FreeBSD üzerinde geliştirilmiştir.) Ekranda şu satırlar görülecektir:



root@host%

 

Sondaki % işareti Unix shell’inde olduğumuzu ifade etmektedir. JunOS CLI’ını başlatmak için cli komutu yazılır ve enter tuşuna basılır:



root@host% cli
root@host>



cli komutu çalıştırıldığında, % işaretinin, yerini > işaretine bıraktığını görürüz. > işareti CLI’ın operasyonel modunda olduğumuzu gösterir.

 

Operasyonel modda iken, configure komutu yazılarak enter tuşuna basılırsai CLI’ın konfigürasyon moduna geçilir.



root@host> configure
root@host#



configure komutu çalıştırıldığında, > işaretinin, yerini # işaretine bıraktığını görürüz. # işareti CLI’ın konfigürasyon modunda olduğumuzu gösterir.

 

Unix shell’ine sadece root user’ı ile bağlanılabilir. İlerleyen bölümlerde de belirteceğimiz gibi yeni user’lar tanımladığımızda, bu user’larla JunOS CLI’ının sadece operasyonel(>) ve konfigürasyon(#) modlarına login olunabilir.

 

 

image004

 



CLI’ın operasyonel modunda, firewall’un monitöring ve troubleshooting çalışmaları gerçekleştirilir. Monitor, ping, show, test ve traceroute komutları kullanılarak pek çok bilgi edinilir ve firewall’un ağ iletişimi test edilebilir.

 

CLI’ın konfigürasyon modunda, firewall’un bütün özellikleri(interface’ler, protokoller, user erişimleri) ve de bir kaç donanım özelliği konfigüre edilebilir.

 

Root ile login olunduğunda Unix shell’ine(%) bağlandığımızı, burada cli komutunu çalıştırdığımızda operasyonel moda(>) bağlandığımızı ve burada da configure komutunu çalıştırdığımızda konfigürasyon moduna(#) geçtiğimizi söyledik. Root yerine başka bir user ile login olduğumuzda ise doğrudan CLI’ın operasyonel moduna(>) bağlanılır. Burada da configure komutunu çalıştırdığımızda konfigürasyon moduna(#) geçilir.



Root ile login olunmuş ve konfigürasyon moduna geçilmişken, exit komutu ile operasyonel moda geçilir. Operasyonel modda da yine exit komutunu çalıştırarak unix shell’ine düşülür.



root@host# exit
Exiting configuration mode
root@host> exit
root@host%

 

Root yerine başka bir user ile login olunmuş ve konfigürasyon moduna geçilmişken, exit komutu ile operasyonel moda geçilir.



sensoy@host# exit
Exiting configuration mode
sensoy@host>

 

configure komutunun bir de configure private ve configure exclusive şeklinde kullanıldığı halleri vardır.

 

Root harici bir kullanıcı firewall CLI’ının konfigürasyon modunda bir değişiklik yapıyorken, ikinci bir kullanıcı bağlanıp değişiklik yapabilir. Her bir kullanıcı yaptığı değişikliği commit de edebilir. Bu kullanıcılar, operasyonel moddan konfigürasyon moduna configure private komutlarıyla geçtikleri sürece sorun yoktur.

 

Ama kullanıcılardan biri, operasyonel moddan konfigürasyon moduna geçerken configure exclusive komutunu kullandıysa, bu kullanıcı haricindeki diğer tüm kullanıcıların commit edilmemiş değişiklikleri geçersiz kabul edilir. configure exclusive komutunu kullanarak bağlanan bir kullanıcı, daha evvel CLI’a bağlanmış olan ve konfigürasyon modunda değişiklik yapan kullanıcıların değişikliklerini commit etmesine izin vermez.

 

Configure exclusive komutuyla konfigürasyon moduna geçen kullanıcı için ekran görüntüsü aşağıdaki gibidir:



fikri@host > configure exclusive
warning: uncommitted changes will be discarded on exit
Entering configuration mode
Users currently editing the configuration:
sensoy terminal p0 (pid 28309) on since 2011-12-28 19:30:05 EET, idle 00:10:00
private [edit]
fikri@host#



configure komutuyla konfigürasyon moduna geçerek konfigürasyonda değişiklik yapan kullanıcı ve commit yapmak istediğinde aldığı hata aşağıda görülebilir:


sensoy@host # commit
error: configuration database locked by:
fikri terminal p1 (pid 28315) on since 2011-12-28 19:40:05 EET
exclusive [edit]

 

Exclusive olan kullanıcı konfigürasyon modundan operasyonel moda geçtiğinde, diğer kullanıcı değişikliklerini commit edebilir.

 

SRX’e root ile login olunduktan sonra yapılacak ilk iş, root’a bir şifre atamak olmalıdır demiştik. Şimdi root kullanıcısına şifre atayalım. Bunun için konfigürasyon modunda aşağıdaki komut çalıştırılır:



root@host# set system root-authentication plain-text-password



Komut çalıştırılınca belirlenecek şifrenin iki kez girilmesi istenir.

 


New password:

Retype new password:

 


Şifre iki kez girildikten sonra yine konfigürasyon modunda commit komutu kullanılarak yaptığımız değişiklikler aktif konfigürasyona yazılır/kaydedilir.

 


root@host# commit

 

 

Candidate Configuration ve Active Configuration:



Şimdi de Firewall’da konfigürasyon değişiklikleri sürecini inceleyelim. Root ya herhangi bir kullanıcı, firewall CLI’ına login olduğunda Active Configuration’a bağlanmış olur. Başlangıçta Candidate Configuration ile Active Configuration aynıdır. Kullanıcı bir değişiklik yaptığında Candidate Configuration değişmiş olur. Bu değişiklik commit komutunu çalıştırana kadar devreye girmez. Candidate Configuration commit edildiğinde Active Configuration ile eşitlenir ve yapılan değişiklikler de devreye girmiş olur. Eski Active Configuration ise 1 numaralı yedek konfigürasyon olarak saklanır. Mevcut Active Konfigurasyon haricinde son 49 commit edilmiş konfigurasyon (Active Configuration) yedekte tutulur. Mevcut Active Konfigurasyon rollback 0 olarak konumlandırılmıştır.

 

 


image005

 



Örnekler üzerinden konfigürasyon yapısını incelersek daha anlaşılır olacaktır.



Örneğin bir değişiklik yaptınız fakat yaptığınız değişikliği iptal etmek istiyorsanız rollback 0 komutunu çalıştırırsanız ya da exit deyip konfigürasyon moddan çıkarsanız(commit etmeden çıkmayı kabul ettiğinize dair yes derseniz) her şey eski haline dönmüş olur.

Birinci seçenek:


root@host# rollback 0

 


İkinci seçenek:


root@host# exit
The configuration has been changed but not
committed

Discard uncommitted changes? [yes,no] (yes) yes

 

 

Diğer bir örnekte ise bir değişiklik yaptınız ve değişikliği commit ettiniz diyelim. Bir süre sonra da yaptığınız değişikliği yapmamanız gerektiğini fark ettiniz ve eski konfigürasyona dönmek istiyorsunuz. Bu durumda değişiklik öncesindeki Active Configuration’un rollback 0 iken değişiklik sonrasında rollback 1 olduğunu düşünmelisiniz. Yani dönmek istediğiniz konfigürasyon rollback 1 dosyasındadır. Bunun için rollback 1 komutunu çalıştırmalı ve ardından da commit etmelisiniz.



root@host# rollback 1

root@host# commit

 

 

Başka bir örnekle devam edelim. Mevcut Active Configuration(rollback 0) ile rollback 25 arasındaki farkları görmek istiyorsunuz. Bunun için yapmanız gereken operasyonel modda şu komutu kullanmaktır:


root@host> show configuration | compare rollback 25

 

 

İki farklı rollback konfigürasyon arasındaki(rollback 25 ve rollback 40 olsun) farkları görmek istiyorsanız da yapmanız gereken, operasyonel modda şu komutu kullanmaktır:

 


root@host> show configuration | compare rollback 25 | compare rollback 40

 

 

Son olarak, birçok değişiklik yaptınız ve commit etmeden önce yaptığınız değişiklikleri görmek istiyorsunuz ve sonrasında commit etmek istiyorsunuz diyelim. Bunun için konfigürasyon modunda şu komutu kullanmalısınız:

 


root@host# show | compare

 

 

CLI’da Kullanılan Kısayol Tuşları

 

Şimdi de CLI kullanımını kolay kılan kısayol tuşlarını inceleyelim. CLI’da yazılacak komutlar ve değişkenler Spacebar ve Tab tuşları ile tamamlanmaktadır.

 

 

Örneğin, show komutu yazılmak istendiğinde, sh harflerini yazıp Spacebar tuşuna ya da Tab tuşuna basılırsa komut otomatik olarak tamamlanır.

 

 

root@host> sh<space>ow

 

 

Yine bu tuşlar kullanılarak komut ya da değişiken seçeneklerinin ekranda listelenmesi de sağlanabilir. Örneğin show configuration komutu yazılmak istendiğinde show c denilip enter’a basılırsa c harfiyle başlayan seçenekler sıralanır.



root@host > show c

^

'c' is ambiguous.

Possible completions:

chassis                 Show chassis information

class-of-service               Show class-of-service (CoS) information

cli           Show command-line interface settings

configuration    Show current configuration

 


sensoy@host> show configuration

 

 

Diğer bir seçenek olan ? de pek çok üründe olduğu gibi JunOS’ta da kullanılan yardım komutudur. Örneğin konfigürasyon modunda ? yazılarak enter denilirse aşağıdaki gibi bir yardım sayfasıyla karşılaşılır:



root@host > ?

 



image006

 



root@host # ?

 



image007

 

 

 

CLI, bir takım tuş kombinasyonlarıyla hızlı kullanım olanağını da mümkün kılmaktadır. Bu kombinasyonlarınsayısı yirmi civarındadır. Aktif bir CLI kullanıcısı olarak, en çok kullandığım üç tanesini sizlerle paylaşacağım. Bunlar:



- Yazdığınız bir satırda, Ctrl+a tuşlarıyla, kursörü satırın başına taşıyabilme,

- Yazdığınız bir satırda, Ctrl+e tuşlarıyla, kursörü satırın sonuna taşıyabilme
- Yazdığınız bir satırda, Ctrl+x tuşlarıyla, tüm satırı silebilme imkânını sunan kombinasyonlardır.

 

 

 

image008

 

 

 

Bir sonraki makalede SRX Firewall’un temel konfigürasyonunu ve Cluster kurulumunu işleyeceğiz.

Hoşçakalın.

 

Kayıtlı Elektronik Posta (KEP) nedir ve neler sağlar?

$
0
0

 

image001

 

 

Öncelikle Haziran 2012’de yürürlüğe girecek olan bu yasayla birlikte yaşamımıza girecek olan KEP'in amaçlarından, çalışma mantığından, prosedürlerden bahsetmeden önce özellikle kurumsal firmalar için önem teşkil edecek olan bu konu hakkında genel bir tanım yapmak isterim. Nedir bu Kep, ne işe yarar sorularına cevap almak istersek şöyle açıklayabiliriz.

 

 

Elektronik ortamdaki iş ve işlemlerin farklı taraflar arasında teknik olarak güvenli ve hukuken geçerli bir şekilde yapılabilmesine olanak sağlayacak çözümler üzerinde tüm dünyada farklı çalışmalar yapılmaktadır. Bu çalışmaların önde gelenlerinden biri de Avrupa Birliği bünyesinde yer alan Avrupa Telekomünikasyon Standartları Enstitüsü’nün (ETSI) ETSI TS 102 640 numaralı standardına dayanan Kayıtlı Elektronik Posta (KEP) Sistemi çalışmasıdır. KEP sistemi, elektronik imza ve zaman damgası teknolojilerinin ve standartlarının kullanıldığı bir sistemdir diyebiliriz.

 

 

KEP neler Sağlar?

 

 

KEP, e-imza ve zaman damgası kullanılarak, bir elektronik postanın iletildiğini garanti altına almayı, gönderen ve alan tarafların kim olduklarının bilinmesini, gönderilen iletinin ne olduğunun, içeriğinin başkalarınca değiştirilmediğinin ve gönderim zamanının kesin olarak tespit edilmesini sağlamaktadır.

 

Buna ek olarak bilgi ve iletişim teknolojilerindeki gelişmelere paralel olarak klasik usullerle yapılan iş ve işlemler elektronik ortama aktarılmaya ve e-uygulamalar geliştirilmeye başlanmıştır. E-uygulamalar ilk başlarda kamu kurumlarının, özel sektörün ve vatandaşlarımızın karşılıklı güven duygusuna bağlı olarak kullanılmıştır. 5070 sayılı Elektronik İmza Kanunu ise elektronik ortamdaki bilgi ve belgelerin hukuki geçerlilik kazanmasını sağlamıştır. Ancak, farklı kişi ve kurumlar arasında elektronik ortamda hukuken geçerli ve güvenli bir şekilde bilgi ve belge gönderimi, teslimi ve saklanması hususları düzenlenmemiş olup, bu hususlarda açıklık bulunmaktadır.

 

 

 

image002

 

 

E-posta yoluyla iletilen özellikle resmi ve ticari belgelerin ve yazıların gönderici ve alıcı açısından teknik güvenilirliği ve yasal geçerliliği büyük önem taşımaktadır. Başka bir şekilde açıklamak gerekirse siz x firmasısınız ve y firmasına mail göndereceksiniz ve bu ileti de sizin için önem teşkil ediyor. Gönderdiniz maili ve sonrasında ise y firması diyor ki bana bu mail gelmedi, göndermedin. Sizde eğer KEP hizmeti alıyorsanız, gönderdiğiniz hash bilgisini delil olarak gösterip kanıtlama şansınız var. Yani şöyle hangi tarafta, x ya da y firmasında, hash bilgisi eşleşirse o suçu kabul etmiş olacak. Bu konuyla ilgili detaylı bilgi ve mevzuatı btk. org.tr den edinebilirsiniz.

 

 

KEP ten kimler faydalanabilir?

 

 

Tabi biz bu KEP olayını sadece kurumsal firmalar için değil, bireysel tarafta da kullanma şansımız olacak. Yani başvurup diyeceksiniz ki ben niyazi@x.kep.tr adresini alabileceğiz. Adresi aldıktan sonra ise kayıt olma ya da olmama durumu size kalmış fakat kurumsal firmalarda bu zorunlu olacak. Peki kayıt olunca ne olacak? Kayıt olduğunuz zaman firmalar sizi bilecek, rehberde sizi bulabilecekler. Şu anda yanılmıyorsam İtalya’da bu hizmeti veren 24 firma var, Almanya’da ise 4. Türkiye’de ise altyapı çalışması hızlı bir şekilde ilerlemekte. Galip gelecek firmalar ise Telekom ve GSM operatörleri olacağı kesin gibi gözüküyor, bununla ilgili bir çalışma da mevcut.

 

Diğer bir konu ise bu hizmet sağlayıcılar için ise yaptırımların büyük olacağı kesin. Örnek vermek gerekirse, X firması KEP e üye ve belli bir sonra bu üyeliğinin iptali için KEPHS telefon açıp iptal ettiriyor, bu arada başka bir firma üyeliğini iptal ettirmek isteyen bu firmaya ileti gönderiyor tabi göndermeden önce check etmesi gerekiyor yani bu kişinin KEP e üyeliği olsa dahi bana ya da bu adrese ileti gönderilmesini istemiyorsa ileti gönderme hakkına sahip olamıyor. (Tıpkı GSM operatörlerinden gelen reklam mesajlarını iptal ettirmek istediğinizde GSM operatörünü arayıp bana bu kişileri, sms'leri engelle dediğiniz takdirde GSM operatörleri bu sms leri filtreliyor ve blockluyor). Firmaya ait bir fatura olsun ve adam üyeliğini iptal ettirdiği halde bu ileti adama geliyor ve KEPHS arıyor bana bu firmadan nasıl ileti geliyor dediğinde ise, durumu BTK’ya bildiriyor ve sonuçta hizmet sağlayıcı firma hatırı sayılır bir para cezası çarptırılıp, firmaya uyarı veriliyor. Bu olaylar da KEPHS de çalışan kişinin bunu tam 1,5 saat sonra yapmasından kaynaklandığını da belirtmekte fayda var. Özetlersek, üyelik işlemleri 7/24 ve derhal yapılması zorunlu işlemlerdir. Yani taviz yok. İsterseniz bu işte yeni olan bir firma olsun, ister eski bir firma. 3 defa hata yaptığında iş bitiyor ve o firmanın yönetimi başka kişilere veriliyor BTK’nin belirlediği tabi ki bu arada. Eğer ki hizmeti alan taraf zarara uğrar ise hizmeti veren firma zararını da üstlenmek durumunda kalıyor deyip örneklendirebiliriz.

 

 

KEP ve SEP

 

 

 

image003

 

 

KEP yasal olarak geçerli ve teknik olarak güvenli elektronik posta olarak kabul edilmektedir. (SEP) ile iletişim/belge paylaşımı yasal geçerli olarak ve teknik olarak güvenli kabul edilmeyen, iletimin kesin olarak sağlanamadığı ve inkâr edilebilen bir iletişim şeklidir.. KEP, elektronik posta yoluyla yasal geçerli ve teknik olarak güvenli bir şekilde e-belge paylaşımını sağlayabilen ve bu işlemlerle ilgili kesin delil sağlayabilen tek araçtır. Ek olarak, bu Yönetmeliğin amacı; kayıtlı elektronik posta sisteminin hukukî ve teknik yönleri ile işleyişine ilişkin usul ve esasları düzenlemektir de diyebiliriz. Tabi burada karıştırılmaması gereken nokta ise dijital imzayla arasındaki farktır.

Dijital imza da kullanılan anahtarların kullanım amacı bilgi şifrelemektir. Bilgi şifrelemek yani iletiyi gönderirken göndermiş olduğunuz iletinin şifrelenmiş olarak karşı tarafa gitmesi ve karşı taraftaki kişinin ise sadece o anahtara sahip olan kişinin bu iletiyi okuyabilmesidir. İletinin alıcıya kadar olan işleyiş süreci ise farklı olduğunu da belirtmekte fayda var. Ek olarak söylemekte fayda gördüğüm bir konu ise Hash bilgisi, nedir bu hash? Bir belgeyi imzalama sırasında, A kişisinin kullandığı yazılım, veriyi sadece birkaç satırlık bir hale sıkıştırır. Bu işleme özetleme(hashing), bu birkaç satıra da mesajın özü yani (digest)denir. Hash bilgisi unique dir ve göndermiş olduğunuz dosyanın büyüklüğü ne olursa olsun hash ler aynıdır. Şu an KEPHS olarak hizmet vermek isteyen firmalar arasında Bankalar, Finans Sektörü ve Telekom bu yarışta yerlerini almak istiyorlar fakat akla şöyle bir soru geliyor neden GSM operatörleri bu işe girişmiyorlar? Bu soruların cevabını da ilerleyen zamanda görebileceğiz.

 

 

Ek bilgi olarak Kep hizmeti almak istediğinizde niyazi@kurumadı.kep.com.tr adıyla alabilme hakkına sahip olabileceksiniz. Bu bize ne sağlayacak derseniz alıcı kep.com.tr uzantısı görmesi bu gelen iletinin güvenli olduğunu bilecek diyebiliriz. İkinci bir not ise, almış olduğunuz adresi değiştirmek istiyorsunuz diyelim bu durumda ne olacak? KEPHS tarafından koruma süresi olacak bunu da kullanıcı belirleyecek minimum 3 aydır. Yani eski adresinize gelen iletiler direk olarak yeni adresinize yönlendirilecektir. Tabi şöyle bir durum da söz konusu. Eğer ki KEPHS alan başka firmadaki kişiye benim yeni adresim bu derseniz ve bu kişi de eski adresinize ileti gönderirse, herhangi bir mail ileti sorunu yaşadığında yani ileti gönderdim, yok bana gelmedi derse karşı taraf suçlu konumuna düşecektir. Çünkü siz bunu o kişiye mail yoluyla bildirmiştiniz. Bu durumda kişilerin maili okumama gibi durumları söz konusu olmayacak, yani KEPHS hizmet alanların mailleri, adresleri kayıt altına alınacak ve bu hizmeti veren firmalar bunu minimum 10 yıl boyunca saklamak zorunda kalacaklarını da hatırlatmak isterim.

 

 

KEP Sistemi ile neler yapabiliriz?

 

 

KEP sistemiyle resmi, özel ve ticari her türlü belge veya yazı kurum, kuruluş ve şahıslar arasında elektronik olarak gönderilip alınabilecek, başka bir deyişle yasal geçerli olarak elektronik yazışma ve bildirim (beyanname, bildirge, başvuru, tebligat, ihtar, ihbar, vb.) yapılabilecektir.

 

Şirketler ile gerçek kişiler arasında ve kurum içi her türlü yazışma, belge paylaşımı, sözleşme, tebligat, ihtar/ihbar, e-fatura, telefon görüşme dökümleri, banka talimatları, hesap ekstreleri, kredi kartı hesap özeti gönderimleri, siparişler, ihale teklifleri, e-ticaret işlemleri gibi sayısız alanda kullanılmaya başlanacaktır.

 

Kullanıcılar tarafından istendiği takdirde, iletişimin gizliliği sağlanarak güvenli haberleşme ve elektronik belgelerin güvenli bir ortamda saklanması da KEPHS tarafından verilecek katma değerli hizmetleri ile mümkün olabilecektir.

Hukuken geçerli ve teknik olarak güvenli bir şekilde elektronik posta yoluyla haberleşmenin yolu olan kayıtlı elektronik posta (KEP), günümüzün en temel ihtiyaçlarından biri haline gelmiştir. KEP sisteminin, ülkemizde e-ticaret ve e-devlet uygulamalarının yaygınlaşmasını önemli oranda hızlandıracağı, ciddi miktarlarda tasarruf sağlayacağı ve e-dönüşümden beklenen faydaları ve verimi elde etmede önemli bir araç olacağı değerlendirilmektedir.

 

KEP, e-devlet, e-iş ve e-ticaret gibi tüm e-dönüşüm uygulamalarının bütün boyutlarıyla hayata geçirilebilmesi açısından stratejik önemi haiz bir araçtır. Kâğıt, arşiv, postalama ve işlem maliyetlerinin düşürülmesi ve zaman kayıplarının azaltılmasıyla bürokrasinin daha etkin işlemesine, resmi ve ticari işlemlerin hızlı yapılmasına, ticari faaliyetlerin verimli yürütülmesine ve çevrenin korunmasına yüksek oranda katkı sağlayacaktır.

 

KEP sistemiyle resmi, özel ve ticari her türlü belge veya yazı kurum, kuruluş ve şahıslar arasında yasal geçerli ve güvenli bir şekilde elektronik olarak paylaşılabilecek, gönderilip alınabilecektir. KEP sistemi, elektronik belge paylaşımı ve iletimi dışında çok çeşitli güvenli arşivleme gibi katma değerli servislerin de sunulabileceği, e-imza ve zaman damgasının yaygın ve yoğun olarak kullanılacağı yasal geçerli ve güvenli yeni bir iletişim alanı olacaktır.

 

Son olarak şunu da belirtmek isterim, nasıl internet bankacılığını kullanırken bizlere sms yoluyla şifremiz geliyorsa, belki de ilerleyen dönemlerde KEP sahibi olanlara faks, mail vb. iletiler cep telefonlarımıza geldiğinde gerekli kimlik doğrulamaları doğruladıktan sonra gelen iletileri istediğimiz şekilde yönlendirme hakkına sahip olabileceğiz. Siz ne dersiniz?

 

 

Standart elektronik posta: (SEP)

Kayıtlı Elektronik Posta (KEP)

Registered E-Mail: REM (KEP)

KEPHS KEP Hizmet Sağlayıcılar

BTK (Bilgi Teknolojileri Kurumu)

JunOS Cluster Mimarisi ve Temel Konfigürasyon (SRX Firewall)

$
0
0

 

JunOS işletim sistemi ve JunOS CLI mimarisini incelediğimiz ilk iki makalemizden sonra, bu üçüncü makalemizde de JunOS işletim sistemli High-End Serisi SRX Firewall’lar üzerinde temel konfigürasyon ve Cluster kurulumunun nasıl gerçekleştirileceğini inceleyeceğiz.

 

Juniper tarafından üretilen JunOS işletim sistemli High-End Serisi SRX Firewall’lar, SRX1400, SRX3400, SRX3600, SRX5600, SRX5800 modelleridir. Biz incelemelerimizde modeli SRX 3400 olan bir firewall kullanacağız.

 

 

 

image001

 

 

 

Firewall’da oluşabilecek donanım/yazılım problemlerine karşı bir önlem olarak başvurulan cluster mimarisini sağlamak üzere iki tane firewall bulundurulması gerekliliği, hemen hemen tüm orta/büyük ölçekli firmaların başvurduğu bir yöntemdir. Tek bir SRX Firewall’un temel konfigürasyonu ile cluster çalışacak şekilde yapılandırılacak iki tane SRX Firewall’un temel konfigürasyonu önemli farklılıklar gösterir. Bu sebeple, çalışmalarımızda önce tek bir SRX Firewall için temel konfigürasyonu gerçekleştireceğiz ardından da iki tane SRX 3400 Firewall’un cluster çalışacak şekilde temel konfigürasyonlarını gerçekleştireceğiz.



Tek bir SRX 3400 Firewall’un Temel Konfigürasyonu

 


Beş adımda gerçekleştirilir.


1- Root’a Şifre Atanması

 

Factory default konfigürasyonlu bir SRX Firewall’a, console portundan bağlanarak root kullanıcısı ile login olunacağını (şifresi yoktur) sonra da yapılacak ilk işin, root’a bir şifre atamak olması gerektiğini zira root kullanıcısı ile login olunduktan sonra yapılacak konfigürasyonlar kaydedilmek istendiğinde root’a şifre atanmadan konfigürasyon değişikliği yapılamayacağına dair uyarı mesajıyla karşılaşılacağını söylemiştik.

Root kullanıcısı ile konsol portu üzerinden login olunan bir SRX Firewall’da, bağlandığımız yer Unix shell’idir. Ekranda şu satırlar görülecektir:


root@host%

 

JunOS CLI’ını başlatmak için cli komutu yazılır ve enter tuşuna basılarak operasyonel moda geçilir:


root@host% cli
root@host>

Operasyonel modda iken, configure komutu yazılarak enter tuşuna basılırak CLI’ın konfigürasyon moduna geçilir.



root@host> configure
root@host#



Konfigürasyon modunda da aşağıdaki komut kullanılarak root’a bir şifre atayalım:


root@host# set system root-authentication plain-text-password



Komut çalıştırılınca belirlenecek şifrenin iki kez girilmesi istenir.

 

New password:

Retype new password:

 


Şifre iki kez girildikten sonra yine konfigürasyon modunda commit komutu kullanılarak yaptığımız değişiklikler aktifleştirilir.

 


root@host# commit

 

 

2- Host-name ve Domain-name Atanması

 

 

Juniper SRX 3400 Firewall’umuza bir isim verelim ve bir de domain ismi tanımlayalım. Bunun için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır:



root@host# set system host-name SemerkandFw
root@host# set system domain-name Semerkand.com

 

 

3- Management IPsinin ve Uzak Erişim Protokollerinin Tanımlanması

 

 

Juniper SRX 3400 Firewall’umuzun management interface’ine(fxp0 portu) bir IP verelim ki, bu porta ağ üzerinden (switch) takılacak bir kablo sayesinde ilgili IP üzerinden erişim gerçekleştirilirek firewall yönetimi yapılabilir olsun. Hem IP’nin tanımlanması hem de bu IP’ye ssh ve web browser ile erişim gerçekleştirilebilmesi için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır:


root@host# set interfaces fxp0 unit 0 family inet address 192.168.0.1/24
root@host# set system services ssh    
root@host# set system services web-management https interface
fxp0.0

 



image002

 



4- Management Trafiği için Statik Route Tanımlanması

 

 

SRX yeniden başlatıldığında, routing protokol prosesinin çalışmaması durumuna önlem olarak, aynı subnette direk bağlı olduğu bir backup router yapılandırılması gerekir. Yani olası bir hata durumunda, Firewall’a ulaşılamaz konumda olmamak için, bir backup-router IP’si tanımlanır ki bunun için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır:



root@host# set system backup-router 192.168.0.254 destination 192.168.0.0/24



Bu komutla, 192.168.0.0/24 subnet’inden, management IP’si 192.168.0.1 olan Firewall’umuza, 192.168.0.254 IP’li backup-router üzerinden erişilebilme imkanı elde edilmiş olur.



5- NTP Atanması

 

 

Juniper SRX 3400 Firewall’umuzun zaman tanımını düzenlemek için ağda bulunan bir NTP sunucunun IP’si CLI üzerinde tanımlanmalıdır. Bunun için CLI konfigürasyon modunda aşağıdaki komut çalıştırılır: (NTP Sunucu IP’si 192.168.1.1 olsun)


root@host# set system ntp server 192.168.1.1



Bu beş işlemin kaydedilip aktifleştirilmesi için konfigürasyon modunda commit komutu çalıştırılır.



root@host# commit

 


Bu şekilde beş adımda tek bir SRX Firewall’un temel ayarlarını tanımlamış olduk. Sıra geldi iki tane SRX 3400 Firewall’un cluster çalışacak şekilde temel konfigürasyonlarını gerçekleştirmeye.



İki SRX 3400 Firewall’un Cluster Kurulumu ve Temel Konfigürasyonları

 

JunOS’un SRX Firewall’lar için sağladığı High Availability yapılandırması, chasis cluster kullanılarak gerçekleştirilir. Bir firewall primary iken diğeri secondary olarak çalışır ve bir tanesinde oluşacak sistem ya da donanım problemi durumunda diğeri yükü üzerine alır.


Cluster çalışacak iki firewall’un, aynı modelde ve tüm kartlarının(SPC, NPC ve IOC kartları) cihazın aynı slotlarına takılmış olması gerekmektedir. Bu kartlar:
SPCs: Services Processing Cards
NPCs: Network Processing Cards
IOCs: Input/Output Cards

Firewall’un ön yüzünde takılı bulunan kartlar:

 

 

 

image003

 

 

 

Firewall’un arka yüzünde takılı kartlar:

 

 

 

image004

 

 

 

JunOS İşletim Sisteminin Temelleri isimli makalemizde detaylı olarak incelediğimiz Control Plane ve Forwarding(Data) Plane
mimarisi, cluster yapılanmasının da en önemli bölümünü oluşturmaktadır. Junos High Availability yapılandırması, iki firewall’daki Control Plane’ler için bir tanesinin aktif diğerinin pasif olmasını desteklemektedir. Data Plane’ler için aktif-aktif bir yapı desteklenmektedir.

 



image005

 



Control Plane cluster yapısı Kontrol Portları üzerinden gerçekleşirken Data Plane için Fabric Portlar üzerinden gerçekleşir.

 



image006

 

 

 

Hem node0 hem de node 1 için, üzerinde sadece Control Plane senkrenizasyonunu sağlamak üzere konumlandırılmış iki kontrol portu bulunur. Bu portlar sayesinde iki node arasında Control Plane senkronizasyonu sağlanır.

 

 

Hem node 0 hem de node 1 için, üzerinde gelen 8 tane bir gigabit interface bulunur. Ayrıca iki tane de 10 gigabit portumuz olsun. Bu on interface aşağıdaki gibi isimlendirilmişlerdir:

 


ge-0/0/0

ge-0/0/1

ge-0/0/2

ge-0/0/3

ge-0/0/4

ge-0/0/5

ge-0/0/6

ge-0/0/7
xe-1/0/0

xe-1/0/1

 

 

Sekiz tane bir gigabit interface’den bir tanesini (örneğin sekizinci portu: ge-0/0/7) fabric port olarak tanımlayacağız ki bu port sayesinde node’lar arasında data-plane senkronizasyonu sağlanabilsin.



Yukarıdaki resimde görüldüğü şekilde, node 0 ve node 1’in ikişer portu iki kablo ile birbirlerine bağlanır. (Switch üzerinden de bağlanmaları mümkündür)



Şimdi konfigürasyonumuza başlayalım.

 

 

 

1- Root’a Şifre Atanması

 

 

Factory default konfigürasyonlu iki firewall’umuzda da konfigürasyon moduna geçilip aşağıdaki komut çalıştırılır:



root@host# set system root-authentication plain-text-password



Komut çalıştırılınca belirlenecek şifrenin iki kez girilmesi istenir.

 

New password:

Retype new password:

 


Şifre iki kez girildikten sonra yine konfigürasyon modunda commit komutu kullanılarak yaptığımız değişiklikler aktifleştirilir.

 


root@host# commit

 

 

2- Node-ID ve Cluster-ID Tanımlanması

 

 

Cluster üyesi olan her bir firewall’umuza node diyoruz ve bu node’lara atanacak ID’ler bir tanesi için 0 iken diğeri için 1 olmak zorundadır. Bir tanesi node 0 iken değeri node 1 olarak tanımlanacaktır. Birini diğerinden ayırt edecek bir tanımlama olmaktan başka bir işlevi bulunmamaktadır.

 


İki firewall arasında chassis cluster tanımlanacağı zaman bir Cluster ID değeri tanımlanmalıdır ki bu ID değeri 1 ile 15 arasında değerler alabilir. Cluster-ID değeri, node’ların dahil olacağı cluster’ı tanımlayan bir ID değeridir ki, bir SRX Firewall aynı anda tek bir cluster’ın üyesi olabilir. Yani her iki node için de aynı cluster-id tanımı yapılmalıdır.

 

 

Birinci Firewall: node-id değeri node 0 ve cluster-id değeri cluster-id 1 olsun.
İkinci Firewall : node-id değeri node 1 ve cluster-id değeri cluster-id 1 olsun.

 

 

Aşağıdaki komutlar çalıştırılarak cluster-id ve node-id tanımı yapıldıktan sonra, iki firewall’un da restart edilmesi gerekmektedir.



Birinci Firewall’un operasyonel modunda çalıştırılacak komut:
root@host> set chassis cluster cluster-id 1 node 0 reboot



İkinci Firewall’un operasyonel modunda çalıştırılacak komut:
root@host> set chassis cluster cluster-id 1 node 1 reboot



Biz node 0’ı primary, node 1’i ise secondary olarak yapılandıracağız. Bu adımdan sonra yapılacak tüm konfigürasyon sadece node 0 üzerinde yapılacaktır. Çünkü node 0 üzerinde gerçekleştirilecek tüm konfigürasyon node 1’e otomatik olarak kopyalanacaktır.

 

Restart sonrası iki firewall da chassis cluster modunda başlatılmış olurlar. Bu durumun interface’lere yansıması şu şekilde olur:

 


image007

 



Yani node 0 ya da node 1’den hangisine bağlanırsanız bağlanın, her iki node’un interface’lerini bir arada göreceksiniz.



ge-0/0/0 isimli interface, node 0’ın ilk portuyken, ge-8/0/0 isimli interface, node 1’in ilk portudur. Aynı şekilde
ge-0/0/7 isimli interface, node 0’ın sekizinci portuyken, ge-8/0/7 isimli interface, node 1’in sekizinci portudur.

 

 

3- Kontrol Port Konfigürasyonu

 

 

Bu portlar sayesinde iki node arasında Control Plane senkronizasyonu sağlanır. SRX 1400, SRX 3400 ve SRX 3600 Firewall’larda kontrol port konfigürasyonuna gerek bulunmamaktadır. Biz de konfigürasyonumuzu SRX 3400 üzerinde gerçekleştirdiğimiz için, kontrol portlarıyla ilgili herhangi bir cluster tanımı yapmayacağız. Ancak SRX 5600 ya da SRX 5800 serisi bir firewall konfigüre edecek olsaydık, aşağıdaki komutları konfigürasyon modunda çalıştırmalıydık.


root@host# set chassis cluster control-ports fpc 1 port 0
root@host# set chassis cluster control-ports fpc 13 port 0

 


4- Fabric(Data) Port Konfigürasyonu

 

 

Her iki node için de, bir gigabit portlarından bir tanesini fabric port olarak tanımlayacağız ki, bu portlar sayesinde node’lar arasında data-plane senkronizasyonu sağlanabilsin. (Yukarıda kablo bağlantısından bahsetmiştik) Biz örneğimizde sekizinci port olan ge-0/0/7 ve ge-8/0/7 portlarını kullanacağız. Bunun için konfigürasyo modunda çalıştırmamız gereken komutlar şu şekilde olmalıdır:


root@host# set interfaces fab0 fabric-options member-interfaces ge-0/0/7
root@host# set interfaces fab1 fabric-options member-interfaces ge-8/0/7



5- Grup Konfigürasyonu

 

 

Cluster yapıda çalışacak iki firewall için, host-name, backup-router ve management interface IP kanfigürasyonları grup tanımı altında yapılandırılır. Bunun için gereken komutlar aşağıdaki gibidir:


root@host# set groups node0 system host-name Semerkand-Fw1
root@host# set groups node0 interfaces fxp0 unit 0 family inet address 192.168.0.1/24
root@host# set groups node0 system backup-router 192.168.0.254
root@host# set groups node0 system backup-router destination 192.168.0.0/24



root@host# set groups node1 system host-name Semerkand-Fw2
root@host# set groups node1 interfaces fxp0 unit 0 family inet address 192.168.0.2/24
root@host# set groups node1 system backup-router 192.168.0.254
root@host# set groups node1 system backup-router destination 192.168.0.0/24
root @host# set apply-groups “${node}”



Hatırlatmakta fayda var; ikinci adımdan sonra yapılacak tüm konfigürasyonlar sadece node 0 üzerinde yapılacaktır. Çünkü node 0 üzerinde gerçekleştirilecek tüm konfigürasyon zaten node 1’e otomatik olarak kopyalanacaktır.

 


6- Redundancy Groups(RG) Tanımlanması


Redundancy Group(RG), cluster üyesi iki node’a ait bir takım obje gruplarını barındıran ve yöneten soyut bir kavramdır. node-id değerleri 0 yada 1 olabiliyorken, cluster-id 1-15 arası değerler alabiliyordu. (Hatırlamak isterseniz ikinci adım olan 2- Node-ID ve Cluster-ID Tanımlanması bölümüne bakabilirsiniz) RG’ler ise 0-255 arası değerler alır.

Node’lara cluster-id ve node-id değerleri atanıp restart edildikten sonra(ikinci adımdan sonra) iki firewall da chassis cluster modunda başlatılmış olup JunOS tarafından otomatik olarak RG0 isimli bir Redundancy Group üretilmiş olur ki ismi RG0’dır. RG0, node0 ve node1’in RE’lerinin failover durumlarını yönetmeye başlar. (Hangi node’un RE’sinin primary, hangi node’un RE’sinin secondary olacağını belirler) RG0 aynı anda sadece bir node üzerinde primary olabilir.


Redundancy Groups(RG) özünde Control Plane ve Data Plane’e hizmet eder. RG0 ile Control Plane’e, manuel oluşturulacak RG1 ile de Data Plane’e ve Data Plane portlarına hizmet eder. İsimleri RG0 ve RG1 olan iki tane RG tanımlanması cluster yapı için yeterlidir. RG0 haricindeki RG1 ya da diğer RG’ler ile(RG1 - RG15) interface’lerin cluster yapılandırması ve yönetimleri sağlanır. Bu interface’lerin sayısı maksimum 15 tane olabilir ve her bir interface reth olarak isimlendirilir.


RG’lerle ilgili genel bilgi verdikten sonra, bu adımda gerçekleştirmemiz gereken konfigürasyon ile iki şeyi tanımlamalıyız:


- Redundant Ethernet Groups tanımlanması.


redundancy-group 0 ve redundancy-group 1 tanımlanacaktır.


- Control Plane ve Data Plane için Priority tanımlanması.


Control Plane ve Data Plane’e atanacak priority değerlerine göre, yüksek değerli priority’ye hangi node sahipse, ilgili plane’ler o node ya da node’lar üzerinde aktif olarak çalışır. Tavsiye edien, Control Plane ve Data Plane’in aynı node üzerinde aktif olarak çalışması yönünde priority atanmasıdır.


Konfigürasyon modunda aşağıdaki komutlar çalıştırılır:



root@host# set chassis cluster reth-count 10
root@host# set chassis cluster redundancy-group 0 node 0 priority 200
root@host# set chassis cluster redundancy-group 0 node 1 priority 100
root@host# set chassis cluster redundancy-group 1 node 0 priority 200
root@host# set chassis cluster redundancy-group 1 node 1 priority 100

 

Bu komutlarla, hem redundancy-group 0 hem de redundancy-group 1 için node 0 priority’s daha yüksek atanmıştır. Bu şekilde, redundancy-group 0 ve redundancy-group 1, node 0 üzerinde aktif olarak çalışacaktır. (Yani node 0’ın Control Plane’i ve node 0’ın Data Plane’i aktif olarak çalışacaktır.)

 


7- Reth Interface’lerin Tanımlanması



SRX 3400 Firewall’umuzun üzeride, konsol, management(fxpo) ve control portlarının haricinde, sekiz tane 1 Gigabit’lik(ge) port ve iki tane 10 Gigabit’lik(xe) port bulunmaktadır.

 

Bu sekiz tane gigabit porttan bir tanesini(sekizinci) fabric port olarak atamıştık. Kalan yedi interface ve iki tane de 10 Gbit port için konfigürasyon yapabileceğiz.

 

Sekiz tane 1 Gbit interface’den dördüne ve iki 10 Gbit interface’den de bir tanesine ihtiyaç duymuş olalım. Buna göre reth interface’ler tanımlayacağız. Tanımlayacağımız reth interface’leri de Redundany Group 1 ‘e üye edeceğiz. Bunun için konfigürasyon modunda aşağıdaki komutlar çalıştırılır:



root@host# set interfaces ge-0/0/0 gigether-options redundant-parent reth0 (node 0 ‘ın ilk portu)
root@host# set interfaces ge-8/0/0 gigether-options redundant-parent reth0 (node 1 iın ilk portu)
root@host# set interfaces ge-0/0/1 gigether-options redundant-parent reth1
root@host# set interfaces ge-8/0/1 gigether-options redundant-parent reth1
root@host# set interfaces ge-0/0/2 gigether-options redundant-parent reth2
root@host# set interfaces ge-8/0/2 gigether-options redundant-parent reth2
root@host# set interfaces ge-0/0/3 gigether-options redundant-parent reth3
root@host# set interfaces ge-8/0/3 gigether-options redundant-parent reth3
root@host# set interfaces ge-0/0/4 gigether-options redundant-parent reth4
root@host# set interfaces ge-8/0/4 gigether-options redundant-parent reth4
root@host# set interfaces xe-1/0/0 gigether-options redundant-parent reth8
root@host# set interfaces xe-9/0/0 gigether-options redundant-parent reth8

root@host# set interfaces reth0 redundant-ether-options redundancy-group 1
root@host# set interfaces reth1 redundant-ether-options redundancy-group 1
root@host# set interfaces reth2 redundant-ether-options redundancy-group 1
root@host# set interfaces reth3 redundant-ether-options redundancy-group 1
root@host# set interfaces reth8 redundant-ether-options redundancy-group 1

 

reth5 ve reth6 ileride ihtiyaç durumunda tanımlanabilir. Reth7 tanımı yapılamaz çünkü fabric port olarak atanmıştır.

 

Bu komutlar çalıştırıldıktan sonra, node’larda görülecek interface listesi aşağıdaki gibi olacaktır:

 


image008

 

 

 

8- Diğer Temel Konfigürasyon Tanımlamaları:



Tek bir Firewall'un temel konfigürasyonu bölümünde detaylı incelediğimiz bazı tanımlamaları, cluster yapıda da gerçekleştirmeliyiz. Bu tanımlar: domain-name, ntp-server ve servis tanımlamalarıdır. Bunun için konfigürasyon modunda aşağıdaki komutlar çalıştırılmalıdır:

 

root@host# set system domain-name Semerkand.com
root@host# set system ntp server 192.168.1.1
root@host# set system services ssh    
root@host# set system services web-management https interface fxp0.0



İki SRX 3400 Firewall’un Cluster kurulumunu ve temel konfigürasyonlarını sekiz adımda tamamlamış olduk. Son olarak opsiyonel iki tanımlama var ki, tanımlanmaları mecburiyet değildir. Şu ana kadar yaptığımız cluster konfigürasyonu gereğince, control portu ile Control Plane’in, fab portu(yedinci interface) ile de Data Plane’in cluster çalışmasını sağlamış olduk.

 

İsteğe bağlı yapılabilecek birinci konfigürasyonla, cluster çalışan Semerkand-Fw1 ve Semerkand-Fw2 isimli iki node’dan aktif olanında, interfacelerden bir tanesinde problem olması ya da kablo çıkması gibi durumlarda trafik diğer node’a geçsin denilebilir. Bunun için konfigürasyon modunda çalıştırılacak komutlar aşağıdaki gibidir:

 

root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/0 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/0 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/1 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/1 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/2 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/2 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/3 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/3 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-0/0/4 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor ge-8/0/4 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor xe-1/0/0 weight 255
root@host# set chassis cluster redundancy-group 1 interface-monitor xe-9/0/0 weight 255

 


İsteğe bağlı yapılabilecek ikinci konfigürasyon ise, bir RG için Preempt atanabilmesidir.


Örneğin, RG1 için preempt atadık diyelim. Beşinci adımda yaptığımız RG0 ve RG1 konfigürasyonunda


redundancy-group 1 ‘in node 0 için priority’sini 200


redundancy-group 1 ‘in node 1 için priority’sini 100 olarak atamıştık. Yani RG1 node 0 üzerinde aktif olarak çalışacaktır. Fakat node 0 restart edildi diyelim; bu durumda RG1 node 1 üzerinde aktifleşecektir. Node 0 açıldığı zaman RG1 yükünü üzerine alır ve RG1 node 0 üzerinde primary olarak çalışmaya başlar. Preempt değeri atanmasaydı, priority değeri yüksek olsa bile, biz manuel failover yapana kadar ya da node 1 restart edilene kadar RG1 node 1 üzerinde çalışmaya devam edecekti. RG için preempt’i etkinleştirmek isterseniz aşağıdaki komutu çalıştırmalısınız.

 

root@host# set chassis cluster redundancy-group 1 preempt

 


Yaptığımız Cluster yapılandırmasınının durumunu, operasyonel modda çalıştıracağımız show chassis cluster status komutuyla görebiliriz. Node 0 ve node 1 üzerinde çalıştırılan show chassis cluster status komutunun çıktısını aşağıdaki gibi görmelisiniz.

 



image009

 


image010

 



Konfigürasyon modunda çalışıyorken, operasyonel moda geçmek için exit komutu kullanılır demiştik. Ancak konfigürasyon modunda, operasyonel moddaymış gibi, operasyonel moda ait komutlar yürütebilmek isteyebilirsiniz. Bunun için, ilgili operasyonel moda ait komutun başına run yazarak, komutu konfigürasyon modunda çalıştırabilirsiniz. Bir örnek:



root@Semerkand-Fw1> show chassis cluster status
root@Semerkand-Fw1# run show chassis cluster status


Hoşçakalın.

 

JunOS İşletim Sistemi Interface ve Zone Konfigürasyonu (SRX Firewall)

$
0
0

JunOS işletim sistemini, CLI mimarisini, Cluster mimarisini ve temel konfigürasyonunu incelediğimiz ilk üç makalenin ardından şimdi de Interface ve Zone konfigürasyonlarını inceleyeceğimiz bu dördüncü makalemizle devam ediyoruz.

 

Çalışmalarımızı, cluster çalışacak şekilde yapılandırdığımız iki SRX 3400 Firewall üzerinde gerçekleştireceğiz.



Bir önceki makalemizde,


Node 0 olan birinci Firewall(Semerkand-Fw1) için management IP’si olarak 192.168.0.1’i


Node 1 olan ikinci Firewall(Semerkand-Fw2) için management IP’si olarak 192.168.0.2’yi atamıştık.


Ayrıca Sekiz tane 1 gigabit interface’imizden sekizincisini Data Plane senkronizasyonu için fabric port olarak yapılandırmıştık.


Kalan yedi tane 1 gigabit interface’imizden beş tanesini ve iki tane 10 gigabit interface’imizden de bir tanesini reth olarak konfigüre etmiştik. Yaptığımız interface konfigürasyonunu şu şekilde özetleyebiliriz:

 

 

image001

 



CLI Mimarisinde Interface ve Zone


Bir Zone, güvenlik gereksinimleri aynı olan bir ya da daha fazla network segmentinin bir arada bulunduğu alandır. Network segmentlerini bir zone içerisinde barındırabilmek için de logical interface’leri(sub-interface’leri) bu zone’lara üye etmek gerekir. Bu alanlar arasındaki trafiğin kontrolünü de policy’ler sağlar.



İki tip zone vardır ki sadece bir tanesi konfigüre edilebilir o da User-defined olan zone’lardır. User-defined zone’lar da ikiye ayrılır; Security Zone’lar ve Functional Zone’lar.

 



image002

 

 


Functional Zone’lardan trafik geçmez, bu zone sadece management zone’u olarak kullanılır. Bu zone’un da üyesi management portudur(fxp0). Biz de çalışmalarımızı fxp0 portuna ssh üzerinden erişerek gerçekleştirmekteyiz.



Bazı SRX serisi firewall’larda management portu(fxp0) bulunmaz. Bu durumda da diğer interface’lerden bir tanesi Functional Zone’a üye edilir ve fxp0 gibi kullanılır. Biz High End serisi SRX 3400 kullanıyor ve sadece management için tahsis edilmiş bir port(fxp0) bulunmaktadır ki bu interface de Functional Zone’a atanmış durumdadır.



Management portundan erişebilmeyi sağlamaktan başka, Functional Zone ile ilgili bir konfigürasyonumuz bulunmamaktadır.


Yani bizim işimiz Security Zone’lar üzerinde gerçekleşecektir.

 

ScreenOS işletim sistemli Juniper Firewall’larda,


interface’ler zone’larla ve zone’lar da Virtual Router’larla ilişkilendirilirdi.


ScreenOS sonrasında geliştirilen yeni nesil JunOS işletim sistemli Juniper Firewall’larda ise,


interface’ler, hem zone’larla hem de Virtual Router’larla(Routing Instance) ilişkilendirilir.

 



image003

 



JunOS işletim sistemli bir SRX 3400 firewall’da her bir fiziksel interface, bir veya daha fazla Logical interface(sub-interface) içerebilir.



Bu makaledeki hedefimiz, Fiziksel Interface’leri ve bu interfacelerin üyesi olacak Logical interface’leri tanımlamak, sonrasında da bu logical interface’leri oluşturacağımız zone’lara üye etmek olacaktır. Zira Network segmentlerini bir zone içerisinde barındırabilmek için logical interface’leri(sub-interface’leri) zone’lara üye etmek gerekir.



ScreenOS’teki Virtual Router ve JunOS’taki yeni adı ile Routing Instance’ları tanımlamak mecburiyet değildir. Ancak ağınız farklı routing instance’lar oluşturmanızı gerektirecek bir yapıya sahip olabilir. Bu sebeple sonraki makalelerde Routing Instance içeren konfigürasyonlar da yapacağız.



Interface konfigürasyonu, INTERFACES menüsünden


Zone konfigürasyonu, SECURITY altında ZONES menüsünden


Routing instance konfigürasyonu, ROUTING-INSTANCE menüsünden


Policy konfigürasyonu, SECURITY altında POLICIES menüsünden


Nat konfigürasyonu, SECURITY altında NAT menüsünden gerçekleştirilir.


Address konfigürasyonu, SECURITY altında        ZONES altında ADDRESS-BOOK menüsünden gerçekleştirilir.

 



image004

 

 


Şimdi örnek bir topoloji üzerinden interface ve zone yapılandırmasının nasıl gerçekleştirileceğini görelim.



Web, uygulama, veritabanı ve SFTP sunucularımız olsun ve bu sunucuları ayrı VLAN’larda(zone’larda) bulundurmak isteyelim. Bu VLAN’ların(interface’lerin) herbirini ayrı zone’lara atayacağız.

 



image005

 

 

Konfigüre edeceğimiz bu yapı,


SRX 3400 üzerinde, aşağıdaki gibi bir port kullanımını gerektirecektir:

 



image006

 

 


Konfigürasyon farklılıklarını görebilesiniz diye, hem tag’lı hem de tag’sız trafik için interface tanımlamalarını ve bu interface’lerin zone’lara nasıl atanacaklarını göreceğiz. (Bir paketin tag’lı olması, o paketin etiketli olması anlamına gelir ki örneğin tag’ı 1 olan VLAN-1’e ait paketlerin tag’ı 2 olan VLAN-2'ye ait paketlerden farkını gösterir. Doğal olarak, paket, bir network/güvenlik cihazına ulaştığında da tag'ına göre işlenir.)



Ayrıca fiziksel interface’lerimizden bir tanesi altında, iki tane logical-interface konfigürasyonu yapacağız ki konu tam manasıyla anlaşılabilir olsun.



CLI üzerinde yapılacak konfigürasyonlarda sıklıkla kullanılan üç komut vardır ki bunlar, show, set ve delete komutlarıdır.


show komutu ile mevcut konfigürasyonun tamamı ya da istenilen bölümü incelenebilir.



root@Semerkand-Fw1# show security zone security-zone .......
(Security à Zones à Security-Zone à ...)

 

set komutu ile mevcut konfigürasyona ilave tanımlamalar eklenir.


Bir interface’i konfigüre etmek, yeni bir zone oluşturmak ya da interface’lerin zone’lara atanması hep bu komutla gerçekleştirilir.



root@Semerkand-Fw1# set interfaces .......

 


delete komutu ile mevcut konfigürasyonda belirli tanımlamalar silinebilir.


Bir interface ya da zone’u silmek, bu komutla gerçekleştirilir.


root@Semerkand-Fw1# delete security zones security-zone .......

 


Şu ana kadar konfigürasyonlarımızı hep root kullanıcısı ile yaptık. Şimdi farklı bir kullanıcı tanımlayacağız ve bu kullanıcı ile konfigürasyonlarımızı gerçekleştireceğiz.



Yeni bir kullanıcı tanımlamak için Firewall’da konfigürasyon moduna geçilir. Tanımlayacağımız kullanıcı için bir class seçilmelidir. Biz, class olarak super-user ‘ı seçiyoruz. Seçenekleri görmek için ? kullanılır.

 

root@Semerkand-Fw1# set system login user sensoy class ?
Possible completions:

<class> Login class

AdminClass

operator permissions [ clear network reset trace view ]

read-only permissions [ view ]

super-user permissions [ all ]

unauthorized permissions [ none ]

 

root@Semerkand-Fw1# set system login user sensoy class super-user full-name "Sensoy Sahin" authentication plain-text-password

New password:

Retype new password:



Şifre iki kez girildikten sonra yine konfigürasyon modunda commit komutu kullanılarak tanımladığımız sensoy isimli kullanıcı aktifleştirilir.

 


Interface ve Zone Konfigürasyonu:

 

Interface’leri konfigüre ederken yapılacak işlemlerin neredeyse tamamı logical-interface’lerle ilgilidir.


Bu logical-interface’ler için de, tag’lı trafiği karşılayacaksa, interface’in, tag’lı trafiği karşılayacak şekilde çalışacağının ve tag değerinin(vlan-id) tanımlanması gerekir.



İkinci adım unit değerlerinin tanımlanmasıdır ki, bu unit değeri,


tag’lı paketleri karşılayacak interface’lerde tag değeri olarak,


tag’sız paketleri karşılayacak interface’lerde 0 olarak tanımlanmalıdır.


Bu değer sayesinde logical interface’in ismi de belirlenmiş olacaktır. Örneğin,


reth0 interface’ini konfigüre edeceğimiz zaman, oluşturacağımız logical-interface için, unit değeri 0 atanırsa,


bu sub-interface, reth0.0 olarak isimlendirilmiş olur.


reth2 interface’ini konfigüre edeceğimiz zaman, oluşturacağımız sub-interface için, unit değeri 3 atanırsa,


bu sub-interface reth2.3 olarak isimlendirilmiş olur.



Sonraki adım logical-interface için IP atanmasıdır.



Bir sonraki adımda da yeni bir security zone oluşturulmalıdır.



Son olarak ta oluşturduğumuz logical-interface ve zone ilişkilendirilecektir. (logical-interface, zone’a üye edilecektir.)

 


Şimdi, aşağıda oluşturduğum tabloya göre interface’leri ve zone’ları tanımlayıp interface’leri zone’lara atayalım. Tüm konfigürasyonu node 0 üzerinde gerçekleştireceğiz çünkü yapılan tüm konfigürasyon değişiklikleri otomatik olarak node 1 ile senkronize olacaktır.

 



image007

 



image008

 



Reth0 konfigürasyonu:



{primary:node0}[edit]
sensoy@Semerkand-Fw1# set interfaces reth0 description Port-0      
sensoy@Semerkand-Fw1# set interfaces reth0 unit 0 description WEB-Interface                                     
sensoy@Semerkand-Fw1# set interfaces reth0 unit 0 family inet address 192.168.2.254/24
sensoy@Semerkand-Fw1# set security zones security-zone WEB
sensoy@Semerkand-Fw1# set security zones security-zone WEB interfaces reth0.0
  

 

Birinci satırda reth0 için bir açıklama girildi.


İkinci satırda, reth0.0 için bir açıklama girildi. (Tag’sız olacağı için de unit değeri olarak 0 yazdık.)


Üçüncü satırda reth0.0 için IP girildi.


Dördüncü satırda WEB isimli bir security-zone oluşturuldu.


Beşinci satırda reth0.0 isimli interface’imiz WEB isimli zone ile ilişkilendirildi.

 

Reth1 konfigürasyonu:


sensoy@Semerkand-Fw1# set interfaces reth1 description Port-1      
sensoy@Semerkand-Fw1# set interfaces reth1 unit 0 description UNTRUST-Interface                                           
sensoy@Semerkand-Fw1# set interfaces reth1 unit 0 family inet address 5.10.15.254/24
sensoy@Semerkand-Fw1# set security zones security-zone UNTRUST
sensoy@Semerkand-Fw1# set security zones security-zone UNTRUST interfaces reth1.0       
               

 

Reth2 konfigürasyonu:



sensoy@Semerkand-Fw1# set interfaces reth2 description Port-2
sensoy@Semerkand-Fw1# set interfaces reth2 vlan-tagging
sensoy@Semerkand-Fw1# set interfaces reth2 unit 3 description APP-Interface
sensoy@Semerkand-Fw1# set interfaces reth2 unit 3 vlan-id 3                            
sensoy@Semerkand-Fw1# set interfaces reth2 unit 3 family inet address 192.168.3.254/24
sensoy@Semerkand-Fw1# set security zones security-zone APP
sensoy@Semerkand-Fw1# set security zones security-zone APP interfaces reth2.3

 

Birinci satırda reth2 için bir açıklama girildi.


İkinci satırda, reth2’nin tag’lı trafiğe hizmet edeceği bilgisi girilir.


Üçüncü satırda, reth2.3 için bir açıklama girildi. (Tag’lı olacağı için de unit değeri olarak 3 yazdık.)


Dördüncü satırda, reth2.3 için, tag değerinin 3 olacağı bilgisi girilir.


Beşinci satırda, reth2.3 için IP girildi.


Altıncı satırda APP isimli bir security-zone oluşturuldu.


Yedinci satırda reth2.3 isimli interface’imiz APP isimli zone ile ilişkilendirildi.

 

Reth3 konfigürasyonu:



sensoy@Semerkand-Fw1# set interfaces reth3 description Port-3
sensoy@Semerkand-Fw1# set interfaces reth3 vlan-tagging
sensoy@Semerkand-Fw1# set interfaces reth3 unit 4 description DB-Interface
sensoy@Semerkand-Fw1# set interfaces reth3 unit 4 vlan-id 4                            
sensoy@Semerkand-Fw1# set interfaces reth3 unit 4 family inet address 192.168.4.254/24
sensoy@Semerkand-Fw1# set security zones security-zone DB
sensoy@Semerkand-Fw1# set security zones security-zone DB interfaces reth3.4

 

Reth4 konfigürasyonu:



sensoy@Semerkand-Fw1# set interfaces reth4 description Port-4
sensoy@Semerkand-Fw1# set interfaces reth4 vlan-tagging
sensoy@Semerkand-Fw1# set interfaces reth4 unit 5 description SFTP-Interface
sensoy@Semerkand-Fw1# set interfaces reth4 unit 5 vlan-id 5                            
sensoy@Semerkand-Fw1# set interfaces reth4 unit 5 family inet address 192.168.5.254/24
sensoy@Semerkand-Fw1# set security zones security-zone SFTP
sensoy@Semerkand-Fw1# set security zones security-zone SFTP interfaces reth4.5

 

Reth8 konfigürasyonu:



sensoy@Semerkand-Fw1# set interfaces reth8 description 10G-Port-1
sensoy@Semerkand-Fw1# set interfaces reth8 vlan-tagging

sensoy@Semerkand-Fw1# set interfaces reth8 unit 1 description TRUST-Interface-1
sensoy@Semerkand-Fw1# set interfaces reth8 unit 1 vlan-id 1                            
sensoy@Semerkand-Fw1# set interfaces reth8 unit 1 family inet address 192.168.1.254/24
sensoy@Semerkand-Fw1# set security zones security-zone TRUST
sensoy@Semerkand-Fw1# set security zones security-zone TRUST interfaces reth8.1

sensoy@Semerkand-Fw1# set interfaces reth8 unit 6 description TRUST-Interface-2
sensoy@Semerkand-Fw1# set interfaces reth8 unit 6 vlan-id 6                            
sensoy@Semerkand-Fw1# set interfaces reth8 unit 6 family inet address 192.168.6.254/24
sensoy@Semerkand-Fw1# set security zones security-zone TRUST interfaces reth8.6



Birinci satırda reth8 için bir açıklama girildi.


İkinci satırda, reth8’in tag’lı trafiğe hizmet edeceği bilgisi girilir.


Üçüncü satırda, reth8.1 için bir açıklama girildi. (Tag’lı olacağı için de unit değeri olarak 1 yazdık.)


Dördüncü satırda, reth8.1 için, tag değerinin 1 olacağı bilgisi girilir.


Beşinci satırda, reth8.1 için IP girildi.


Altıncı satırda TRUST isimli bir security-zone oluşturuldu.


Yedinci satırda reth8.1 isimli interface’imiz TRUST isimli zone ile ilişkilendirildi.


Sekizinci satırda, reth8.6 için bir açıklama girildi. (Tag’lı olacağı için de unit değeri olarak 6 yazdık.)


Dokuzuncu satırda, reth8.6 için, tag değerinin 6 olacağı bilgisi girilir.


Onuncu satırda, reth8.6 için IP girildi.


On birinci satırda reth8.6 isimli interface’imiz altıncı satırda oluşturulan TRUST isimli zone ile ilişkilendirildi.



reth8 interface’i ve TRUST zone’u için yapılan konfigürasyonun, diğer interface’lerin ve ilişkilendirildikleri zone’ların konfigürasyonundan farkı, reth8 interface’i için iki tane sub-interface tanımlanıp(reth8.1 ve reth8.6) ikisininde TRUST zone’uyla ilişkilendirilmesidir.

 


image009

 

 

Bu örnekte de görüldüğü üzere, birden fazla interface, tek bir zone ile ilişkilendirilebilmektedir.



Yaptığımız interface ve zone konfigürasyonlarını show komutuyla görebiliriz. Show komutu “show | display set“ şeklinde kullanılırsa, ekrandaki konfigürasyon, set’li olarak konfigürasyon modunda görüntülenir.

 

Örneğin,



{primary:node0}[edit]
sensoy@Semerkand-Fw1# show interfaces reth8

description 10G-Port-1;
vlan-tagging;
redundant-ether-options {
redundancy-group 1;
}
unit 1 {
description TRUST-Interface-1;
vlan-id 1;
family inet {
address 192.168.1.254/24;
}
}

unit 6 {
description TRUST-Interface-2;
vlan-id 6;
family inet {
address 192.168.6.254/24;
}
}

{primary:node0}[edit]
sensoy@Semerkand-Fw1# show interfaces reth8 | display set

set interfaces reth8 description 10G-Port-1
set interfaces reth8 vlan-tagging

set interfaces reth8 redundant-ether-options redundancy-group 1
set interfaces reth8 unit 1 description TRUST-Interface-1
set interfaces reth8 unit 1 vlan-id 1
set interfaces reth8 unit 1 family inet address 192.168.1.254/24

set interfaces reth8 unit 6 description TRUST-Interface-2
set interfaces reth8 unit 6 vlan-id 6
set interfaces reth8 unit 6 family inet address 192.168.6.254/24

 

show komutu yerine show | display set komutu kullanıldığında görüntülenen konfigürasyon, daha sonra yapacak olduğunuz konfigürasyonlar için örnek teşkil edeceğinden büyük kolaylık sağlamaktadır.

 

Hoşçakalın.


JunOS İşletim Sistemi Security Policy Konfigürasyonu (SRX Firewall)

$
0
0

 

Beşinci JunOS makalemizde, güvenlik politikalarının(security policy) konfigürasyonunu inceleyeceğiz.

 

Güvenlik gereksinimleri aynı olan bir ya da daha fazla network segmentinin bir arada bulunduğu alanlar zone olarak tanımlanır ki bu zone’lar arasındaki trafiğin kontrolünü de security policy’ler sağlar.



Interface’leri ve zone’ları aşağıdaki tabloda gösterildiği şekilde konfigüre etmiştik.

 



image001

 



Şimdi de Policy konfigürasyonu, SECURITY altında, POLICIES menüsünden gerçekleştireceğiz.

 



image002

 

 


Bir security policy yazabilmek için, temelde altı tanım gerekmektedir. Bu tanımlar:


1- Zone bilgisi(from-zone ve to-zone)
2- Policy ismi
3- Zone’lara üye address-book’ların bilgisi(address ve address-set)
4- Application bilgisi tanımlı olmalıdır.(Predefined ya da custom)
5- Action bilgisi(permit, deny, reject)
6- İlgili kuraldan geçen trafiğin logunun tutulup tutulmayacağının bilgisi (session close ya da session-init)

 

1- From-zone ve To-zone Bilgisi:



Yazacak olduğumuz policy’lerde trafiğin kaynak zone(from-zone) bilgisi ve hedef zone(to-zone) bilgisi tanımlanmalıdır.



Zone’larımızı tanımlamıştık. Tanımladığımız zone’lar şu şekildeydi:

 



image003

 

 


{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP ...


2- Policy isminin tanımlanması:


Her yazılacak policy için açıklama mahiyetinde bir isim tanımlanmalıdır.


{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Guvenlik-RDP-Erisim ...



3- Address-book tanımlanması:


Network segmentleri kavramının JunOS policy’lerindeki karşılığı, tanımlayacak olduğumuz address-book‘lardır.


Addres-book tanımı bir address’i ifade edebileceği gibi bir address-set’i de ifade edebilir. Address-set, birden fazla adresi barındıran bir gruptur. Örneklerle inceleyelim.

Node 0 olan birinci Firewall’a, 192.168.0.1 IP’li management portundan SSH yönetim protokolü kullanan bir programla bağlanabiliriz.


TRUST zone’unda, 192.168.1.11 IP’li bir bilgisayar için address-book tanımlayalım. İsmi SensoySahin-192.168.1.11 olsun.
TRUST zone’unda, 192.168.1.12 IP’li bir bilgisayar için address-book tanımlayalım. İsmi FikriBCelik-192.168.1.12 olsun.
TRUST zone’unda, 192.168.1.13 IP’li bir bilgisayar için address-book tanımlayalım. İsmi OsmanDogan-192.168.1.13 olsun.
TRUST zone’unda, 192.168.6.11 IP’li bir bilgisayar için address-book tanımlayalım. İsmi HakanUzuner-192.168.6.11 olsun.
TRUST zone’unda, 192.168.6.12 IP’li bir bilgisayar için address-book tanımlayalım. İsmi YasarCugalir-192.168.6.12 olsun.



SFTP zone’unda, 192.168.5.1 IP’li bir server için address book tanımlayalım. İsmi SFTP_Server-192.168.5.1 olsun


Bu altı address’in tanımlanması için aşağıdaki komutlar çalıştırılır.


{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
SensoySahin-192.168.1.11 192.168.1.1



sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
FikriBCelik-192.168.1.12 192.168.1.12



sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
OsmanDogan-192.168.1.13 192.168.1.13



sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
HakanUzuner-192.168.6.11 192.168.6.11

sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
YasarCugalir-192.168.6.12 192.168.6.12



sensoy@Semerkand-Fw1# set security zones security-zone SFTP address-book address
SFTP-Server-192.168.5.1 192.168.5.1


 


image004

 



Tanımladığımız her bir address için, address ismi olarak, hem isim hem de IP değerini bir arada kullandım. Bu sayede isim ya da IP değerini unuttuğunuz bir address kaydı için, hem ismiyle hem de IP’si ile arama yapabilme imkanına sahip olabilirsiniz.


Şimdi de iki tane address-set tanımlayalım. Birincisinin ismi Guvenlik diğerinin Sistem olsun. Yukarıda tanımladığımız address objelerini bu address-set’lere üye edelim. Bunun için aşağıdaki gibi komutlar çalıştırmalıdır:


{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address-set Guvenlik address SensoySahin-192.168.1.11


sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address-set Guvenlik address FikriBCelik-192.168.1.12


sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address-set Guvenlik address OsmanDogan-192.168.1.13


sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address-set Sistem address HakanUzuner-192.168.6.11


sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address-set Sistem address YasarCugalir-192.168.6.12


Bu komutlarla Guvenlik ve Sistem isimli iki address-set oluşturulup bu set’lere address’ler üye edilmiş oldu. Daha sonra yazılacak policy’lerde hem address hem de address-set’ler kullanılabilir.

 


Bir address’i oluştururken, IP tanımında subnet belirtilmezse, bu tanım IP/32 olarak kabul edilir. Yani,


sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
SensoySahin-192.168.1.11
192.168.1.1



Bu tanımda 192.168.1.1 yazılmasıyla 192.168.1.1/32 yazılması aynı şeyi ifade eder.

sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
SensoySahin-192.168.1.11
192.168.1.1/32

 


Tek bir IP yerine bir IP bloğu tanımlanacaksa aşağıdaki örnekte gösterildiği gibi tanım yapılabilir.



sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
VLAN-1 192.168.1.0/24



ya da


sensoy@Semerkand-Fw1# set security zones security-zone TRUST address-book address
VLAN-6 192.168.6.0/24



SFTP zone’unda da bir subnet için address tanımı yapalım:



sensoy@Semerkand-Fw1# set security zones security-zone SFTP address-book address
VLAN-5 192.168.5.0/24



4- Application Tanımlanması

 

 

JunOS üzerinde ön tanımlı application’lar tanımlı geldiği gibi, özel application’lar da tanımlanabilmektedir. Örneğin
http port 80 için junos-http
https port 443 için junos-https
ftp port 21 için junos-ftp
ssh port 22 için junos-ssh gibi application’lar ön tanımlı olarak gelmektedir.

Özel application’lar da tanımlanabilmektedir. Örneğin
Protokolü TCP ve portu 8080 olan bir application tanımlayalım:



sensoy@Semerkand-Fw1# set applications application TCP-8080 protocol tcp destination-port 8080


Protokolü UDP ve portu 2525 olan bir application tanımlayalım:


sensoy@Semerkand-Fw1# set applications application UDP-2525 protocol udp destination-port 2525

 

Application set’ler de oluşturulabilmektedir. Örneğin,
junos-http, TCP-8080 ve UDP-2525 isimli üç application’ı DenemeAppSET isimli bir application-set’e üye edelim.



sensoy@Semerkand-Fw1# set applications application-set DenemeAppSET application junos-http
sensoy@Semerkand-Fw1#
set applications application-set DenemeAppSET application TCP-8080
sensoy@Semerkand-Fw1# set applications application-set DenemeAppSET application UDP-2525



5- Action Tanımlanması

 

JunOS üzerinde ön tanımlı olarak üç action tanımlı gelmektedir. Bunlar: permit, deny ve rejecttir. İzin verilmesi gereken bir trafik için permit kullanılırken, bloklanması gereken bir trafik için deny action’ı tanımlanmalıdır. Reject kullanıldığında da trafik yine bloklanmaktadır fakat deny action’ından farklı olarak, bir bilgilendirme mesajı da yayımlanmaktadır. (UDP trafiği için ICMP(unreachable message) ve TCP trafiği için reset(RST) paketi gönderilir.)

 


6- Trafik Log’larının Tanımlanması

 

Bir policy’de, üzerinden geçen trafik kayıt altına alınsın(log’lansın) istenirse, ön tanımlı olarak gelen iki log seçeneğinden bir tanesi etkinleştirilmelidir. Bu seçenekler, session-init ve session-close ‘dur. Tavsiye edilen, bloklanan trafik için session-init ve izin verilen trafik için session-close seçeneğinin aktifleştirilmesidir.


Şimdi de örnek policy’ler tanımlayalım:



1- TRUST zone’undaki SensoySahin-192.168.1.11 isimli address’ten SFTP zone’undaki SFTP-Server-192.168.5.1 isimli address’e full erişim gerçekleştirilebilir olsun.


2- TRUST zone’undaki Guvenlik ve Sistem isimli iki address-set’ten, SFTP zone’undaki tüm address’lere RDP erişimi gerçekleştirilebilir olsun.


3- TRUST zone’undaki Sistem isimli address-set üyesi bilgisayarlardan SFTP zone’undaki tüm address’lere SSH erişimi gerçekleştirilebilir olsun.


4- Yukarıdaki üç erişim hariç, TRUST zone’undaki hiç bir adresten SFTP zone’una erişim gerçekleştirilemesin.

Ve tanımlayacağımız bu dört kural için de trafik log’lansın.


Policy-1:


Full erişim istendiği için application tanımı olarak any yazacağız ayrıca bir izin kuralı tanımlayacağımız için log türü olarak session-close yazacağız.

 

 

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim match source-address SensoySahin-192.168.1.11
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim match destination-address SFTP-Server-192.168.5.1
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim match application any
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim then permit
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim then log
session-close



Policy-2:


Yazacağımız policy’de RDP izni istenmektedir fakat protokolü TCP ve portu 3389 olan application ön tanımlı olarak gelmediğinden bu application custom tanımlanmalıdır. Önce application’ı TCP-3389 ismiyle oluşturalım.


sensoy@Semerkand-Fw1# sensoy@Semerkand-Fw1# set applications application TCP-3389 protocol tcp destination-port 3389


Şimdi de yazacağımız policy’de bu application’ı kullanalım.

 

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match source-address Guvenlik
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match source-address Sistem
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match destination-address any
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match application TCP-3389
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim then permit
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim then log
session-close

 


Policy-3:


sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim match source-address Sistem
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim match destination-address any
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim match application junos-ssh
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim then permit
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim then log
session-close

 


Policy-4:

 

 

Bir blok kuralı tanımlayacağımız için log türü olarak session-init yazacağız. Kuralımızın adı LOG olsun

 

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali match source-address any
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali match destination-address any
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali match application any
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali then deny
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali then log
session-init

 

 

Yazdığımız bu dört kuralı, “show” komutunu “| display set “ parametresiyle kullanarak görmek istediğimizde aşağıdaki gibi bir ekranla karşılaşırız.

 

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# show security policies from-zone TRUST to-zone SFTP | display set

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim match source-address SensoySahin-192.168.1.11

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim match destination-address SFTP-Server-192.168.5.1

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim match application any

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim then permit

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-Erisim then log session-close

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match source-address Guvenlik

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match source-address Sistem

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match destination-address any

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim match application
TCP-3389

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim then permit

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy RDP-Erisim then log session-close

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim match source-address Sistem

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim match destination-address any

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim match application junos-ssh

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim then permit

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy SSH-Erisim then log session-close

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali match source-address any

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali match destination-address any

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali match application any

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali then deny

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone SFTP policy LOG-Kurali then log
session-init

 

Bir policy’yi silmek için delete komutu kullanılır. Örneğin Sensoy-Full-Erisim isimli policy’yi silmek istediğimizde aşağıdaki satırları yazmalıyız:


{primary:node0}[edit]
sensoy@Semerkand-Fw1# delete security policies from-zone TRUST to-zone SFTP policy Sensoy-Full-
Erisim

 


Bir policy’yi silmek yerine geçersiz de kılabilirsiniz. Bunun için deactivate komutu kullanılır. Örneğin RDP-Erisim isimli policy’yi geçersiz olarak tanımlayalım.


{primary:node0}[edit]
sensoy@Semerkand-Fw1# deactivate security policies from-zone TRUST to-zone SFTP policy RDP-
Erisim



Aynı policy’yi daha sonra tekrar etkinleştirmek için activate komutu kullanılır.


{primary:node0}[edit]
sensoy@Semerkand-Fw1# activate security policies from-zone TRUST to-zone SFTP policy RDP-
Erisim



Bir policy’nin sırasını değiştirmek için insert komutu kullanılır. insert komutu after ya da before parametresi ile birlikte kullanılır. Örnek üzerinde görelim:


SSH-Erisim isimli policy’nin RDP-Erisim isimli policy’den önce sıralanması için aşağıdaki komut çalıştırılır:


{primary:node0}[edit]
sensoy@Semerkand-Fw1# insert security policies from-zone TRUST to-zone SFTP policy SSH-Erisim before policy RDP-Erisim



SSH-Erisim isimli policy’nin Log-Kurali isimli policy’den sonra sıralanması için aşağıdaki komut çalıştırılır:


{primary:node0}[edit]

sensoy@Semerkand-Fw1# insert security policies from-zone TRUST to-zone SFTP policy SSH-Erisim after policy Log-Kurali

 


Zone üyesi herhangi bir address’in, aynı zone üyesi başka bir address ile iletişiminde herhangi bir izin kuralına ihtiyaç bulunmamaktadır. Ancak şöyle özel bir durum vardır. Eğer bir zone’a iki farklı logical-interface bağlandıysa, bu iki logical-interface’in baktığı ağ bölümlerinin diğeriyle aynı zone’daymış gibi çalışması için bir policy yazılması gerekmektedir. İnterface ve zone konfigürasyonumuzu hatırlayalım:

 


image003

 

 

 

192.168.1.0/24 ve 192.168.6.0/24 VLAN’ları, reth8.1 ve reth8.6 logical interface’leriyle TRUST isimli zone’a bağlanmış durumdadırlar.

192.168.1.11 IP’li ve SensoySahin-192.168.1.11 isimli bilgisayar ile
192.168.6.12 IP’li ve YasarCugalir-192.168.6.12 isimli bilgisayar aynı zone’a üye olmalarına rağmen birbirlerine erişim gerçekleştiremezler.



Çözüm olarak, TRUST zone’undan TRUST zone’una, yukarıda tanımladığımız VLAN-1 ve VLAN-6 isimli address’ler kullanılarak aşağıdaki gibi bir policy yazılır.


{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone TRUST policy VLAN-Erisim match source-address VLAN-1

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone TRUST policy VLAN-Erisim match source-address VLAN-6

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone TRUST policy VLAN-Erisim match destination-address VLAN-1

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone TRUST policy VLAN-Erisim match destination-address VLAN-6

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone TRUST policy VLAN-Erisim match application any
sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone TRUST policy VLAN-Erisim then permit

sensoy@Semerkand-Fw1# set security policies from-zone TRUST to-zone TRUST policy VLAN-Erisim then log
session-close

 


Son olarak, address objelerinin tanımlanmasıyla ilgili bir konuyu inceleyeceğiz. Şöyle ki:
Oluşturduğumuz tüm address objelerinde sürekli IP’ler üzerinden tanımlama yaptık. Oysa SRX firewall’da bir DNS sunucusu tanımlanırsa, objeler için IP yerine örneğin bir URL ismi de kullanılabilir. Bir örnek yapalım.



{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security zones security-zone UNTRUST address-book address
Mostar-77.79.108.82 77.79.108.82

 

Bu konfigürasyonla, Mostar-77.79.108.82 isimli bir address oluşturduk. Firewall, Mostar-77.79.108.82 isimli objenin adresi olarak 77.79.108.82 IP’sini tanımaktadır. Bunun yerine aşağıdaki gibi bir tanımlama da yapılabilir.


{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security zones security-zone UNTRUST address-book address
Mostar-URL
www.mostar.com.tr

 

Bu tanımın çalışması, yani Firewall tarafından da Mostar-URL isimli objenin tanımlanabilir olması için, Firewall’da, DNS sorgularının gönderilebileceği bir DNS Server’ın tanımlı olması gerekir. Şimdi de Firewall’umuzun CLI’ında bir name server tanımlayalım. DNS Server IP’si 192.168.1.2 olsun. Bunun için aşağıdaki komut çalıştırılır:

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set system name-server 192.168.1.2

 

Hoşçakalın.

Hardware Security Module (HSM) nedir?

$
0
0

Hardware Security Module (HSM) nedir?

 

Hardware Security Module (HSM)’ler hassas kriptografik anahtarları fiziksel ortamda saklamak ve kriptografik işlemleri en güvenli şekilde gerçekleştirmek için üretilmiş özel güvenlik donanımlarıdır. Bu donanımlar uygulamaların güvenli bir şekilde çalışmasını sağlarlar. Bu uygulamalara örnek; Kök anahtar korunumu, PIN yönetimi, online bankacılık, veritabanı şifreleme, doküman ve kod imzalama, doküman haklarının korunumu, sertifika geçerliliği, SSL Web, XML web servisleri, zaman damgası, DNS güvenliği işlemlerini verebiliriz.

 

 

Kriptografik cihazlar müşterilerin veya hükümetlerin talep ettikleri genel güvenlik standartlarını NITS(National Institute of Standards and Technology) veya FIPS(Federal Information Processing Standard ) sertifikasyonlarına uyarak sağlamaktadırlar. HSM’ler saldırılara karşı savunma sistemleri (Tamper Protection) ile donatılmışlardır. Herhangi bir müdahaleye karşı kendi kendilerini sıfırlama özelliğine sahiptirler.

 

 

Donanımlar fiziksel olarak external ve internal olmak üzere kullanım amaçlarına göre ayrılırlar. External HSM’ler hizmet verdikleri uygulama sunucularına özel kablo ile direkt bağlı olarak veya ethernet portu üzerinden ağ ortamlarında çalışabilmektedirler. Internal HSM’ler ise PCI, PCI-Express ve PCMCIA Kart olarak sunucular üzerinde çalışmaktadırlar. Cihazlar tek başlarına veya “High Availability” ve ”Hot Backup” modlarında çalışarak yüksek performans ihtiyaçlarına cevap verebilmektedirler.

 

 

image001image002

 

 

 

Örnek HSM donanımları (Internal Safenet PCI, External Thales 9000)

 

 

HSM üreten firmalar; Thales, Safenet, IBM, ARX, BULL, Utimaco, Atos Worldline

 

Uygulama seviyesinde alternatif API’ler kullanılabilir.

 

·         PKCS #11 (Public Key Cryptography Standards) (also cryptoki)

·         JCE (JAVA Cryptographic Engine)

·         OpenSSL – OpenSSL engine API

·         JCE/JCA – Java's cryptography API

·         MSCAPI (Microsoft Cryptography API) IIS, CA and others, also available in .NET

·         Microsoft CNG API – Microsoft's next-generation crypto API available for Windows Vista onwards, used by IIS, ADCS and others.

 

HSM YÖNETİMİ

 

 

HSM cihazlarının üreticiden satın alınmasında itibaren uyulması gereken fiziksel güvenlik zorunlulukları vardır. Bu gereklilikler VISA ve MASTERCARD gibi ödeme sistemleri dünyasındaki kuruluşlar tarafından denetimlerde, özellikle uygulanıp uygulanmadığı sorgulanmaktadır.

 

 

Öncelikle üreticiden teslim alınan ürünün size ulaşana kadar fiziksel bir müdahaleye uğramadığından emin olmalısınız. Cihazın teslim alınması aşamasında herhangi bir fiziksel darbesinin olmadığının gözle kontrolü önemlidir. Cihaz teslim alındıktan sonra güvenli ortama kurulana kadar geçen sürede müdahaleye açık ortamlarda tutulmamalıdır. Bunun için alınabilecek en pratik çözüm, donanımın kısa sürede güvenli ortama kurulumudur.

 

HSM donanımlarının tutulduğu güvenli ortamlar özel odalar ya da veri merkezleri içerisinde güvenli kabinler olmalıdır. Güvenli odalara ve veri merkezlerine erişim kontrolü sağlanmalı, erişim kayıtları tutulmalıdır.

 

 

HSM cihazlarını yöneten kişilerin tek başlarına doğrudan cihazlara müdahale edememeleri gerekmektedir. HSM donanımlarına erişim ikili kontrol prensibine uygun olmalıdır.

 

İkili Kontrol Prensibi: Anahtar parçalarının oluşturulması, saklanması ve yüklenmesi faaliyetlerinin gerçekleştirilebilmesi için yetkilendirilmiş en az iki görevlinin birlikte çalışmak zorunda olması gerekliliğidir.

 

 

İkili kontrol prensibini uygulamak için HSM’in bulunduğu kabinin ikili kontrol sistemi ile açılıyor olması gerekmektedir. Bu kontrol çift kilit, kilit + keypad , çift keypad ile sağlanabilir. HSM cihazlarının bulunduğu kabinlerde sadece ön kapak değil, arka kapağında tek kişi tarafından müdahale edilememesine dikkat edilmelidir. HSM cihazları üzerinde işlem sırasında, erişen ve eşlik eden tüm kişilerin imzaları ile yapılan işlem form ile kayıt altına alınmalı, formlarda yapılmış olan işlemler denetim sırasında detaylı şekilde görülebilmelidir.

 

 

HSM ekranları güvenlik kameraları tarafından görüntülenemeyecek şekilde konumlandırılmalıdır. HSM’in bulunduğu kabinetin üzerinde donanımın sarsıntıya karşı hassas olduğuna dair uyarı levhaları bulunmalıdır. HSM kabin içine varsa rack kitleri yoksa raf üzerine sarsıntıya duyarlı şekilde monte edilmelidir. Kabinet üzerinde müdahaleye açık elektrik sigortası olmamalıdır. HSM üzerinde varsa iki adet power girişinin ikiside kullanılmalı ve farklı kaynaklardan beslenmelidir.

 

 

HSM donanımın yönetimi için kullanılan laptop veya bilgisayar sadece bu iş için kullanılmalı ve HSM kabinlerinin içinde muhafaza edilmelidir. Yönetim için kullanılan laptop veya bilgisayar başka iş için kullanılmamalı, üzerinde herhangi bir ek yazılım barındırmamalıdır. HSM’i yönetmek için kullanılan program (Hyper Teminal vb.) prosedürde açıkça belirtilmelidir.

 

 

HSM her ne maksatla olursa olsun kurum dışı bir firmaya gönderilecekse (tamir / versiyon upgrade )mutlaka sıfırlanmalı (fabrika ayarlarına geri alınmalı) içindeki bilgilerin silindiğinden emin olunmalıdır. Bakıma gönderilecek cihazlar güvenilir bir kargo aracılığı ile ya da müşterinin kendi personeli tarafından “tedarikci anlaşması “ imzalanmış firmaya güvenli bir koli içinde teslim edilmelidir. HSM’in sıfırlama işleminden önce HSM üzerindeki anahtarlar başka bir HSM üzerine aktarılmalı yada yedeklemenin akıllı kartlar ile yapıldığından emin olunmalıdır. HSM donanımı kullanımdan kaldırılacaksa HSM üzerindeki anahtarlar yeni HSM üzerine aktarılmalı, HSM sıfırlanmalı, işlem sonrasında tutanak tutulmalıdır. HSM’in kullanımdan kaldırılacağı durumda anahtarların silinmesi mümkün değilse tutanakla cihaz fiziksel olarak imha edilmelidir.

 

 

ANAHTAR YÖNETİMİ

 

 

HSM hizmet verdiği tüm digital anahtarları şifrelemek için kendi üzerlerinde kök anahtar tutarlar. Bu anahtarları şifrelemek için kullandığı en hassas ve en gizli anahtar, LMK (Local Master Key) ana şifreleme anahtarıdır. En kritik olan bu anahtar formlara açık olarak yazılmaz, HSM ile üreticiden gelen akıllı kartlara istenilen adette parçalara bölünür. Genelde 3 adet key parçasından ana keyin elde edilmesi yeterlidir.

 

 

Oluşturulan anahtar parçaları kurumlarda en güvenilir personele (AGG: Anahtar Güvenlik Görevlisi) teslim edilmeli ve fiziksel güvenlikleri sağlanmalıdır.

 

 

Bilginin Bölüştürülmesi Prensibi: Hiçbir kimsenin ve hiçbir AGG’nin anahtar parçalarının açık metinlerinden üçünü birden bilmemesi ya da anahtar parçalarının saklandığı kasaların her üçüne birden erişim yetkisinin olmaması gerekliliğidir.

 

 

Bu prensibe uygun olarak AGG’lere teslim edilen anahtar parça açık formları ve akıllı kartlar güvenli kasalara, bir defa açıldığında tekrar kullanılamayan seri numaralı özel zarflarda konmalıdır. Kasaların anahtarları 2 farklı kişide olmalı ve AGG’ler kasalara direkt erişememelidirler. Kasalardaki her türlü key bilgisini tutan materyallerin her türlü hareketi (Kasadan alınması, Kasaya konulması) form ile kayıt altına alınmalıdır. AGG olarak seçilen kişilerin yedekleri olmalı ve yedeklere teslim edilen anahtar parçaları farklı lokasyonlarda güvenli kasalarda saklanmalıdır.

 

JunOS İşletim Sistemi NAT Konfigürasyonu (SRX Firewall)

$
0
0

Altıncı JunOS makalemizde, JunOS işletim sistemli bir Juniper SRX 3400 Firewall üzerinde NAT(Network Address Translation) konfigürasyonlarının nasıl gerçekleştirileceğini inceleyeceğiz.

 

IPv4 adreslerinin yetersizliğine çözüm olarak geliştirilmiş NAT fonksiyonu sayesinde internet ortamında kullanılan gerçek IP’ler (public) ve lokal ağda kullanılan özel IP’ler (private) arasında dönüşüm ve dolayısıyla iletişim mümkün olabilmektedir. Bu sayede zaten yetersiz kalan public IP’lerin lokal ağlarda kullanılmalarının önüne geçilmiş olmaktadır.



Private IP olarak kullanılabilecek IP blokları şu şekildedir:

 

 

image001

 

 

Tüm firewall’larda özünde iki çeşit NAT konfigürasyonu gerçekleştirilmektedir. Bir tanesi Source NAT ve diğeri Destination NAT’tır. Yani lokal ağınızdaki sistemlerinizin internet ortamına erişimlerinde Source NAT tanımı yapılandırılmalıyken, internet ortamından lokal ağınızda publish ettiğiniz sistemlerinize erişimler için de destination NAT konfigürasyonu yapılandırılmalıdır.


Bu iki NAT tanımının haricinde bir de Static NAT vardır ki aslında görevi destination NAT’lık yapmaktır. Farklarını ve kullanımını ilerleyen sayfalarda inceleyeceğiz.

 

NAT


1 – Source NAT
2 - Destination NAT
i- Destination NAT
ii- Static NAT



NAT konfigürasyonları yapılandırılırken paketlerin source ve destination IP’leri için dönüşümler sağlanabildiği gibi port dönüşümleri de mümkün olabilmektedir(Port Address Translation - PAT).

 

Aşağıdaki topolojiye göre yapacak olduğumuz örnek konfigürasyonlarla JunOS CLI’ında NAT yapılandırmasını inceleyelim:

 

 

image002

 

 

1 – Source NAT

 

Source NAT Örnek-1:


TRUST zone’undaki 192.168.1.11 IP’li bilgisayar internete 5.10.15.11 IP’si ile NAT’lanarak çıkış yapsın.

 

Source NAT Örnek-2:


TRUST zone’undaki diğer tüm bilgisayarlar 5.10.15.12 ve 5.10.15.13 IP’leriyle çıkış yapsın. (İki IP’den oluşan bir Pool’un kullanımı)

 

Bunun için yapacak olduğumuz Source NAT konfigürasyonları aşağıdaki gibi olmalıdır:



Örnek-1:

 

Rule-Set Tanımlanmalı (Kaynağı TRUST hedefi UNTRUST olacak T_to_U isimli bir rule-set tanımlayalım )

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U from zone TRUST
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U to zone UNTRUST

 

Pool Tanımlanmalı (Sensoy-pool isimli bir pool tanımlayalım)

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat source pool Sensoy-pool address 5.10.15.11/32

 

Rule Tanımlanmalı

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule Sensoy-rule match source-address 192.168.1.11/32
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule Sensoy-rule match destination-address
0.0.0.0/0
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule Sensoy-rule then source-nat pool
Sensoy-pool

Örnek-2:

 

Rule-Set Tanımlanmalı

 

T_to_U isimli bir rule-set bir önceki örnekte zaten tanımlanmıştı.

 

Pool Tanımlanmalı (All-Clients-pool isimli bir pool tanımlayalım)

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat source pool All-Clients-pool address 5.10.15.12/32 to 5.10.15.13/32

 

Rule Tanımlanmalı

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule All-Clients-rule match source-address
0.0.0.0/0
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule All-Clients-rule match destination-address 0.0.0.0/0
sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule All-Clients-rule then source-nat pool All-Clients-pool

 

Source NAT konfigürasyonunda pool tanımı kullandığımız iki örneği yukarıda gördük. Pool tanımının haricinde, Source NAT IP değeri olaral UNTRUST interface’inin IP’si de kullanılabilir.

 

sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule All-Clients-rule then source-nat interface



Ya da Source NAT kullanılmasın da denilebilir.



sensoy@Semerkand-Fw1# set security nat source rule-set T_to_U rule All-Clients-rule then source-nat off

 

2 – Destination NAT

 

i- Destination NAT



Destination NAT Örnek-1:


192.168.2.1 IP’li Web sunucumuz üzerinde geliştirilmiş sayfamızı dışarıdan 5.10.15.80 IP’si ile erişilebilir hale getirmek için(Web Publishing) Destination NAT tanımı yapalım.

 

Destination NAT Örnek-2:


192.168.5.1 IP’li SFTP sunucumuzu dışarıdan SSH portundan ve 5.10.15.22 IP’si ile erişilebilir hale getirmek için Destination NAT tanımı yapalım.

 

Örnek-1:

 

Rule-Set Tanımlanmalı (Kaynağı UNTRUST olacak U_DNAT isimli bir rule-set tanımlayalım )

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT from zone UNTRUST

 

Pool Tanımlanmalı (Web-pool isimli bir pool tanımlayalım)

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat destination pool Web-pool address 192.168.2.1/32
sensoy@Semerkand-Fw1# set security nat destination pool Web-pool address port 80

 

Rule Tanımlanmalı

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule Web–rule match source-address 0.0.0.0/0
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule Web–rule match destination-address 5.10.15.80/32
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule Web–rule match destination-port 80

sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule Web–rule then destination-nat pool
Web-pool

 

Örnek-2:

 

Rule-Set Tanımlanmalı

 

U_DNAT isimli bir rule-set bir önceki örnekte zaten tanımlanmıştı.

 

Pool Tanımlanmalı (SFTP-pool isimli bir pool tanımlayalım)

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat destination pool SFTP-pool address 192.168.5.1/32
sensoy@Semerkand-Fw1# set security nat destination pool SFTP-pool address port 22

 

Rule Tanımlanmalı

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule SFTP–rule match source-address 0.0.0.0/0
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule SFTP–rule match destination-address 5.10.15.22/32
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule SFTP–rule match destination-port 22
sensoy@Semerkand-Fw1# set security nat destination rule-set U_DNAT rule SFTP–rule then destination-nat pool SFTP-pool

 

2 – Destination NAT

 

ii- Static NAT

 

Destination NAT tanımında yaptığımız iki örneği şimdi de Static NAT ile gerçekleştirelim.


Örnek-1:

 

Rule-Set Tanımlanmalı

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat static rule-set U_StNAT from zone UNTRUST

 

Rule Tanımlanmalı

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat static rule-set U_StNAT rule Web–rule match destination-address 5.10.15.80/32
sensoy@Semerkand-Fw1# set security nat static rule-set U_StNAT rule Web–rule then static-nat prefix 192.168.2.1/32

 

Örnek-2:

 

Rule-Set Tanımlanmalı

 

U_StNAT isimli bir rule-set bir önceki örnekte zaten tanımlanmıştı.

 

Rule Tanımlanmalı

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat static rule-set U_StNAT rule Web–rule match destination-address 5.10.15.22/32
sensoy@Semerkand-Fw1# set security nat static rule-set U_StNAT rule Web–rule then static-nat prefix 192.168.5.1/32

 

Destination NAT ile Static NAT arasındaki en büyük fark, Static NAT konfigürasyonunda port tanımlama imkanının bulunmamasıdır. Tanımlanan NAT, tüm port’lar için geçerli olacaktır.

 

Ayrıca, Static NAT tanımlanmış bir Server, dışarıya da aynı IP ile NAT’lanıp çıkar. Bizim örneğimizde Web Server için


5.10.15.80 ß à192.168.2.1 şeklinde bir Static NAT tanımı yaptık. 192.168.2.1 IP’li Web sunucumuz, internete erişim gerçekleştirdiğinde de IP’si 5.10.15.80 olarak görülecektir. Farklı bir IP ile NAT’lanıp çıkması mümkün olmayacaktır.

 

Proxy-ARP Konfigürasyonu

 

İster Source isterse de Destination( Destination & Static) NAT tanımı gerçekleştirilsin, NAT konfigürasyonunda tanımlanan tüm IP’ler için Proxy-ARP tanımı yapılmak zorundadır. Bizim örneklerimizde kullandığımız Public IP’ler şunlardı:

 

5.10.15.11/32
5.10.15.12/32
5.10.15.13/32
5.10.15.80/32
5.10.15.22/32

 

Bu beş IP için yapılması gereken Proxy-ARP konfigürasyonu aşağıdaki gibi olmalıdır:

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security nat proxy-arp interface reth1.0 address 5.10.15.11/32
sensoy@Semerkand-Fw1# set security nat proxy-arp interface reth1.0 address 5.10.15.12/32
sensoy@Semerkand-Fw1# set security nat proxy-arp interface reth1.0 address 5.10.15.13/32
sensoy@Semerkand-Fw1# set security nat proxy-arp interface reth1.0 address 5.10.15.80/32
sensoy@Semerkand-Fw1# set security nat proxy-arp interface reth1.0 address 5.10.15.22/32

 

Son olarak, Destination NAT tanımı yaptığımız Web Server için yazılacak policy örneğiyle makalemizi sonlandıralım. Dikkat edilmesi gereken husus, policy’nin destination-address kısmında public IP değil private IP tanımlanması gerektiğidir. Yani destination-address kısmında 5.10.15.80 değil, 192.168.2.1 IP’si yazılmalıdır.

 

{primary:node0}[edit]
sensoy@Semerkand-Fw1# set security policies from-zone UNTRUST to-zone WEB policy WebSayfasi-Erisim match source-address any

sensoy@Semerkand-Fw1# set security policies from-zone UNTRUST to-zone WEB policy WebSayfasi-Erisim match destination-address WEB_Server-192.168.2.1
sensoy@Semerkand-Fw1# set security policies from-zone UNTRUST to-zone WEB policy WebSayfasi-Erisim match application junos-http
sensoy@Semerkand-Fw1# set security policies from-zone UNTRUST to-zone WEB policy WebSayfasi-Erisim then permit
sensoy@Semerkand-Fw1# set security policies from-zone UNTRUST to-zone WEB policy WebSayfasi-Erisim then log session-close

 

Hoşçakalın.

Thales HSM Kurulumu

$
0
0

 

Makalenin ilk bölümüne aşağıdaki linkten ulaşabilirsiniz

http://www.cozumpark.com/blogs/gvenlik/archive/2012/02/12/hardware-security-module-hsm-nedir.aspx

Thales, 7000, 8000, 9000 serisi olarak ürünlerini gruplandırmıştır. Günümüzde 7000 (RACAL olarak bilinir) serisine destek verilmemekte, 8000 serisi HSM satışı yapılmamakta olup 2014 yılı sonunda üretici desteği de kesilecektir.

 

 

Satışı yapılan 9000 serisinde gelen en önemli ek özellikler ise cihazlarda yedek güç kaynağı girişi ve ikinci Ethernet portunun eklenmesi ile HSM başında yapmanız gereken işlemlerin uzaktan üreticinin sağladığı donanımla artık yapılabilmesidir. 9000 serisi ürünler geriye dönük olarak tüm özellikleri desteklemektedirler.

 

 

Bu makalemizde 8000 serisi Thales HSM ürünlerin ilk kurulumunu inceleyeceğiz.

 

 

 

image001

 

 

Thales 8000 HSM

 

 

8000 Serisi içerisinde ürünler düşük, orta ve yüksek kapasiteli olarak 3 ana gruba ayrılmıştır.

 

Gruplandırma TPS (Transactions Per Second) değerine göre yapılmaktadır.

 

HSM8-SL düşük model 20 TPS, HSM8-SM orta model 220 TPS, HSM-8H yüksek model 800 TPS performans değerlerine sahiptir.

 

 

8000 serisi HSM’lerin ön tarafında sağ ve sol olmak üzere iki adet fiziksel anahtara sahiptir.

 

 

 

image002

 

 

 

Bu anahtarlar ile HSM Secure, Offline ve Online moda alınabilmektedir.

 

 

Secure modda cihazın ilk kurulumu ve yerel ana anahtar (LMK –Local Master Key) oluşturma işlemleri yapılabilmektedir.

 

 

Offline modda key üretim işlemleri yapılmaktadır. Bu modda cihaz isteklere hizmet vermez.

 

 

Online modda cihaz isteklere cevap verir, çalışır durumdadır.

 

 

Bu üç moddan herhangi birisine HSM’i almak için fiziksel anahtarlar ok yününde veya tersi yönde çevrilmelidir. HSM cihazının kabine montajı sırasında anahtarlar içe doğru çevrilerek ön kapağın arkasındaki kilit açılmalıdır. Kilitler açıkken cihaz secure moda geçeçektir. Bu modda cihazın ilk kurulumunu yapabilirsiniz.

 

 

İlk kurulumu yaptıktan sonra sağ veya sol anahtarlardan birini dışarı doğru ok yönünde çevirince HSM offline moda geçer. Her iki anahtarı ok yönünde içe doğru çevirince HSM kabine kitlenmiş olur ki bu durumda HSM online moda geçer. Güvenlik önlemi olarak fiziksel olarak bu anahtarlar olmadan online modda çalışan HSM, kabinden sökülüp alınamayacaktır. Dolayısıyla HSM online modda çalışırken fiziksel anahtarlar üzerinde olmamalıdır. Aksi taktirde istenmeyen müdahalelerde HSM hizmet veremez duruma gelebilir.

 

 

Fiziksel anahtarların durumuna göre HSM çalışma modu aşağıdaki tablodaki gibidir.

 

 

 

HSM Modu

Sol anahtar

Sağ anahtar

Online

Kilitli(Aktif çalışıyor)

Kilitli(Aktif çalışıyor)

Offline

Kilitli

Kilitli değil

Offline

Kilitli değil

Kilitli

Secure

Kilitli değil

Kilitli değil

 

 

 

Thales HSM’lere ön yüzündeki COM portundan CRT veya Hyper Terminal gibi programlarla konsol olarak bağlanılır.

 

 

 

Default bağlanma parameterleri:

 

Baudrate : 9600

Data Bits : 8

Parity : No

Stop Bit : 1

Flow Control : XOn/XOff

 

 

 

İlk olarak her iki anahtarı ok yönüne ters içeri doğru çevirerek HSM secure moda alınır.

 

Secure modda c ile başlayan komutlarda ayar, q ile başlayan komutlarla ise yapılmış olan ayarlar görülür.

 

 

 

Secure>cs                          à Bu komut ile HSM’in güvenlik ayarları yapılır.

Secure>ch                          à Bu komut ile HSM’in host portu ayarları yapılır.

Secure>cc                          à Bu komut ile HSM’in konsol portu ayarları yapılır.

Secure>ca                          à Bu komut ile HSM’in auxiliary port ayarları yapılır.

 

Secure>qs                          à Bu komut ile HSM’in güvenlik ayarları kontrol edilir.

Secure>qh                         à Bu komut ile HSM’in host portu ayarları kontrol edilir.

Secure>qc                          à Bu komut ile HSM’in konsol portu ayarları kontrol edilir.

Secure>qa                         à Bu komut ile HSM’in auxiliary port ayarları kontrol edilir.

 

 

Örnek güvenlik ayarı konfigürasyonu:

 

 

 

image003

 

 

 

HSM örnekteki gibi cs komutu girilir ve enter ile her bir satır ayarlandıktan sonra, HSM bu ayarların cihaz ile gelen akıllı kartlara yazmak isteyip istemediğimizi sorar. Saklamak amacıyla karta yazdırılmalı ya da yaptığımız bu ayarları not etmemiz gerekir.

 

 

 

Örnek Akıllı Kart:

 

 

image004

 

 

 

Şimdide cihazın host portunu ayarlayarak IP adresini verelim.

 

 

 

image005

 

 

 

ch komutunu girip enter tuşuna basınca HSM her bir satırı tek tek soracak ve istediğiniz ayarı girdikten sonra bir alt satıra geçecektir. En son yaptığımız ayarları akıllı kartlara yazmak isteyip istemediğimizi sorar ve ayarlar yapılmış olur. Ayarları görmek için qh komutunu girip enter yapınca host portu ile alakalı girdiğiniz tüm ayarları gösterecektir.

 

 

HSM’in güvenlik ve IP ayarları yapıldıktan sonra anahtarlar dışarı doğru çevrilerek HSM online moda alınır. Yaptığımız ayarların aktif olması için önündeki kırmızı reset tuşuna basılarak cihazın restart etmesi sağlanır. HSM açıldığında online moda geçer ve isteklere cevap vermeye hazırdır. Online modda açılan cihazın IP adreslerinin düzgün olduğu qh komutu ile tekrar kontrol edilmelidir.

 

 

Herhangi bir sebeple cihazın güvenlik veya IP adresini değiştirmek istersek, tekrardan cihazı secure moda almalı ve aynı komutlar ile değiştirmek istediğimiz kısımları düzenleyebiliriz.

 

 

Şimdi HSM üzerinde LMK ‘yı oluşturalım. LMK bizim HSM üzerindeki ana digital anahtarımız olacağından yedeğini almamız gerekmektedir. Yedek için HSM ile gelen akıllı kartları kullanacağız. LMK yedekleme ve saklama amacı dışında hiçbir şekilde HSM dışına çıkarılamaz.

 

 

LMK oluşturulurken HSM secure moda alınır ve aşağıdaki komut setleri kullanılır.

 

 

 

Secure>gk                          à Bu komut ile LMK’nın parçaları üretilir.

Secure>lk                           à Bu komut ile LMK HSM’e yüklenir.

Secure>lo                          à Bu komut ile LMK anahtar depolama alanına yüklenir.

Secure>v                            à Bu komut ile yüklenen LMK kontrol edilir.

Secure>fc                           à Bu komut ile LMK yüklenecek akıllı kartlar biçimlendirilir.

Secure>np                         à Bu komut ile akıllı kartın şifresi değiştirilir.

 

 

 

 

Öncelikle LMK yüklenecek akıllı kartların biçimlendirilmesi gerekmektedir. LMK’yı 3 anahtar parçasından oluşturacağımız için asıl 3 ve yedek 3 olmak üzere 6 adet kartı teslim edilecek kişiler şifreleri belirleyecek şekilde biçimlendirelim.

 

 

image006

 

 

fc komutunu girip kartı LMK parçasını yüklemek için kullanacağımızdan biçimlendirmede L seçiyoruz. Kart şifresini, teslim alacak olan AGG(Anahtar Güvenlik Görevlisi) giriyor. HSM yönetim işlemini yapan HSM yöneticisi kart şifrelerini hiçbir şekilde bilmemelidir. Kartın oluşturulduğu tarih ve zaman bilgilerini girip, kullanacak kişi için bir isimlendirme (örnekte so1) verebiliriz. Bu şekilde birinci kartı oluşturmuş olduk. Diğer 5 kartıda aynı komut ile HSM’e tek tek takarak biçimlendiriyoruz.

 

 

Kartlarımız hazır olduğundan LMK parçalarını oluşturabiliriz. Biz 3 anahtar parçasından oluşan kredi kartı sisteminde kullanılacak bir LMK üreteceğiz.

 

 

Secure modda gk komutunu girip enter yapınca adım adım işlemi yapabiliriz.

 

 

image007

 

 

LMK component set ile hangi anahtar parçasını (Örnekte 1) oluşturduğumuzu belirtiyoruz. Value A, B ve C için kendimiz el ile değerleri girebileceğimiz gibi, hiç bir şey yapmazsak HSM bizim için rastgele değerler (Örnekte HSM üretti) üretecektir. HSM, anahtar parçası yüklenecek kartı girmemizi ister. Kartı teslim alan birinci AGG HSM’e kartı takar ve şifresini girer. Bu kart biçimlendirildikten sonra başka bir işlemde kullanıldıysa HSM bize kartın boş olmadığını ve işleme devam edip etmeyeceğimizi sorar. Yazmak için Y seçeriz ve ilk asıl karta LMK ‘nın birinci parçası yüklenmiş olur. Yazma işlemi bitince HSM başka bir kopya daha isteyip istemediğimizi sorar. Biz yedek kartlarda oluşturacağımızdan 1. Parçanın yedeği olan AGG kartını HSM takıp şifresini girer ve yedek karta da kopyalama yapılmış olur.

 

 

Yukardaki işlem gibi LMK’nın 2. ve 3. parçaları aynı şekilde oluşturulur. Bu işlemler bitince elimizde üreteceğimiz LMK için 3 parça asıl ve 3 parça yedek akıllı kartımız olmuş olur. Bu işlemleri yaparken dikkat edilecek önemli bir husus ise kartların hangi sırada olduğunun ve parçaları oluştururken ekranda görülen check değerinin (Örnekte 1234 21) not edilmesidir. Eğer LMK yüklerken doğru sırada kartları yüklemezsek yüklenen key, elde etmek istediğimiz digital anahtardan farklı olacaktır. Kartları yüklerden yüklenen kartın doğru şekilde yüklendiğini de check değerini kontrol ederek emin olabiliriz.

 

 

Şimdide bu 3 parçadan oluşacak LMK ‘yı HSM üzerine yükleyeyim. Secure modda lk komutunu girip enter yapınca adım adım işlemi yapabiliriz.

 

 

 

image008

 

 

 

HSM’lere lisanssa bağlı olarak birden fazla LMK yüklenebilir. Bizim yükleme yaptığımız HSM 5 adet farklı LMK yüklemeyi destekliyor. LMK ID 00, 01, 02, 03 ve 04 olarak set edilmektedir. Biz 00 olan ilk ID yi kullanacağız.

 

 

HSM bizden hangi ID’yi kullanacağımızı (00 girdik) girmemizi ister. Sonra kontrol ettiğimizde ne için kullanıldığını hatırlamamız için açıklama (Örnekte Kredi Kartı LMK) girmemizi ister. Sonra ilk parçayı yüklemek için 1. AGG kartını HSM takıp şifresini girer. HSM yüklemeyi tamamlayınca kartı dışarı verir ve konsola check değerini yazar. Check değeri doğru ise anahtar parçası başarılı bir şekilde yüklenmiş demektir. HSM başka parça yüklenip yüklenmeyeceğini sorar. Devam etmek için Y seçilir ve 2. ve 3. AGG ‘de aynı şekilde kartlarındaki bilgileri HSM’e yüklerler. 3. parçada doğru yüklendikten sonra N ile başka parça yüklemeyeceğimizi HSM’e girdiğimizde son olarak örnekteki gibi bilgilendirme yapar. Ekrandaki bilgiler doğru ise Y ile yükleme tamamlanmış olur. Yüklenen LMK ‘yı lo komutu ile anahtar depolama alanına yüklenir ve işlem tamamlanmış olur. Eğer yükleme yaptığınız LMK yükleme sırasında HSM’de daha önce aynı LMK ID ile yüklenmiş bir LMK varsa silineceğine dair aşağıdaki örnekteki gibi bizi uyaracaktır.

 

 

 

image009

 

 

 

LMK yükledikten sonra HSM online moda alıp restart yapmakta fayda var.

 

 

Herhangi bir sebeple (gizliğin bozulması, HSM üreticiye gönderilmesi, imha edilmesi vb.) LMK’nın imha edilmesi gerekirse bu işlemi secure moda ek olarak AUTHORIZED (HSM üzerindeki bazı komutlar sadece AUTHORIZED modda çalışır) durumuna almamız gerekir. Bu özellikle fiziksel anahtarlara sahip HSM yöneticisinin tek başına var olan LMK’yı silmesinin önüne geçilmiş olur.

 

 

HSM online, offline ve secure modda AUTHORIZED durumuna alınabilir. LMK yüklendikten sonra tüm key üretimi işlemleri online, offline ve secure AUTHORIZED modda yapılır.

 

 

Şimdi LMK’yı imha etmek için secure modda iken HSM’i AUTHORIZED moda alalım. Bu işlem için LMK parçalarından 1. ve 2. Kartlara ihtiyaç vardır.

 

 

 

image010

 

 

 

Secure modda A komutu ve enter tuşu girilir, sonra 1. AGG kartını HSM’e kartını takar ve şifresini girip enter yapar, sonra 2. AGG HSM’e kartını takar ve şifresini girip enter yapar ve HSM Secure - AUTHORIZED moda geçmiş olur. Artık LMK’yı silebiliriz.

 

 

 

image011

 

 

 

HSM’e DM komutu girilir, hangi LMK ID silinecekse girilir (Örnekte 00) ve silinecek LMK bilgileri ekrana gelir. HSM tekrardan silme işlemini onaylamamızı ister. Onay Y ile verilince LMK silinir ve HSM secure moda döner.

 

 

Bu şekilde HSM’i kullanıma hazırlanmış olur.

 

Dikkat ettiyseniz bazı komutları büyük, bazılarını ise küçük harflerle yazdık. HSM’in komutu işletebilmesi için komutları küçük veya büyük yazmanız fark etmez.

 

 

Bir sonraki makalemizde ne tür ve nasıl digital anahtarlar üretilebileceğine değineceğiz.

Sertifika – Sertifika Oluşturma – Sertifika Türleri

$
0
0

Merhaba, bu makalemde sizlere güvenlik sektöründe büyük bir önemi olan sertifika kavramından bahsedeceğim. Nerede ise sertifika kullanmadan güvenli iletişim kurmanın düşünülemeyeceği bir ortamdayız ve bu nedenle temel anlamda bu kavramları çok iyi biliyor olmamız gerekmektedir. Malumunuz ÇözümPark Bilişim Portalı olarak bizlerde her bilgi seviyesinden üyemiz için kaynak üretmeye gayret gösteriyoruz. Bende bu noktada üzerime düşen Sertifika konusunu sizler için detaylı bir şekilde ele alacağım.

Evet öncelikle tanımla ile başlayalım.

 

1. SSL Nedir?

 

SSL, internet üzerinden yapılan bilgi alışverişi sırasında güvenlik ve gizliliğin sağlanması amacıyla geliştirilmiş bir protokoldür. Bu protokol ile, internet gibi güvensiz ve saldırılara açık bir ortam üzerinde güvenli bir şekilde iletişim sağlanır. SSL protokolü ile veri karşı tarafa gönderilmeden önce belirli bir şifreleme algoritması ile şifrelenir ve sadece doğru alıcı tarafından bu şifre çözülerek asıl veri elde edilir.

 

2. Şifreleme Algoritmaları

 

Simetrik Şifreleme Algoritması: Veriyi şifrelemek ve şifreli veriyi çözmek için her iki tarafında bildiği ortak-tek bir anahtar kullanılır.

 

Asimetrik Şifreleme Algoritması: Veriyi şifrelemek ve şifreli veriyi çözmek için 2 farklı anahtar kullanılmaktadır. Bunlar public key (açık anahtar) ve private key (gizli-kapalı anahtar)’lerdir. Asimetrik şifreleme algoritmalarında veriyi alan taraf sadece kendisinin bildiği bir private key ve diğer kişiler – kurumlarca bilinebilen bir public key oluşturur. Gönderen veriyi, alıcının public key’i ile şifreler. Alıcıya ulaşan şifreli veri, alıcının private key’i kullanılarak çözülür. Private key bilinmediği sürece şifrelenmiş verinin hiçbir değeri yoktur. Çünkü belirli bir kişinin-kurumun public key’i ile şifrelenmiş veri sadece o kişinin-kurumun private key’i ile çözülebilir.

 

3 .Sayısal İmza Nedir?

 

Sayısal imza en basit tanımıyla göndericiye ait olan bir damgadır. Sayısal imzalar bize gelen verinin gerçekten beklediğimiz gönderici tarafından gönderildiğini ve bu gönderim sırasında verinin herhangi bir değişikliğe uğramadığını-bütünlüğünü kaybetmediğini teyit eder. Gönderilen verinin bütünlüğünü ve gönderen tarafın kimliğini doğrular.

 

Sayısal imzada asimetrik şifreleme algoritmaları kullanılır; gönderilen mesajı imzalamak için private key kullanılırken, imzayı doğrulamak için public key kullanılır.

 

Sayısal imza oluşturma süreci şu şekildedir: Gönderilen verinin hashi alınır. Bu işlem kısaca gönderilen verinin bir hash algoritması ile işlenip sabit uzunlukta bir veri elde edilmesi işlemidir. Hash’i alınan mesajı, mesaj-ileti özeti olarak isimlendirebiliriz. Daha sonra bu mesaj özeti göndericinin private keyi ile şifrelenir. Böylece veri dijital olarak imzalanmış olur.

 

En basit tanımıyla sayısal imza, kişinin – kurumun public key’inin hash’inin alınması ve bu hash’in bir sertifika otoritesinin private key’i ile imzalanmasıdır. Böylece kurumun gerçekliği-kimliği geçerli bir sertifika otoritesi tarafından doğrulanmış olur.

 

4. Sertifika Nedir?

 

Alıcı, göndericininn doğruluğunu sayısal imza ile kontrol eder. Peki gönderici, gönderdiği verinin gerçekten beklediği doğru kişiye-kuruma ulaştığından nasıl emin olur? Public key’ini kullanarak verileri şifrelediğimiz kişi - kurum gerçek kişi - kurum mu? Erişmeye çalıştığımız web sitesi gerçekten bizim erişmek istediğimiz web sitesi mi? Tüm bu soruların cevabını ararken karşımıza “Sertifika” olgusu çıkar.

 

Sertifika ile bir web sitesi kendisini, kendisine erişmek isteyen kullanıcıya tanıtır. Sertifika, kurumun public key’i ve bu public key’inin hash’inin sertifika otoritesinin private key’i ile imzanmasından oluşur.

 

Sertifika = (Private KeyCA (Hash(Public Keykurum))) + Public Key = Sayısal İmza + Public Key

 

*CA : Certification Authority – sertifika otoritesi , Sertifika vermeye yetkisi olan kurum.(Örn: Globalsign, Verisign)

 

5. Sertifika İşlemleri

 

Bir web sayfasında kullanılmak üzere bir sertifika satın almaya ihtiyacımız varsa, nasıl ilerlememiz gerekmekte? Genel olarak anlatmak gerekirse, öncelikle elimizde bir private key ve bu private key ile oluşturulmuş csr dosyası olmalı. Bu csr dosyası Sertifika otoritesine gönderilir. Doğrulama işlemleri gerçekleştirildikten sonra Sertifika Otoritesi tarafında bize sertifka dosyası (cer) gönderilmiş olur. Peki private key nasıl oluşturulur? .csr, cer nedir? . csr, cer nasıl oluşturulur?

 

Tüm bu soruların cevaplarını ararken OpenSSL uygulamasından yararlanacağız.

 

OPENSSL

 

Key ve sertifika oluşturmak için öncelikle bir sertifika sunucusuna ihtiyacımız var. Bu aşamada internetten kolaylıkla bulabileceğimiz ve windows ortamında da çalışabilen Openssl i kullanacağız. Openssl’i kurduktan sonra komut satırından programın kurulu olduğu dizine gidip gerekli komutları openssl/bin dizini altında gerçekleştireceğiz.

 

Aşağıdaki linkten Windows 32 bit ve 64 bit ile uyumlu çalışan openssl paketini indirebilirsiniz.

 

http://www.slproweb.com/products/Win32OpenSSL.html

 

Openssl’i ilk çalıştırdığımızda aşağıdaki hata ile karşılaşabiliriz.

 

Warning: can’t open config file: C:\Openssl \bin\openssl.cfg

 

Hatadan da anlaşılacağı gibi program openssl.cfg dosyasını bulamadığı için hata alıyor ve çalışmıyor. Aşağıdaki komut satırını çalıştırarak sorun çözülmüş olur ve openssl sorunsuz çalışır.

 

set OPENSSL_CONF=c:\[OPENSSL DİZİNİNİ yazınız]\bin\openssl.cfg

 

 

5.1. Private Key Oluşturma

 

Öncelikle sertifikayı kullanacağımız sunucu üzerinde bir private key oluşturulmalıdır. Bu private key’i csr oluşumunda da kullanacağız. Bu aşamada Openssl sertifika sunucusunu kullanacağız.

 

OpenSSL kullanarak 2048 bitlik bir private key oluşturmak için aşağıdaki komutları girmek yeterlidir.

 

>openssl genrsa -out privatekey.key 2048

 

 

image001

 

>openssl genrsa -des3 -out privatekey1.key 2048

 

 

image002

 

 

\openssl\bin dizini altında oluşturduğumuz private key’leri görebiliriz. İlk çalıştırılan komut ile ikinci çalıştırılan komut arasındaki fark ne peki? Tek fark ikinci çalıştırılan komut, bizden şifre istiyor. Bu private key’i kullanarak CSR oluştururken bize bu aşamada oluşturduğumuz şifre sorulacak. Şifrenin doğru girilmesi durumunda csr oluşumu gerçekleşecek. Bu şifre private key’imizi koruyacağı için , bu şifre tahmin edilmesi zor ve güçlü bir şifre olmalıdır

 

5.2. Csr Oluşturma

 

SSL sertifika talebinin ilk adımı Sertifika İmza Talebinin (Certificate Signing Request) oluşturulmasıdır.

 

CSR dosyası aşağıdaki bilgileri kapsar:

 

- Sertifikayı talep eden kurum bilgisi

 

- Sertifikanın kullanılacağı adres (Common Name)

 

- Public Key

 

Bu bilgilerin CA’in private key ile imzalanması sonucu CSR elde edilmiş olur.

 

CSR’ın üretilme şekli, sunucu tarafında kullanılan web server yazılımına göre değişmektedir.

 

 

Apache Web Server üzerinde csr oluşturma

 

 

Php diliyle yazılmış web uygulamalarını görüntüleyebilmek için apache web server’a ihtiyaç duyulur. Bu yapıdaki sistemlerde openssl ile csr oluşturabiliriz.

 

“openssl genrsa -des3 -out www.test.com.key 2048” komutu ile www.test.com.key dosyası içerisine private key’imizi kaydetmiş oluruz. Şimdi bu private key’i kullanarak csr’ımızı oluşturalım

 

 

>openssl req -new -key www.test.com.key -out www.test.com.csr

 

 

image003

 

 

Bu komutu çalıştırdığımız zaman bize sertifikayı talep eden kuruma ait bilgiler sorulacaktır. Bu bilgilerin doğruluğu önemlidir. Çünkü bu bilgiler daha sonra sertifka otoritesi tarafından kontrol edilcektir. Ayrıca Common Name kısmına dikkat etmek gerekir. Bu kısma SSL sertifikasını aldığımız web sunucusunun adresi başında http-https olmadan girilmedir.

 

Geçerli bir sertifika otoritesine gönderilmek üzere csr dosyamızı hazırlamış olduk. İstersek kendimiz de aşağıdaki şekilde CSR’ı kendimiz imzalayarak sertifikayı oluşturabiliriz. Fakat şu unutulmamalıdır ki, bu sertifika herhangi bir sertifika otoritesi tarafından doğrulanmış değildir. Diğer kullanıcıların tanımadığı CA tarafından imzalanan sertifikalar kullanılırken aşağıdaki gibi hata verir:

 

 

image004

 

 

Aşağıdaki örnekteki sertifikanın geçerlilik süresi –days komutu ile belirtildiği gibi 365 gündür.

 

> openssl x509 -req -days 365 -in www.test.com.csr -signkey www.test.com.key -out www.test.com.cer

 

 

image005

 

 

Oluşturulan sertifikanın içeriğini aşağıdaki komut ile kontrol edebilir, hakkında bilgi edinebiliriz.

 

>openssl x509 -noout -text -in www.test.com.cer

 

 

image006

 

 

 

Tomcat Web Server üzerinde csr oluşturma

 

 

Java diliyle yazılmış web uygulamaların çalışması için Tomcat Web Server gereklidir. Bu tarz sistemlerde client ile sunucu arasında güvenli bir iletişim sağlamak için Truststore ve Keystore dosyaları kullanılmaktadır. Keystore dosyası private key'i kullanarak şifreleme ve imzalama işlemi yaparken truststore dosyaları genellikle doğrulama işlemleri için kullanılır. Keytool komutu kullanılarak public/private key çiftini içeren keystore dosyası oluşuturulur; bu oluşturulan keystore dosyası kullanılarak da sadece public key'in tutulduğu truststore dosyası yaratılır.

 

Sertifikayı oluşturacağımız sunucu üzerinde Java Runtime Environment (JRE) veya Java Development Kit (JDK) kurulu olmalıdır. CSR dosyasını oluşturmadan önce , csr oluşumunda kullanılmak üzere bir keystore oluşturulmalıdır. Keystore’u , anahtar (key) ve sertifika yönetim programı olan Java Keytool ile oluştururuz. Java Keytool programı, kullanıcıların kendi public/private key’lerini ve sertifikalarını yönetmelerine olanak sağlar.

 

Bir keystore dosyası, public ve private key çiftlerini içeren bir anahtar-key veritabanıdır.

 

Java Keystore’da tutulan her bir sertifika tek-benzersiz bir alias ile ilişkilidir. Yani burada tutulan sertifkaların kendine özgü bir takma adı vardır diyebiliriz.

 

Bir keystore dosyası yaratılırken öncelikle sadece private key’i içeren java anahtar deposu dosyası olarak adlandırılan jks uzantılı bir dosya oluşturulur.

 

Keystore ve Truststore oluşumunu 3 adımda anlatabiliriz.

 

1. Keystore dosyası içerisinde private key oluşturmak

2. Sertifikanın export edilmesi

3. Truststore dosyası içerisine sertifikanın import edilmesi

 

Adım 1 : Keystore oluşturma / Keystore dosyası içerisinde private key oluşturmak

 

Java keytool ile key'ler ve sertifikalar bir keystore dosyası içinde saklanır. Windows sistemlerde Keytool komutu Java bin dizininde çalıştırılır. Aşağıdaki örnekte E:\Program Files\Java\jre6\bin dizini kullanılmıştır. (Diğer örnek dizinler : C:\Program Files\Java\j2re1.4.2_08\bin veya C:\Program Files\Java\jdk1.6.0_12)

 

> keytool -genkey -alias mytest -keyalg RSA -keysize 2048 -keystore www.test.com.jks

 

 

image007

 

 

Komut çalıştırıldığında, keystore için şifre ve Key’de yer alacak bilgiler sorulacaktır, ardından keystore oluşacaktır. Bu örnekte keystore dosyası, biz belirtmediğimiz için \java\jre6\bin dizini altında oluşturulmuştur. İstenirse keystore dosyasının oluşacağı dizin için farklı bir konum belirtilebilir. Eğer sertifika yenilemesi yapıyorsak yeni bir anahtar çifti ve keystore dosyası oluşturmamız gerekmektedir. CSR oluştururken veya bizim tarafımızdan imzalanmış keystore’u kullanarak oluşturulmuş bir sertifikayı sisteme yüklerken aynı alias’ın kullanılması gerekmektedir. Ayrıca bize sorulan şifreyi, CSR oluştururken kullanmak üzere not almalıyız.

 

> keytool -list -v -keystore www.test.com.jks

 

 

image008

 

 

Bu komut ile oluşturduğumuz keystore dosyasını kontrol edebilir, keystore dosyasının içeriği hakkında bilgi edinebiliriz.

 

> keytool -certreq -keyalg RSA -alias mytest –file www.test.com.csr -keystore www.test.com.jks

 

 

image009

 

 

Bu komut ile CSR dosyasını oluşturmuş olduk.

 

Adım 2: Sertifika oluşturma

 

Eğer istersek kendimiz de aşağıdaki şekilde sertifikayı oluşturabiliriz. Fakat unutulmamalıdır ki, bu sertifika herhangi bir sertifika otoritesi tarafından doğrulanmış değildir.

 

> keytool -export -alias mytest -file www.test.com.cer -keystore www.test.com.jks

 

 

image010

 

 

Oluşturduğumuz sertifikayı aşağıdaki şekilde kontrol edebiliriz.

 

> keytool -printcert -v -file www.test.com.cer

 

 

image011

 

 

Adım 3: Sertifika’yı import etme

 

Truststore dosyası içerisine oluşturduğumuz sertifikanın aşağıdaki gibi import edilmesinden sonra işlemimiz tamamlanmış oldu.

 

 

image012

 

 

Not: İlgili sunucu üzerinde Java Runtime Environment (JRE ) çalışıyor ise, oluşturduğumuz sertifikayı E:\Program Files\Java\jre6\lib\security\cacerts dosyasına ekleyerek sertifikayı truststore eklemiş oluruz.

 

Tüm bu adımlar sonucunda oluşturduğumuz dosyalar aşağıdaki gibidir.

 

 

image013

 

 

6. Sertifikasyon Süreci

 

Yukarıda, sertifika sürecinde nasıl private key, csr, keystore , truststore ve sertifika dosyası (.cer/.crt) oluşturulduğunu anlatmış olduk. Burada oluşturduğumuz sertifkalar (.cer) CA tarafından imzalanmış sertifikalar değillerdi.

 

Bir Web sitesine geçerli bir sertifika otoritesi tarafından imzalanmış bir sertifika almak istediğimizde kısaca aşağıdaki adımları izleriz:

 

 

Öncelikle yukarda da anlattığımız şekilde bir private key ve CSR (Certificate Signing Request) oluşturmamız gerekmekte. Bu adım sonucunda Sertifika Otoritesine iletilmek üzere bir Csr dosyamız ve kimseyle paylaşmamamız gereken kişi/kurum’a özel private key’imiz oluşmuş olacak. CSR oluşumu kapsamında girilen bilgiler (5.2. Csr Oluşturma ) bir Registration Authority (RA) tarafından kontrol edileceği için dikkatli-doğru bir şekilde doldurulmalı, Türkçe karakter kullanılmamalıdır. RA, CA adına işlem yapmaya yetkili yerel kurumdur. (CA’in bayisi olarak düşünülebilir)

 

Common Name, sertifikanın kullanılacağı adrestir. (Başında http/https yazılmadan girilmelidir.) Organization kısmına ise kurum adı girilmelidir. (Kurum adı WHOIS bilgileri ile aynı olmalıdır.)

 

 

RA’ya iletmek üzere sorumlu kişinin/kurumun/birimin iletişim bilgileri ve fatura/kurum bilgileri gibi bilgilerin yer aldığı bir başvuru formu doldurmamız gerekmektedir. Daha sonra oluşturduğumuz Csr ile beraber bu formu aşağıdaki belgelerle RA’ya göndeririz. Böylece sertifika talebinde bulunmuş oluruz.

 

 

Kurumsal sicil kaydı - ticari sicil gazetesi fotokopisi

Kurum imza sirkülerinin fotokopisi

Sunucu (SSL) sertifikasının bedelinin ödendiğine dair banka dekontu

Kurumun, sunucuya ait alan adına sahipliğini gösterir belgenin örneği

 

Bu süreç, formlar ve belgeler RA’lar arasında işleyiş tarzına göre farklılık gösterebilir.

 

RA kendisine ilettiğimiz tüm bilgileri kontrol eder. Bu kontrol, yukardaki bilgilerin doğrulanması kadar başvuruyu kurum adına yapan kişinin de gerçekten yetkili olup olmadığını da içerir. Bilgilerin doğrulanması sonucunda, RA gerekli bilgileri sertifika otoritesine (CA) gönderir. CA bizim gönderdiğimiz public key’in Hash’ ini alıp kendi private keyi ile şifreler (Sayısal İmza). Daha sonra CA, bu public keyi ve bu hashi kullanarak sertifika üreterek tarafımıza iletir.

 

Sertifika = (Private KeyCA (Hash(Public Keykurum))) + Public Key = Sayısal İmza + Public Key

 

CA’den tarafımıza iletilen sertifika dosyası doğrudan şifreli trafiğin sonlandığı yere (örn: ilgili sunucu, load balancer, ips…) yüklenebilir. Fakat sertifikanın yükleneceği sunucu tipi veya ek bir güvenlik önlemi sağlamak gibi farklı nedenlerden dolayı bize gelen sertifka formatını değiştirmemiz gerekebilir.

 

 

Dönüştürme, import ve kontrol aşamaları bittikten sonra sertifka sorunsuz çalışıyor ise tüm bu sertifka dosyaları, private keyler ve şifreler bir CD’yazılarak güvenli bir depolama ortamında saklanmalıdır.

 

 

Sertifika Formatları / Formatları Birbirine Dönüştürme

 

7.1. PEM Format

 

En yaygın olarak kullanılan sertifika formatıdır. PEM sertifikasının .cer , .crt, .pem, .key gibi uzantıları mevcuttur. PEM sertifikası Base64 ile kodlanmış ASCII dosyasıdır. Apache ve benzeri sunucular PEM formatındaki sertifikaları kullanırlar. PEM sertifikası ve private key aynı dosya altında bulunabilirler. Fakat apache gibi çoğu platform, sertifikaların ve private key’in farklı dosyalarda bulunması beklerler.

 

Cer uzantılı dosyayı Pem uzantılı dosyaya çevirmek için aşağıdaki komut dizilerini kullanabiliriz.

 

> openssl x509 -in www.test.com.cer -out www.test.com.pem –outform PEM

 

 

image014

 

 

Veya

 

>openssl x509 -in www.test.com.cer -out www.tes.der -outform DER

 

>openssl x509 -in www.test.der -inform DER -out www.test.pem -outform PEM

 

7.2. DER Format

 

Pem ASCII formatında bir sertifika dosyası iken DER uzantılı sertifika dosyaları binary formatındadır. Bazı zamanlarda bu formattaki sertfikaların uzantısı .der olsa da çoğu zaman .cer uzantısı kullanılır. Cer uzantılı bir sertifikanın DER formatında mı yoksa PEM formatında mı anlamak için sertifkayı notepad benzeri bir editör ile açıp “BEGIN………..END” ifadesini incelemek gerekir. DER formatı genellikle Java platformlarında kullanılır.

 

Pem uzantılı dosyayı der uzantılı dosyaya çevirmek için aşağıdaki komut dizilerini kullanabiliriz.

 

>openssl x509 -outform der -in www.test.com.pem -out www.test.com.der

 

 

image015

 

 

Der uzantılı dosyayı der uzantılı dosyaya çevirmek için aşağıdaki komut dizilerini kullanabiliriz

 

>openssl x509 -in www.test.com.der -inform DER -out www.test.pem -outform PEM

 

 

image016

 

 

7.3. P7B - PKCS#7 Format

 

P7B formatı genellikle Base64 ASCII formatında saklanır ve .p7b veya .p7c uzantılı sertifika dosyalarıdır. P7B formatındaki sertifikalar “ -----BEGIN PKCS7-----" ve "-----END PKCS7-----“ ifadelerini içerir. P7B uzantılı bir dosya sadece sertifika – sertifika çiftlerini içerir, private key’i içermez. Microsoft Windows ve Java Tomcat dahil olmak üzere çeşitli platformlar P7B formatını desteklerler.

 

Cer uzantılı dosyayı P7B formatlı bir sertifikaya çevirmek için aşağıdaki komut dizilerini kullanabiliriz.

 

>openssl.exe crl2pkcs7 -nocrl -certfile www.test.com.cer -out www.test.com.p7b -certfile certificate_authority.cer

 

 

image017

 

 

7.4. PFX - PKCS#12 Format

 

PFX formatı; sunucu sertfikasını, herhangi bir intermediate sertifikayı (sertifika otoritesine ait public key’i içeren sertifika örnek olarak verilebilir) ve private keyi şifrelenebilir bir dosya içinde binary formatında saklar. PFX dosyalarının uzantıları genellikle .pfx veya .p12 şeklindedir. PFX dosyaları, Windows makinelere sertifika ve private keyleri yüklemek veya windows makinelerden sertifika ve private keyleri çekmek için kullanılan dosyalardır. Anahtar çiftlerini ve CA’ye ait root sertifikayı birlikte içeren sertifika dosyası oluşturmak ve oluşturulan sertfikanın başka bir yere yüklenmesi sırasında ek bir güvenlik önlemi olarak bir şifre eklenmesini sağlamak amacıyla pfx formatının kullanımı tercih sebebidir.

 

>openssl.exe pkcs12 -export -in www.test.com.cer -inkey www. test.com.key -out www.test.com.pfx -certfile certificate_authority.cer

 

 

image018

 

Makalemizin sonuna geldik. Umarım faydalı bir makale olmuştur, bir sonraki makalede görüşmek üzere

 

Viewing all 105 articles
Browse latest View live