Takip et

NSH ile Ubuntu 18.04 Üzerinde Güvenli Uzak Komut Çalıştırma: Kapsamlı Bir Rehber

NSH ile Ubuntu 18.04 Üzerinde Güvenli Uzak Komut Çalıştırma: Kapsamlı Bir Rehber Günümüzün karmaşık IT altyapılarında, sunucu yönet

NSH ile Ubuntu 18.04 Üzerinde Güvenli Uzak Komut Çalıştırma: Kapsamlı Bir Rehber

Günümüzün karmaşık IT altyapılarında, sunucu yönetimi ve otomasyonu kritik öneme sahiptir. Özellikle birden fazla sunucuyu yönetirken, güvenli ve verimli bir uzak komut çalıştırma mekanizması olmazsa olmazdır. Bu rehberde, BMC TrueSight Server Automation (TSSA) ortamının bir parçası olan Network Shell (NSH) aracını kullanarak Ubuntu 18.04 sunucuları üzerinde güvenli uzak komutların nasıl çalıştırılacağını adım adım inceleyeceğiz.

NSH, genellikle büyük ölçekli kurumsal ortamlarda sunucu yapılandırması, yama yönetimi ve otomasyonu için kullanılan güçlü bir araçtır. SSH’ye benzer bir işlev sunsa da, NSH’nin kendine özgü güvenlik ve yönetim mekanizmaları vardır ve bir ajan (agent) tabanlı mimari üzerinde çalışır. Ubuntu 18.04, bu ajanların güvenle konuşlandırılabileceği ve yönetilebileceği yaygın bir işletim sistemidir.

1. NSH Nedir ve Neden Kullanılır?

Network Shell (NSH), BMC TrueSight Server Automation (eski adıyla BladeLogic Server Automation) çözümünün temel bir bileşenidir. Unix benzeri bir kabuk ortamı sağlayarak, TSSA uygulama sunucusundan veya bir NSH istemcisinden yönetilen sunucular üzerinde (bu durumda Ubuntu 18.04) komutların çalıştırılmasına, dosya transferine ve scriptlerin yürütülmesine olanak tanır.

NSH’nin Temel Özellikleri ve Avantajları:

  • Ajan Tabanlı Mimari: Yönetilen her Ubuntu 18.04 sunucusuna bir NSH ajanı (rscd) kurulur. Bu ajan, TSSA uygulama sunucusundan gelen komutları alır, yürütür ve sonuçları geri gönderir. Bu mimari, daha tutarlı ve güvenilir bir yönetim sağlar.
  • Güvenlik: NSH, kendi PKI (Public Key Infrastructure) tabanlı kimlik doğrulama mekanizmasını kullanır. Ayrıca, exports ve users dosyaları aracılığıyla istemci ve kullanıcı tabanlı yetkilendirme sağlar. Tüm iletişim şifrelenir.
  • Platform Bağımsızlığı: NSH, Linux, Windows, AIX, Solaris gibi birçok farklı işletim sistemi üzerinde çalışabilen ajanlara sahiptir. Bu, heterojen ortamların tek bir merkezden yönetilmesini kolaylaştırır.
  • Otomasyon ve Ölçeklenebilirlik: TSSA ile entegre olarak, binlerce sunucu üzerinde aynı anda komut çalıştırma, yapılandırma değişiklikleri yapma ve yama uygulamaları gibi karmaşık otomasyon görevlerini kolaylaştırır.
  • Dosya Transferi: cp, mv, rm gibi standart dosya sistemi komutlarını uzak sunucular arasında veya yerel sistem ile uzak sistem arasında güvenli bir şekilde kullanmanıza olanak tanır.

Bu rehberde, Ubuntu 18.04 sunucusunu NSH ortamına dahil etme ve bu sunucu üzerinde güvenli bir şekilde uzak komutları çalıştırma adımlarını ele alacağız.

2. Ubuntu 18.04 Üzerinde NSH Agent Kurulumu ve Temel Yapılandırma

