Friday, May 15, 2020

Nagios NSClient++ CHECK_NRPE: Invalid packet version received from server.

Merhaba
:-)

Centos 8 üzerinde, Nagios Core 4.4.5, nagios-plugins-nrpe-4.0.2-2.el8.x86_64 ve Windows NSClient++ sürüm 0.5.2.35 2018-01-28 ile
nagios-plugins güncellemesi sonrası bu hatayı almaya başladım.

"CHECK_NRPE: Invalid packet version received from server." 

komut başarılı çalışmasına rağmen önce bu metin döndüğü için web sayfası v.b. yerlerde komut sonucu görünmemekteydi.




"Check_nrpe" komutunda "-2" (sürüm v2) ekleyince sorun ortadan kalktı.

# ./check_nrpe -V
NRPE Plugin for Nagios
Version: 4.0.2


# ./check_nrpe -H 192.168.0.5 -p 5666
CHECK_NRPE: Invalid packet version received from server.
I (0.5.2.35 2018-01-28) seem to be doing fine...

# ./check_nrpe -H 192.168.0.5 -p 5666 -2
I (0.5.2.35 2018-01-28) seem to be doing fine...

Tuesday, April 28, 2020

Fedora 32 Kullanıma Sunuldu.

 Fedora 32 genel kullanıma sunuldu. Bu adresden "Workstation / Masaüstü", "Server / Sunucu" olarak indirebilirsiniz.

Standart dağıtım "Gnome" pencere yöneticisi ile geliyor, "KDE PLASMA Desktop", "Xfce Desktop", "LXDE Desktop", "LXQT Desktop ", "MATE-Compiz", "CINNAMON Desktop", "SOAS Desktop" için bu adresi kullanabilirsiniz.


"Sugar on a Stick" ve diğer "ARM" işlemci desktekli sürümler için de bu adresi kullanabilirsiniz. 

Sürüm 22'den 32'ye kaç senede gelinmiş derseniz de duyuru burada! :-)

Friday, April 24, 2020

 Powershell ile Paylaşım Yetkilerini Listeleme



Windows Server sürüm 2012 öncesi sunucularınızdaki dosya paylaşımlarınızı, yeni sürüm sunuculara taşımak istediğinizde, karşılaşacağınız sorunlardan bir tanesi de paylaşım yetkilerini almak olacaktır.

RoboCopy aracı ile disk ya da klasör olarak NTFS yetkilerini kopyalayabilirsiniz. Burada bilgi bulabilirsiniz:
https://hcaglar.blogspot.com/2010/09/rsync-ve-robocopy.html

Paylaşım yetkilerini almak için ise WMI'dan yararlanılabilinir.

Powershell (PS) sürüm 5.1 ile Windows 10 yüklü makinanızdan, Windows 2008 R2 sunucunuzdaki paylaşım yetkilerini olabilirsiniz.

Bunu bir kaç aşamada yapmak mümkün;
  • 1. aşamada var olan paylaşım isimleri ve adresleri bir csv dosyaya kaydedilir, bu dosyada gereksiz olanları silmeyi unutmayınız;
  • 2. aşamada csv dosya kullanılarak paylaşım yetkileri listelenir ve bir başka csv dosyaya kaydedilir;
  • 3. son aşamada yeni sunucuda her 2 csv dosya kullanılarak paylaşımlar yeniden oluşturular, yetkiler verilir. Bu aşama için gerekli olan komutlar en sonda verilmiştir.

Tüm bu aşamalar, aşağıdaki PS betiğinde toplandı. Sadece listeleme ve csv dosyalara kayıt yapmaktadır.

Admin yetkisi ile açacağınız "PS ISE" penceresine aşağıdaki betiği yapıştırınız. Belirtilen yerlerde gerekli değişiklikleri yapınız.

Sunucudan WMI ile ilgili bilgi alabilmek için karşı tarafta; yetkiniz olmalı, güvenlik duvarında ilgili izinler verilmiş olmalı ve son olarak da DCOM ve RPC servisleri çalışıyor olması gerekir.


#
# Bu adresden yararlanılmıştır.
# https://kimconnect.com/powershell-copy-smb-share-permissions-from-legacy-sources/
#
#
#

cls


