Copyright (c).
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
Texts.  A copy of the license is included in the section entitled "GNU
Free Documentation License".

Contents

  1. Steinbeck Kimdir?
  2. Steinbeck Nedir?
  3. Motivasyon
  4. Özellikler
  5. Nasıl çalışır?
  6. Kullanım ve Konfigürasyon
  7. Hata Giderme
  8. Yazarlar
  9. Teşekkür

1. Steinbeck Kimdir?

Steinbeck'in her ne kadar kim olduğu bilinse de; John Steinbeck 1902'de Kaliforniya, Salinas'da doğdu. En önemli Amerikan yazarlarından biridir. nobelprize.org'dan bir satır: "Steinbeck ilk defa, bir grup Monterey paisanolarının esprili hikayelerini anlattığı Tortilla Flat (1953) kitabı ile üne kavuştu."

2. Steinbeck Nedir?

Steinbeck basit bir işi güvenli bir biçimde daha da kolaylaştırır. SSH sunuculu linux(unix)larda kabuk betiklerini koşmaya ve koşan betiğin durumunu ve sonucunu bildirmeye yarar.

3. Motivasyon

Steinbeck, uzak makinalarda betik koşan ve/veya sonuçlarını geri alan sistem yöneticileri veya güvenlik sorumluları tarafından kullanılabilir.

4. Özellikler

·         platform bağımsız

·         güvenli bağlantı ve trafik

·         multi-threading

·         sonuç alma

·         durum bildirimi

Son iki özellik betiklerde yapılacak ufak değişiklikler sayesinde kullanılabilir.

5. Nasıl çalışır?

Steinbeck istemci ve sunucu (betiklerin koşacağı makina) arasındaki bağlantı ve trafik için SSH'i kullanılır. Açık kaynak kodlu ve SSH2'nin saf java implementasyonu olan jsch-0.1.20.jar kullanılmaktadır. Daha fazla bilgi için, http://www.jcraft.com/jsch/

6. Kullanım ve Konfigürasyon

"java -jar Steinbeckv1.1.jar" ile programı çalıştırdıktan sonra,

Kullanıcılar, her biri bir hedef makina (IP, port, kullanıcı adı -root-, şifre), koşacak bir betik, hedef makinada bir çalışma dizini ve lokal makinada bir çalışma dizininden oluşan kümeler oluştururlar. Kullanıcı, listeye bu kümeleri ekledikten veya bu eklenilen kümeleri değiştirdikten sonra bütün betikleri aynı anda çalıştırıp durumlarını görebilir (Nessus gibi).

Koşacak betikler için önemli bir nokta vardır: Eğer kullanıcı Steinbeck'in koşan betiklerin durumlarını göstermesini istiyorsa, o zaman betik "progress.txt" isminde bir dosya oluşturmalıdır. Bu dosya 0 ile 100 arasında bir sayı içermelidir. Betikte belli işlemlerden sonra bu sayı arttırılmalı ve en sonunda (betik sonlanmadan hemen önce) 100 olmalıdır.

 Örnek bir betik  şöyle olabilir;

    touch progress.txt

    sleep 5

    echo 10 > progress.txt

    sleep 5

    echo 20 > progress.txt

    sleep 5

    echo 30 > progress.txt

    sleep 10

    echo 90 > progress.txt

    sleep 5

    ls -al > results.txt

    echo 100 > progress.txt

Betiğin sonundan da anlaşıldığı gibi sonuçlar betik bitmeden önce "results.txt" dosyasında yazılmalıdır. (Eğer bir sonuç varsa) Bu dosya lokal makinaya alındığında ismi {HEDEF_IP}+results.txt olarak değiştirilecektir. Yani eğer kullanıcı aynı hedef makinada birden fazla betik çalıştırmak isterse lokal çalışma dizinleri olarak farklı yerler belirtmelidir ki, alınacak sonuçlar birbirlerinin üzerlerine yazılmasın.

Betikleri konfigürasyonlarını hallettikten sonra kümeleri eklemek için "Manage" menüsünden add|edit|remove butonları kullanılabilir. Bu işlemlerde bir önemli nokta şudur; Bir küme ekledikten veya değiştirdikten sonra Done butonuna basıldığında Steinbeck bir test bağlantısı ve hedef makinasında bir kaç işlem gerçekleştirecektir. Oluşacak herhangi bir hata bu nokta da halledilebilir. (kimlik doğrulama, bağlantı problemleri, v.b.)

Betikler Run menüsünü veya Start butonunu kullanarak başlatılabilir. Bu işlem içlerinde durum bilgileri (eğer betikler uygun olarak konfigüre edildilerse) olan başka bir pencere açacaktır. Başlayan işlem durdurabilir. Bütün kümelerin işlemleri bittiğinde başka bir pencere bunu bildirecektir.

Bir küme için {IP+Kullanıcı Adı+Port+Hedef Çalışma Dizini+ Lokal Çalışma Dizini} biricik bir anahtardır. Yani bu elemanlardan biri farklı oldukça oluşacak kümeler hedef makinalarda koşabilir ve sonuçlar geri alınabilir.

7. Hata Giderme

7.1 Be Aşağıdakilerin SSH sunucu konfigürasyonuna uygulandığına emin olun (/etc/ssh/sshd_config);

 

  PasswordAuthentication Yes

  PermitRootLogin Yes (if connected as "root")

 

7.2 For İçlerinde "echo" komutu kullanıldığında (results.txt veya progress.txt'ye bir şeyler yazmak dışında), betikler çalışmalarını durdurmaktadırlar. Bu sebepten betiklerinizde aşağıdaki gibi durumları engelleyin;

    ...

    echo "Hello there"

    ...

 

7.3 Steinbeck'in, teoride, spesifikasyona uyan her hangi bir Java runtime'da çalışması gerekir.  Fakat siz uygun ise Sun's JRE'ını kullanın.

7.4 Windows’da veya Macintosh’da script yazıp da aman Linux’da düzeltmeden çalıştırmayın, çalışmaz.

8. Yazarlar

bedirhan urgun (urgunb@hotmail.com)

9. Teşekkür

Omer Faruk Sen ve EnderUNIX'e teşekkürler.