NSH’yi Ubuntu 18.04 üzerinde kullanabilmek için öncelikle sunucuya NSH ajanını (Remote Server Call Daemon – rscd) kurmanız ve yapılandırmanız gerekmektedir. Bu ajan, TSSA uygulama sunucusu ile Ubuntu sunucusu arasındaki iletişimi ve komut yürütmeyi yönetir.

2.1. NSH Agent Kurulumu

NSH ajanı genellikle BMC’nin sağladığı bir kurulum paketi aracılığıyla yüklenir. Bu paket, Ubuntu 18.04 için özel olarak derlenmiş bir ikili dosyadır.

  1. Kurulum Paketini Edinin: BMC’nin resmi kaynaklarından veya TSSA kurulum medyasından Ubuntu 18.04 uyumlu NSH ajan paketini (genellikle bir .sh veya .bin uzantılı bir yükleyici) indirin.
  2. Paketi Sunucuya Aktarın: İndirdiğiniz paketi Ubuntu 18.04 sunucunuza scp veya başka bir güvenli yöntemle aktarın. Örneğin:
    scp /path/to/RSCD_Agent_Installer_Linux.bin user@ubuntu-server:/tmp/
  3. Kurulumu Başlatın: Sunucuya SSH ile bağlanın ve indirdiğiniz paketi çalıştırın. Genellikle root yetkisiyle çalıştırılması gerekir:
    sudo chmod +x /tmp/RSCD_Agent_Installer_Linux.bin
    sudo /tmp/RSCD_Agent_Installer_Linux.bin -i console

    -i console parametresi, etkileşimli bir konsol kurulumu başlatır. Kurulum sırasında lisans anlaşmasını kabul etmeniz ve kurulum yolunu (varsayılan /opt/bmc/bladelogic/NSH genellikle uygun) belirtmeniz istenecektir.

  4. Kurulum Sonrası Doğrulama: Ajanın başarıyla kurulduğundan ve çalıştığından emin olun:
    sudo systemctl status rscd

    Çıktıda “active (running)” ifadesini görmelisiniz. Eğer çalışmıyorsa, başlatın:

    sudo systemctl start rscd

2.2. Güvenlik Duvarı Yapılandırması

NSH ajanı, iletişim için varsayılan olarak 4750 TCP portunu kullanır. Ubuntu 18.04’ün güvenlik duvarı (UFW) bu portu engellememelidir. TSSA uygulama sunucusunun veya NSH istemcisinin IP adresinden gelen bağlantılara izin vermek için UFW’yi yapılandırın:

sudo ufw allow from  to any port 4750
sudo ufw enable
sudo ufw status

Bu komut, belirtilen IP adresinden 4750 portuna gelen bağlantılara izin verir. Eğer birden fazla TSSA sunucunuz varsa, her birinin IP adresini eklemeniz gerekebilir.

3. NSH Agent Yetkilendirme ve Kullanıcı Eşleştirme Yapılandırması

NSH’nin güvenlik modelinin kalbinde yetkilendirme ve kullanıcı eşleştirme mekanizmaları yatar. Bu, hangi uzak sunucuların ve hangi uzak kullanıcıların Ubuntu 18.04 sunucunuzda komut çalıştırma yetkisine sahip olacağını belirler.

Bu yapılandırmalar genellikle /etc/rsc dizininde bulunan iki ana dosya aracılığıyla yapılır: exports ve users.

3.1. exports Dosyası (İstemci Yetkilendirmesi)

exports dosyası, hangi uzak NSH istemcilerinin (TSSA uygulama sunucuları veya NSH konsolu çalıştıran makineler) bu Ubuntu 18.04 sunucusuna bağlanabileceğini tanımlar. Her satır, bir ana bilgisayar adını veya IP adresini içerir.

Dosyayı düzenlemek için:

sudo nano /etc/rsc/exports

Örnek içerik:

# Yalnızca bu IP adresinden gelen bağlantılara izin ver
192.168.1.100

