Güvenlik

Powershell Secure String ile Parola Güvenliği

Merhaba, IT uzmanları olarak gün içersinde devamlı Powershell kullanmaktayız. Özellike sistemler üzerinde yetkilere ihtiyacımız olduğunda credentials işlemlerini çokça yapmaktayız. Bu işlemleri yaparken parolaları cleartext olarak girmek büyük sıkıntı yaratabiliyor. Böyle durumlarda powershell kullanarak parolalarınızı güvenli olarak saklayabilirsiniz.

İlk olarak bir parolanın nasıl güvenli olarak saklanabileceğini sonrasında örnek uygulama üzerinden powershell ile bir Exchange sunucusuna erişip exchange komutlarını nasıl kullanabileceğimizi inceleyeceğiz.

İlk olarak aşağıdaki komut ile şifremizi güvenli olarak şifreleyip saklıyoruz.

Read-Host -Assecurestring | Convertfrom-Securestring | Out-File C:\parola\pw.txt

Aşağıda görüldüğü gibi pw.txt içerisinde şifre güvenli olarak depolandı.

Bu aşamadan sonra artık parolamı tekrar decrypt edip kullanıcı adım ile parolamı $Credential değişkenine aktarıyorum.

$pw = Get-Content C:\parola\pw.txt | Convertto-Securestring
   
$Credential = New-Object -Typename System.Management.Automation.Pscredential -Argumentlist [email protected], $pw

Evet artık hazırım ve senaryomu uygulayabilirim. Yapmak istediğim uzak bir ortamda organizasyon içersindeki Excange sunucuya powershell ile bağlanıp Exchange komutlarını işletmek.

Aşağıdaki kod bloğu istediklerimizi yapıyor. Sırayla inceleyelim.

$pw = Get-Content C:\Scripts\cred\pw.txt | Convertto-Securestring # Depoladığım parolamı okuyorum.
$Credential = New-Object -Typename System.Management.Automation.Pscredential -Argumentlist [email protected], $pw # Kullanıcı adım ile parolamı "$Credential" değişkenine atıyorum.
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mbx1.lab.local/powershell -Authentication Kerberos -Credential $Credential # Bu kod bloğu ile powershell üzerinden Exchange sunucusuna session açıyorum.
Import-PSSession | Exchange komutların impor ediyorum.

İşlemlerimi bitirdikten sonra Session’ı kapatmayı unutmuyorum.

Remove-PSSession $Session

Tüm kod bloğu

$pw = Get-Content C:\Scripts\cred\pw.txt | Convertto-Securestring
   
$Credential = New-Object -Typename System.Management.Automation.Pscredential -Argumentlist [email protected], $pw

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mbx1.lab.local/powershell -Authentication Kerberos -Credential $Credential 

Import-PSSession $Session

Tüm işlemler sonunda parolamı güvenli olarak sakladım sonrasında okudum ve Exchange bağlantım için kullandım, sizlerde farklı senaryolarda bu yöntemi kullanıp güvenlik katmanına bir halka daha ekleyebilirsiz.

Sağlıcakla kalın, keyifli okumalar.

İlgili Makaleler

2 Yorum

Bir yanıt yazın

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

Başa dön tuşu