# Sunucu_Adi ve csv dosya adreslerini ("c:\temp") değiştirmeyi unutmayiniz!
#
#
$smbServerName="Sunucu_Adi"
#
# paylaşım isimlerinin yazılacağı csv dosya
$csv_dosya="c:\temp\"+$smbServerName+"_paylasimlar.csv"
#
# yetkilerin yazılacağı csv dosya
$csv_dosya_02="c:\temp\"+$smbServerName+"_yetkiler.csv"
#
#if (test-path $csv_dosya) {remove-item $csv_dosya} {}
#if (test-path $csv_dosya_02) {remove-item $csv_dosya_02} {}

####### 1. aşama
#

#
# var olan sunucudan paylasim isimleri ve adresleri alınarak csv dosyaya kaydediliyor...
#



Get-WmiObject -Class Win32_Share -ComputerName $smbServerName | sort Description | select-object Name, Path | Export-Csv $csv_dosya -NoClobber -Encoding UTF8


####### 2. aşama için komut oluşturuluyor, aşağıda csv dosya kullanılarak çalıştırılacak...

    function SMB_Yetkileri_Listele{
        param(
            [string]$smbServerName,
            [string]$smbShareName
            )

#
# "$" biten paylaşım isimleri kullanmış iseniz, '|where-object{$_.Name -notlike "*$"}' bölümünü aşağıdaki satır sonundan siliniz.
#
        $smbList = Get-WmiObject win32_LogicalShareSecuritySetting -ComputerName $smbServerName|where-object{$_.Name -notlike "*$"}
        if($smbList){
                    $smbObject=$smbList|where-object{$_.Name -eq $smbShareName};
                   
            }else{
                $message="$smbServerName isimli sunucudan, SMB yetkileri almada hata olustu!";
                $GLOBAL:messages+=$message+"`r`n";
                write-host $message -ForegroundColor Yellow;
                $smbObject=$false;
                }

        if($smbObject){
            $message="$smbShareName isimli paylasim yetkileri aliniyor...";
            $GLOBAL:messages+=$message+"`r`n";
            Write-Host `r`n$message;
            $smbPermissions = @()
            $acls = $smbObject.GetSecurityDescriptor().Descriptor.DACL
            foreach($acl in $acls){
                $user = $acl.Trustee.Name
                if(!($user)){$user = $acl.Trustee.SID}
                $domain = $acl.Trustee.Domain
                switch($acl.AccessMask){
                    2032127 {$accessRight = "Full"}
                    1245631 {$accessRight = "Change"}
                    1179817 {$accessRight = "Read"}
                    }         
                $smbPermissions+=[PSCustomObject]@{Paylasim=$smbShareName;Yetki=$accessRight;Hesap="$domain\$user"};
                }
#
# 2. aşama sonucu csv dosyaya kaydedilmesi...
#
            return $smbPermissions |select-object Paylasim,Yetki,Hesap |Export-Csv $csv_dosya_02 -append -NoClobber -Encoding UTF8;
#
            }else{
            write-host ("-" * 40)
            write-host "Paylasim ile ilgili hata var!";                          
            write-host $smbShareName -ForegroundColor Yellow;
            write-host ("-" * 40)
                return $false ;
                 }
    }
   

# başlardaki $smbServerName ve $csv_dosya değiştirmeyi unutmayiniz!
#

####### 2. aşama
#
#

import-csv $csv_dosya -Encoding UTF8| foreach-object {SMB_Yetkileri_Listele -smbServerName $smbServerName -smbShareName $_.name;}


#
#Ekrana listelemek için
#

import-csv $csv_dosya_02


####### 3. aşama
#
#

# Aşağıdaki komutları, yeni sunucuda paylaşımları tekrar oluşturmak, listelemek için kullanabilirsiniz.
#
# ilk csv dosyadaki gereksiz paylaşımları temizlemeyi unutmayiniz, "C$", "ADMIN$" gibi.
#
# 2. csv dosyada eklemek veya çıkartmak istediğiniz hesapları güncellemeyi unutmayınız.
#
# csv dosyaları da, yeni sunucuda komutları çalıştıracağınız adrese kopyalamayı unutmayınız.
#
# ilk komut ile sadece, "Domain Admins" tam yetkili olacak, diğer yetkiler 2. dosyadan aşağıda eklenecek.
#
#
# import-csv $csv_dosya | foreach-object { New-SmbShare -Name $_.Name -Path $_.Path -FullAccess "$env:userdomain\Domain Admins"}
#
# Diğer yetkiler;
#import-csv $csv_dosya_02 |foreach-object {Grant-SmbShareAccess -Name $_.Paylasim -AccessRight $_.Yetki -AccountName $_.Hesap}
#
# yetkileri listeleme
#import-csv $csv_dosya| foreach-object {Get-SmbShareAccess -Name $_.Name | format-table Name, AccountName, AccessRight -autosize}
#
#