Alternatif olarak, ana bilgisayar adı da kullanılabilir (DNS çözümlenmeli)

tssa-app-server.example.com

Birden fazla sunucuya izin vermek için her birini ayrı bir satıra yazın

192.168.1.101 192.168.1.102

Dikkat: Tüm IP adreslerinden gelen bağlantılara izin vermek için '*' kullanmak

önerilmez ve büyük bir güvenlik riski oluşturur. Yalnızca test ortamlarında

ve geçici olarak kullanılmalıdır.

*

Güvenlik Notu: exports dosyası son derece hassastır. Yalnızca güvendiğiniz TSSA uygulama sunucularının IP adreslerini veya ana bilgisayar adlarını ekleyin. Yanlış yapılandırma, yetkisiz erişime yol açabilir.

3.2. users Dosyası (Kullanıcı Eşleştirmesi)

users dosyası, uzak NSH kullanıcısı ile yerel Ubuntu kullanıcısı arasında bir eşleştirme yapar. Bu sayede, TSSA uygulama sunucusundan gelen bir komutun hangi yerel Ubuntu kullanıcısının yetkileriyle çalışacağını belirlersiniz.

Dosyayı düzenlemek için:

sudo nano /etc/rsc/users

Örnek içerik:

# Uzak BLAdmin kullanıcısını yerel root kullanıcısına eşleştir
BLAdmin:BLAdmins:root:root

Uzak bir kullanıcıyı (örneğin 'nshuser') yerel bir kullanıcıya eşleştir

ve yerel grubunu 'nshgroup' olarak ayarla

nshuser:nshgroup:nsh_local_user:nsh_local_group

Sadece belirli bir uzak kullanıcıya izin ver, ancak yerel olarak 'nouser' olarak çalıştır.

Bu, komutların belirli bir kullanıcı bağlamında çalışmamasını sağlar,

ancak genellikle bir eşleştirme yapılması tercih edilir.

remote_user:remote_group:nouser:nogroup

PKI kimlik doğrulaması kullanılıyorsa, AuthType parametresi önemlidir.

Genellikle varsayılan PKI modunda ekstra bir AuthType satırı eklemenize gerek yoktur.

Ancak eski veya özel durumlar için:

:::AuthType=User.Local

Bu, kullanıcı adı ve şifreye dayalı yerel kimlik doğrulamasına geçiş yapar,

ancak PKI çok daha güvenlidir.

Format: :::[:AuthType=]

  • uzak_kullanıcı ve uzak_grup: TSSA ortamında tanımlanan kullanıcı ve grup adlarıdır. Örneğin, TSSA’daki varsayılan yönetici kullanıcısı BLAdmin ve grubu BLAdmins‘tir.
  • yerel_kullanıcı ve yerel_grup: Ubuntu 18.04 sunucusunda komutların çalıştırılacağı yerel kullanıcı ve grup adlarıdır. root ve root en yüksek yetkiye sahip eşleştirmedir. Güvenlik amacıyla, mümkünse daha az yetkili bir kullanıcı oluşturup ona eşleştirme yapılması önerilir.

Yapılandırma Sonrası: exports veya users dosyalarında herhangi bir değişiklik yaptıktan sonra NSH ajanını yeniden başlatmanız gerekmektedir:

sudo systemctl restart rscd

4. NSH Kullanımı ve Güvenli Uzak Komut Çalıştırma (Yönetim Sunucusundan)

Ubuntu 18.04 sunucunuzda NSH ajanı kurulup yapılandırıldıktan sonra, artık TSSA uygulama sunucusu veya NSH istemcisinden bu sunucu üzerinde güvenli uzak komutlar çalıştırabilirsiniz. Aşağıdaki örnekler, bir NSH istemcisinden (genellikle TSSA uygulama sunucusu üzerinde veya bir yönetim iş istasyonunda kurulu NSH istemci paketi aracılığıyla) nasıl komut çalıştırılacağını göstermektedir.

Örneklerde ifadesi, Ubuntu 18.04 sunucunuzun ana bilgisayar adı veya IP adresi olacaktır.

4.1. Etkileşimli NSH Kabuğu Kullanımı

Hedef sunucu üzerinde doğrudan bir NSH kabuğu açmak için nsh komutunu kullanın:

nsh 

Bu komutu çalıştırdıktan sonra, sanki doğrudan Ubuntu sunucusuna SSH ile bağlanmış gibi bir kabuk ortamında olacaksınız. Burada standart Linux komutlarını kullanabilirsiniz:

nsh ubuntu-server-01

Karşılama mesajından sonra NSH kabuğuna düşeceksiniz

/opt/bmc/bladelogic/NSH> cd /etc /etc> ls -l hosts -rw-r--r-- 1 root root 202 Tem 12 2023 hosts /etc> cat os-release NAME="Ubuntu" VERSION="18.04.6 LTS (Bionic Beaver)" ... /etc> exit

Bu kabuk ortamında, dosya sisteminde gezinebilir, dosyaları düzenleyebilir, scriptleri çalıştırabilir ve diğer yönetim görevlerini yerine getirebilirsiniz.

4.2. Tek Komut Çalıştırma (nexec)

Eğer sadece tek bir komut çalıştırmak istiyorsanız, nexec komutu daha kullanışlıdır. Bu komut, hedef sunucu üzerinde komutu çalıştırır ve çıktıyı yerel NSH istemcisine döndürür:

nexec  

Örnekler:

# Ubuntu sunucusunun uptime bilgisini almak
nexec ubuntu-server-01 uptime

Disk kullanımını kontrol etmek

nexec ubuntu-server-01 df -h

Bir script çalıştırmak (scriptin hedef sunucuda mevcut olduğunu varsayalım)

nexec ubuntu-server-01 /usr/local/bin/my_custom_script.sh

Belirli bir dizinde bir dosya oluşturmak

nexec ubuntu-server-01 touch /tmp/test_nsh_file.txt

4.3. Dosya Transferi

NSH, uzak sunucular arasında veya yerel sistem ile uzak sistem arasında dosya transferi için standart cp komutunu kullanmanıza olanak tanır:

# Yerel dosyayı uzak sunucuya kopyalama
nsh cp /path/to/local/file.txt :/path/to/remote/directory/

Uzak sunucudan yerel sisteme dosya kopyalama

nsh cp :/path/to/remote/file.log /path/to/local/directory/

İki uzak sunucu arasında dosya kopyalama (bu, nsh'nin bir gücüdür)

nsh cp :/path/to/file.conf :/path/to/directory/

Önemli Not: NSH komutlarını çalıştıran kullanıcının (TSSA uygulama sunucusunda veya NSH istemcisinde) users dosyasında tanımlanan yerel Ubuntu kullanıcısının yetkilerine sahip olacağını unutmayın. Örneğin, root olarak eşleştirildiyseniz, uzaktan çalıştırdığınız komutlar root yetkileriyle çalışacaktır.

5. Pratik İpuçları, Sorun Giderme ve SSS

NSH ile çalışırken karşılaşabileceğiniz bazı pratik durumlar ve sorun giderme yaklaşımları aşağıdadır.

5.1. Pratik İpuçları

  • En Düşük Yetki Prensibi: users dosyasında root yerine, yalnızca belirli görevler için gerekli minimum yetkilere sahip ayrı bir yerel kullanıcı oluşturup ona eşleştirme yapın. Bu, güvenlik riskini azaltır.
  • Logları İzleyin: NSH ajanı, /opt/bmc/bladelogic/NSH/rsc/log/rscd.log (veya benzer bir yolda) detaylı loglar tutar. Bağlantı sorunları veya komut yürütme hataları için bu dosyayı kontrol edin.
  • Agent Durumunu Kontrol Edin: Uzak komut çalıştıramıyorsanız, ilk olarak hedef Ubuntu sunucusundaki NSH ajanının (rscd) çalışıp çalışmadığını kontrol edin: sudo systemctl status rscd.
  • Zaman Senkronizasyonu: TSSA uygulama sunucusu ile Ubuntu ajan sunucusu arasında zaman senkronizasyonu (NTP ile) önemlidir. Zaman farkları kimlik doğrulama sorunlarına yol açabilir.
  • Secure Dosyası: /etc/rsc/secure dosyası NSH’nin PKI sertifikalarını içerir. Bu dosyanın bozulması veya yanlış yapılandırılması kimlik doğrulama sorunlarına neden olabilir. Genellikle bu dosya kurulum sırasında otomatik olarak oluşturulur ve elle düzenlenmemelidir.

5.2. Sorun Giderme

  • Bağlantı Kurulamıyor:
    • Ubuntu sunucusunda NSH ajanı (rscd) çalışıyor mu? (sudo systemctl status rscd)
    • Güvenlik duvarı (UFW) 4750 portunu engelliyor mu? (sudo ufw status)
    • exports dosyasında NSH istemcinizin IP adresi veya ana bilgisayar adı doğru bir şekilde listeleniyor mu?
    • Ağ bağlantısı var mı? (ping )
  • Komutlar Başarısız Oluyor / Yetki Hatası:
    • users dosyasında uzak kullanıcının yerel bir kullanıcıya doğru şekilde eşleştirildiğinden emin olun.
    • Yerel kullanıcının (eşleştirilen kullanıcının) istenen komutu çalıştırmak için gerekli izinlere sahip olduğundan emin olun.
    • rscd.log dosyasında yetkilendirme hatalarını kontrol edin.
  • Agent Yükseltme Sorunları: Ajan yükseltirken, eski yapılandırma dosyalarının (özellikle exports ve users) yedeklendiğinden ve yeni kurulumun bunları doğru şekilde kullandığından emin olun.

5.3. Sıkça Sorulan Sorular (SSS)

S: NSH ile SSH arasındaki temel fark nedir?
C: SSH, kullanıcı ve şifreye veya anahtar çiftlerine dayalı genel amaçlı bir uzak erişim protokolüdür. NSH ise BMC TSSA ekosisteminin özel bir parçasıdır, ajan tabanlıdır, PKI ve dosya tabanlı (exports/users) yetkilendirme kullanır ve genellikle büyük ölçekli kurumsal otomasyon ve yama yönetimi için tasarlanmıştır. NSH, TSSA’nın otomasyon yeteneklerini kullanırken, SSH daha çok manuel erişim ve küçük ölçekli yönetim için tercih edilir.

S: NSH ajanı hangi portu kullanır?
C: Varsayılan olarak TCP 4750 portunu kullanır.

S: NSH ile dosya transferi güvenli midir?
C: Evet, NSH tüm iletişimi şifreler ve kimlik doğrulama mekanizmaları sayesinde yetkisiz dosya transferlerini engeller.

S: Ubuntu 18.04 dışında başka işletim sistemlerinde de NSH ajanı çalışır mı?
C: Kesinlikle. NSH, Windows, Red Hat Enterprise Linux, CentOS, SUSE, AIX, Solaris gibi birçok farklı işletim sistemi için ajan desteği sunar.

S: NSH ajanının sistem kaynakları üzerindeki etkisi nedir?
C: NSH ajanı genellikle hafif bir uygulamadır ve boşta dururken çok az sistem kaynağı tüketir. Ancak, yoğun komut yürütme veya dosya transferi sırasında geçici olarak kaynak kullanımı artabilir.

Bu rehber, Ubuntu 18.04 üzerinde NSH ajanını kullanarak güvenli uzak komutların nasıl çalıştırılacağına dair kapsamlı bir bakış sunmaktadır. Doğru yapılandırma ve güvenlik uygulamalarıyla NSH, büyük ölçekli sunucu ortamlarınızda güçlü ve güvenli bir otomasyon ve yönetim aracı haline gelecektir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version