ağ yönetiminde ssh client uygulaması olarak securecrt oldukça popülerdir. eğer sizde securecrt kullanıyor ve kullanmayı planlıyorsanız network yönetimi sırasında commands manager aracı oldukça işinize yarayacaktır.
commands manager altıda istediğiniz komut tanımlamalarını yapabiliyor ve tek tıkla bu komutu aktif oturuma gönderebilirsiniz.. tasarım sırasında ağaç yapısı desteklemesi sayesinde kategorize edilmiş olarak komutları ekleyebilirsiniz…
tüm ihtiyacınız olabilecek komutları tek tek eklemez biraz yorucu olabilir.. bu noktada hazırladığım python scripti paylaşmacağım.. öncelikle ekleyeceğimiz komutları aşagıdaki formatta excel dosyasında hazırlıyoruz. vendor ve category olarak bir ağaç yapısı tasarladık.
commands.xlsx
Vendor
Category
Command
nokia
bgp
show router bgp summary
nokia
bgp
show router bgp neighbor
nokia
switch
show ethernet-service port 1/3
huawei
display ip interface brief
zte
show ip interface brief loopback0
xml_create.py
import pandas as pd
import xml.etree.ElementTree as ET
from xml.dom import minidom
def create_securecrt_xml(excel_file_path, output_xml_path):
# Excel dosyasını oku ve NaN değerleri boş string ile değiştir
df = pd.read_excel(excel_file_path).fillna("")
# Ana XML yapısını oluştur
root = ET.Element("VanDyke", version="3.0")
commands_root = ET.SubElement(root, "key", name="Commands")
# Vendor gruplarına göre işle
for vendor in df["Vendor"].unique():
if not vendor: # Vendor boşsa atla
continue
vendor_key = ET.SubElement(commands_root, "key", name=str(vendor))
# Kategoriye göre komutları grupla
vendor_data = df[df["Vendor"] == vendor]
for category in vendor_data["Category"].unique():
if pd.isna(category) or category == "": # Kategori boşsa genel komutlara ekle
continue
category_data = vendor_data[vendor_data["Category"] == category]
category_key = ET.SubElement(vendor_key, "key", name=str(category))
commands_key = ET.SubElement(category_key, "key", name="__Commands__")
default_array = ET.SubElement(commands_key, "array", name="Default")
# Komutları ekle
for _, row in category_data.iterrows():
if not row["Command"] or pd.isna(row["Command"]):
continue
command_str = f"SEND,{row['Command']},{row['Command']},,,0,1,{row['Command']},"
ET.SubElement(default_array, "string").text = command_str
# Vendor için genel komutlar (kategori yoksa)
general_commands = vendor_data[vendor_data["Category"].isna() | (vendor_data["Category"] == "")]
if not general_commands.empty:
commands_key = ET.SubElement(vendor_key, "key", name="__Commands__")
default_array = ET.SubElement(commands_key, "array", name="Default")
for _, row in general_commands.iterrows():
if not row["Command"] or pd.isna(row["Command"]):
continue
command_str = f"SEND,{row['Command']},{row['Command']},,,0,1,{row['Command']},"
ET.SubElement(default_array, "string").text = command_str
# XML'i düzgün formatla ve kaydet
xml_str = ET.tostring(root, encoding="utf-8")
dom = minidom.parseString(xml_str)
# toprettyxml encoding="utf-8" belirtilirse bytes döndürür, biz manuel yazıyoruz
body = dom.toprettyxml(indent="\t")
# toprettyxml'in ürettiği ilk satırı (<?xml ...?>) çıkar, yerine istediğimizin koy
lines = body.splitlines()
lines[0] = '<?xml version="1.0" encoding="UTF-8"?>'
# Boş satırları temizle (toprettyxml bazen ekstra boş satır ekler)
clean_lines = [l for l in lines if l.strip() != ""]
pretty_xml = "\n".join(clean_lines) + "\n"
with open(output_xml_path, "w", encoding="utf-8") as f:
f.write(pretty_xml)
if __name__ == "__main__":
excel_file_path = "commands.xlsx" # Excel dosyası yolu
output_xml_path = "securecrt_commands.xml" # Çıktı XML dosyası yolu
create_securecrt_xml(excel_file_path, output_xml_path)
print(f"XML dosyası oluşturuldu: {output_xml_path}")
excel ve python dosyasını ayını dizinde olacak şekilde çalıştırırsak aynı dizinde securecrt_commands.xml adından bir xml dosyası oluşturulacaktır.
vbs,python gibi scriptleri desteklemesi nedeniyle en sık kullanılan ssh client uygulamalarında bir tanesi durumda securecrt.
securecrt nin güzel özelliklerden bir taneside yapılan tüm işlemlerini hiyerarşik şekilde log tutabilmenizdir. bunun için yapılması gereken “edit default session options” altında log file dosyasına ait konfigürasyonu yapmalısınız.
açılan pencede “start log upon connect” seçerek securecrt çalışmaya başladı anda aktif olmasını sağlıyoruz. log dosya ismini oluşturuken program tarafından desteklenen dosya isim formatlarını kullanabiliyorsunuz. benim kullanmakta olduğun versiyon için kullanılabilecek parametler aşagıdaki şekilde tanımlanmış.
%H - hostname
%H - hostname (not valid with protocols that do not specify a host, such as Serial)
%S - session name
%Y - four-digit year
%y - two-digit year
%M - two-digit month
%D - two-digit day of the month
%P - port (not valid with protocols that do not specify a port, such as RLogin)
%h - two-digit hour
%m - two-digit minute
%s - two-digit seconds
%t - three-digit milliseconds
%F - directory path starting below the "Sessions" folder
%% - percent (%)
%envvar% - environment variable
bu parametreleri kullanarak istediğiniz formatta log dosyaları oluşturabilirsiniz. ben yıl/ay/gün/hostname-saat klasör yapısını kullandım.
mqtt için her geçen yeni bir client, kütüphane yayınlanmaya devam ediyor. bunlardan en kullanışlarından bir tanesi kesinlikle paho .
sitesinde an itibariye mqtt için C/C++, Java, Javascript, Python, Go ve C# .NET destekleri olduğu görülmekte.
paho nun python kütüphaneleri kullanarak basit bir örnek yapalım. öncelikle gerekli kütüphaleri raspberry üzerine yükleyelim.
pi@cicek ~ $ sudo pip install paho-mqtt
eğer sisteminiz üzerinde pip kurulu değilse tabiki öncelikle pip kurulumunu yapmanız gerekmektedir.
pi@cicek ~ $ sudo apt-get install python-pip
gerekli kurulumları yaptıktan sonra kodumuzu yazarak gerekli testleri yapabiliriz. bu örnekte lokal bir broker kullanmak yerine cloudmqtt.com üzerinde yer alan servisi kullanalım. böylelikle uygulamalarımızı diğer sistemlere entegrasyonu konusunda ufak bir atmış oluruz. cloudmqtt üzerinde bir hesap oluşturak yeni bir servis oluşturalım.
yukarıdaki gibi bize kullanıcı adı şifre v.b. verecektir. sitesinde yer alan şablona uygun olarak test kodumuzu yazalım.
ağ güvenliği vb durumlar nedeniyle çok fazla tercih ettiğimiz bir yöntem olmasa da s5700 serisi switchler üzerinde gömülü bir ftp sunucusu vardır, bu sunucu ihtiyaç durumuna göre aktif edilebilir. veya ağ güvenlik yapımızı bunu da dikkate alarak yapılandırırsak sorun olmayacaktır.
bu ne gibi durumdalarda işimize yaracak diyecekseniz; switch güncellemelerin de, yedeklemelerin de vb oldukça fazla işimize yarayacak ve işimi kolaylaştırabilecektir. tabiki bu bahsettiğim durumlar için farklı yöntemlerde mevcuttur.
yukarıdaki şekilde basit bir ağ yapımız olsun. bu topolojide switchb – ftp server, switcha – ftp client olarak kullanılacaktır.
öncelikle switch üzerinden globalde ftp serverin aktif edilmesi gerekmektedir.
[switchb]ftp server enable
Info: Succeeded in starting the FTP server.
sıra switch üzerinde bir kullanıcı adı ve şifresi tanımlamaya geldi. kullanıcı adı oluşturulduktan sonra bu kullanıcının hangi servisleri kullanabileceğini belirlememiz yani ftp servisi ile ilişkilendirmemiz gerekmektedir.
ftp sunucu ile ilgili olarak birde dizin belirlememiz gerekmektedir. örneğimizde flash: olarak seçilmiştir.
[switchb]aaa
[switchb-aaa]local-user kullanici password cipher sifre
Info: Add a new user.
[switchb-aaa]local-user kullanici service-type ftp
[switchb-aaa]local-user kullanici ftp-directory flash:
switchb üzerindeki yani ftp server ile ilgili temel yapılandırma en temel şekilde hazır hale geldi.. sıra sunucunun doğru olarak çalışıp çalışmadığı testini yapmaya geldi. switcha üzerinden switchb üzerine ftp ile bağlanalım.
öncelikle bize kullanıcı adı ve şifre sorulacaktır. “local-user kullanici password cipher sifre” satırı ile switch üzerinede kullanıcı adını : kullanici, şifresini ise sifre olarak belirlemiştik. sırası ile bunları girelim.
ftp 10.1.1.2
Trying 10.1.1.2 ...
Press CTRL+K to abort
Connected to 10.1.1.2.
220 FTP service ready.
User(10.1.1.2:(none)):kullanici
331 Password required for kullanici.
Enter password:
230 User logged in.
başarılı bir şekilde switchb üzerine bağlandık. şimdi basit bir ftp komutu ile test yapabiliriz.
[ftp]dir
200 Port command okay.
150 Opening ASCII mode data connection for *.
drwxrwxrwx 1 noone nogroup 0 Jul 07 21:48 src
drwxrwxrwx 1 noone nogroup 0 Jul 07 21:48 compatible
226 Transfer complete.
[ftp]
Alcatel 5620 SAM clienti kurmanın-çalıştırmanın birden fazla yöntemi var. eğer sunucunuz standart konfigürasyonla kuruldu ise client dosyalarını sam sunucunuz dan edinebilirsiniz.
ssl kullanmıyorsanız :
http://<sam-sunucu-adresi>:8085/client,
eğer ssl kullanıyorsanız
https://<sam-sunucu-adresi>:8444/client
adresini tarayınızın adres çubuğuna yazın. karşınıza aşağıdaki şekilde bir sayfa açılacaktır. buradan install or launch linkine tıklayarak SAM clientini yükleyebilirsiniz.
linux ve windoz işletim sisteminde çalışabilmektedir.
sam çalıştıktan sonra sizi aşağıdaki ekran karşılayacaktır.
linux işletim sisteminde de çalıştığı için ferhatcicek.com da kendin yer buldu 🙂
Yazılım Adı : Thunderbird
Stabil Sürüm : 1.5.0.7
Türkçe Dil Destegi : Mevcut
Yükleme Adresi :
Windows : Yükle
Linux : Yükle
Mac OS X : Yükle
Firefox un kardeşi en gelişmiş eposta istemcilerinden birisi. Akıllı istenmeyen posta süzgeci, çabuk arama ve özelleştirilebilir görünümüyle güvenli, hızlı ve kolay e-postalaşma isteyenler için ideal bir yazılım.Daha ayrıntılı bilgi almak için http://www.mozilla-europe.org/tr/products/thunderbird/ adresini ziyaret ediniz.