Umarım işinize yarar.

Tuesday, April 14, 2020

PC 'nizde BIOS da bulunan Windows anahtarını komut satırında bulma ve yeniden kullanma

Son dönem kurumsal donanımlarda, Windows Anahtarınızı üzerinde yazan bir etiket bulunmamakta ve Windows İşletim Sistemini yeniden kurmanız gerektiğinde, bu anahtara ihtiyacınız olabilecek durumlar olabilmektedir.

 Admin yetkili açacağınız cmd konsolunda şu komutları kullanabilirsiniz:
wmic path softwarelicensingservice get oa3xoriginalproductkey

slmgr.vbs /ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx

slmgr.vbs /ato

Bu komutları bir betik içinde kullanmak isterseniz de:

for /F "skip=1 tokens=*" %%b in ('wmic path softwarelicensingservice get oa3xoriginalproductkey') do if not defined Anahtar set Anahtar=%%b
cscript %windir%\system32\slmgr.vbs /ipk %Anahtar%
cscript %windir%\system32\slmgr.vbs /ato
cscript %windir%\system32\slmgr.vbs /dlv >> %temp%\Etkinlestirme_Durumu.txt

Son satırdaki komut çıktısında;
cscript %windir%\system32\slmgr.vbs /dlv
...
License Status: Licensed
...
görüyorsanız işleminiz başarılı olmuş demektir.

Notification ya da unlicensed başarısız.

Tuesday, November 19, 2019

Komut satırından hızlıca ping ile yanıt veren IP leri bulma

Bazen elinizin altında tek araç kullandığınız işletim sisteminin komut satırı olabilir. Bu tür bir durumda hızlıca ağdaki IP adreslerini bulmak için aşağıdaki komutlar işinize yarayabilir.

CMD:
FOR /L %i in (1,1,5) do @ping -n 1 192.168.3.%i | findstr "TTL"

PowerShell:
(1..5) | % {ping -n 1 192.168.3.$_ | sls "TTL"}
Powershell'i Linux/Mac üzerinde kullanıyorsanız "-n" yerine "-c" kullanmayı unutmayınız.
Powershell için ping yerine kendi komutunu kullanmak isterseniz, "Play by Play: PowerShell from Idea to Action with Don Jones and Jeff Hicks" isimli videoyu izelrken gördüğüm komutu da ekliyorum, sadece yanıt veren IP'leri listeleyecek:

1..5 | ? {Test-Connection "192.168.3.$_" -count 1 -quiet} | % {"192.168.3.$_"}

Linux:
for ((i=1; i <= 5 ; i++)); do ping -c 1 192.168.3.$i | grep ttl ; done
for i in {1..5} ; do ping -c 1 192.168.3.$i | grep ttl ; done
Parantez içlerindeki "5" leri, test sonrası tüm ağ için "254" yazarak kullanınız.
Bu ve benzeri komutlar için,  artık aktif olmayan ama işe yarayacak bir şeylerin hala bulunabileceği bu adresi önerebilirim:

http://blog.commandlinekungfu.com/


Tuesday, March 26, 2019

Puppy Linux 80

Merhaba, "tozlu raf"larınızda bulunan eski bilgisayarınızı çalıştırabileceğiniz küçük ve başarılı bir dağıtım olan "Puppy Linux'un sürüm 8'i yayınlandı.

Haberin adresi, iso dosyalarını indirmek için adres, bilgi almak için de dağıtımın adresi de burada.

Friday, February 15, 2019

Raspberry Pi 3 Model B ya da B+ üzerinde Windows 10 ARM


Raspberry Pi 3 Model B ya da B+ üzerinde Windows 10 ARM sürümünü çalıştırmak isterseniz, İngilizce bilgilerin yer aldığı 
Proje Sayfası ve haberin yer aldığı bağlantılar: