Güvenlik

JunOS İşletim Sistemi CLI Mimarisi

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.

 

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu