Author: admin

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!

  • Linux Sunucuya Disk Ekleme

    Merhabalar,

    Bu yazımızda Linux işletim sistemine sahip bir sunucuya nasıl yeni disk ekleyeceğimizi inceleyeceğiz.

    Öncelik ile diski sunucumuza takalım.

    fdisk -l

    Komutunu kullandığımızda yeni diskimizi görebiliyor olmalıyız

    Yeni diskimiz /dev/sdb

    Gözlemleyebileceğiniz üzere /dev/sda altında sda1, sda2 gibi bölmeler (partition) mevcut iken sdb diskimiz yeni bir disk olduğu için üzerinde hiçbir partition tablosu bulunmuyor.

    Öncelik ile disk üzerinde bu partition’u açalım.

    fdisk /dev/sdb

    İlgili komut ile fdisk i başlatalım. Burada;

    n = New yani Yeni Partition
    p = Primary yani Ana Partition
    1 = 1 numaralı Partition ( /dev/sdb1 olması için)
    2048 = Diskteki ilk sektör, öntanımlı olarak 2048 gelir ve bu şekilde bırakılmalıdır
    41943039 = Diskteki son sektör, Öntanımlı gelen değer ne şekilde ise o şekilde bırakılmalıdır
    w = Write. İlgili ayarları diske yazar

    Şeklinde ilerlemeliyiz.

    fdisk üzerinde partition oluşturma

    Bu işlemin ardından partition oluşmuş olacaktır.

    fdisk -l

    Komutunu kullandığınızda /dev/sdb1 partitionunu görebiliyor olmalısınız.

    Yeni oluşturduğumuz /dev/sdb1 bölümü

    Şimdi sırada bu diski formatlamak var.

    EXT4 Veri sistemi oluşturma

    /dev/sdb1 bölmesi üzerinde ext4 veri sistemi oluşturmak için;

    mkfs.ext4 /dev/sdb1

    Komutunu kullanıyoruz.

    sdb1 bölümünü ext4 olarak formatlamak

    İşlem ardından /dev/sdb1 bölümü ext4 olarak biçimlendirilmiştir. Dilediğiniz herhangi bir klasöre mount edilebilir.

    XFS Veri sistemi oluşturma

    /dev/sdb1 bölmesi üzerinde xfs veri sistemi oluşturmak için;

    mkfs.xfs /dev/sdb1

    Komutunu kullanıyoruz.

    sdb1 bölümünü xfs olarak formatlamak

    XFS dosya sisteminde;

    • Veri Alanı
    • Log Alanı (journal)
    • Gerçek zaman kısmı (Realtime)

    Mevcuttur. Bunların her biri el ile ayrı bir şekilde belirtilebilir. (Dilerseniz log alanı farklı bir diske vs belirtilebilmekte) ancak bizim kullanımlarımız için bunların hepsini default bırakarak direkt olarak xfs veri sistemi oluşturmak yeterlidir.

    Disk mount etmek

    Oluşturmuş olduğumuz /dev/sdb1 bölümünü artık istediğimiz herhangi bir klasöre mount edebiliriz.

    Bunun için;

    mount /dev/sdb1 /veri_yolu/klasör_adı

    Şeklinde ilerlemeniz yeterlidir.

    /dev/sdb1 bölümünün /root/test klasörüne mount edilmesi

    Yukarıdaki örnekte göreceğiniz üzere;

    mount /dev/sdb1 /root/test/

    Komutu ile diskimiz /root/test dizinine mount edilebilmektedir.

    Mount eder iken özellikle veri sistemini (ext4/xfs) belirtmeniz gerekmemektedir, sunucu bunu algılayabilecek kapasitededir.

    Her Restart sonrası otomatik mount olmasını sağlamak

    Buraya kadar diskte bölüm oluşturmayı, ihtiyacımız olan dosya sisteminde biçimlendirmeyi ve herhangi bir klasöre mount etmeyi inceledik. Bu aşamada otomatik olarak mount olabilmesi adına gerekli çalışmayı gerçekleştireceğiz.

    Linux işletim sistemlerinde hangi bölümün hangi yapıya ya da klasöre mount olacağına /etf/fstab dosyası üzerinden emir edilmektedir.

    Öncelik ile diskimizin UUID’sini alalım;

    blkid

    Disklerin UUID’leri

    Bu örnekde UUID değeri 525e0fbc-a53c-4467-a682-56e6db2f89c8 imiş.

    Dosyamızı açalım;

    nano /etc/fstab

    Dosya içeriği aşağıdakine benzer şekilde olacaktır;

    Ubuntu’ya ait örnek bir /etc/fstab içeriği

    Burada ekleme aşağıdaki şekilde yapılır;

    Disk UUID – Mount Klasörü – FS (File System) Yapısı – Bağlama Seçenekleri – Dump

    Detaylı bilgi için buraya tıklayarak inceleme sağlayabilirsiniz.

    Ben fstab’a XFS olan diskimi aşağıdaki şekilde ekliyorum;

    /dev/disk/by-uuid/525e0fbc-a53c-4467-a682-56e6db2f89c8 /root/test xfs defaults 0 0

    XFS diskin fstab’a eklenmesi

    Eğer diskim ext4 olarak biçimlendirilmiş olsa idi, aşağıdaki şekilde ekleyecek idim;

    /dev/disk/by-uuid/525e0fbc-a53c-4467-a682-56e6db2f89c8 /root/test ext4 defaults 0 0

    EXT4 diskin fstab’a eklenmesi

    İşlem ardından diskin sağlıklı bir şekilde mount olup olmayacağını kontrol etmem gerekiyor.

    Öncelik ile diskim herhangi bir klasöre bağlı mı kontrol ediyorum;

    mount |grep /dev/sdb1

    /dev/sdb1 diski herhangi bir klasöre mount durumda mı kontrolü

    Gözlemleyebileceğiniz üzere /root/test klasörüne mount durumda imiş.

    umount /dev/sdb1

    Ya da

    umount /root/test

    Komutlarından herhangi birisi ile bu diski klasörden ayırabilmekteyiz.

    umount /dev/sdb1 komutu ile diski test klasöründen ayırdık

    Mount olup olmadığını test edebilmek için fstab ta geçen bütün direktifleri tek seferde mount edebilmek adına;

    mount -a

    Komutunu kullanabiliriz. Aşağıdaki görselde gözlemleyebileceğiniz üzere disk mount durumda değil iken “mount -a” komutu sonrasında otomatik olarak /etc/fstab dosyanızdaki direktifler ile birlikte mount olmuş durumdadır.

    mount -a komutu ile sorunsuzca mount olan disk

    İşlemler bu kadardır.

    İyi çalışmalar dilerim.

  • cPanel Zor Şifre Prosedürünü Aktif Etme

    Merhabalar,

    Bu yazımızda cPanel için Zor şifre protokolünü aktif etmeyi gözlemleyeceğiz.

    Öncelik ile, Arama alanımıza Password yazıyoruz.

    Böylece, Security Center altında, Password Strength Configuration alanını gözlemleyebileceğiz. Bu kısıma giriş yapıyoruz.

    Menü

    Ardından, Default Required Password Strength kısmını 100’e çıkarıyoruz.

    Default değer 100 olarak düzenleneceği için, diğer kısımları Default olarak bırakabiliriz.

    Şifre Zorluk Alanı

    Ardından Save butonuna basarak ayarı kayıt ediyoruz.

    Bu işlem sayesinde, Oluşturulacak her şifre yüksek güvenlik gerektiren &y6’^3jGH@BK% gibi bir şifre olacaktır.

    Önemli Not: Webmailler üzerinden bu şifreler değiştirilememektedir. Daha basit bir şifre ile değişim sağlayabilmek için kullanıcının shell (SSH) erişimi olması şart.

    İyi çalışmalar.

  • Linux Plesk üzerinde tüm domainler için Logrotate tek seferde ayarlama

    Selamlar,

    plesk bin domain -l| while read dom_name; do /usr/local/psa/bin/domain -u $dom_name -log-bytime weekly; done

    Bu komutu kullanarak tüm domainler için logrotate aktif ederek haftalık olarak ayarlayabilirsiniz.

    İyi çalışmalar dilerim

  • DirectAdmin mssql_connect (FreeTDS) Kurulumu

    Selamlar arkadaşlar,

    DirectAdmin’in derlediği PHP, default hali ile mssql veritabanlarına bağlanmamaktadır.

    Bunun için freetds kurulmalı.

    http://www.freetds.org/

    Siteden Stable Release’in URL sini alıyoruz.

    ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz

    Sunucu üzerinde,

    wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-patched.tar.gz
    tar -zxvf freetds-patched.tar.gz
    cd freetds-1.00.86/ (Bu sürüm build numarası değişebilir)
    ./configure --prefix=/usr/local/freetds
    make
    make install

    Komutlarını uyguluyoruz.

    Ardından, DirectAdmin Custombuild’e PHP de MSSQL lib’lerinin de derlenmesini istediğimizi belirtmeliyiz.

    cd /usr/local/directadmin/custombuild/configure/ap2

    Şeklinde ilerleyin. Burada, sunucuda hangi PHP kurulu ise (Hangi conf dosyası kullanılacağı) ona göre seçmeliyiz.

    Örnek sunucuda php -v komutu ile php 5.5 kurulu olduğunu tespit ediyorum, yani configure.php55 dosyasını düzenlemeliyim.

    Dosya içerisinde, en son satırı diğer satırlarda gördüğümüz gibi \ ekleyerek devam belirtip hemen altına

    --with-mssql=/usr/local/freetds

    Şeklinde ekliyoruz.

    Ardından,

    cd /usr/local/directadmin/custombuild
    ./build clean
    ./build php d

    Komutlarını kullanıyoruz.

    İşlem bu kadar!

    phpinfo üzerinde yahut SSH üzerinde;

    php -m|grep mssql

    Komutu ile kurulumu teyid edebilirsiniz.

    İyi çalışmalar dilerim.

  • Windows üzerinde “Stopping” şeklinde takılı kalan servisi durdurmak

    Merhabalar,

    Son zamanlarda IIS te sık gözlenmekte olan bir sorun olan, genel olarak kapattığınızı sandığınız bir servis kapanıyor – statüsünde takılı kalması durumunu inceleyeceğiz.

    Başlat
    Çalıştır
    Services.msc

    Şeklinde ilerleyerek servislere girin.

    Burada, Stopping statüsünde takılmış olan servisi bulun.

    Servise sağ tıklayıp Properities / Özellikler şeklinde devam edin.

    Burada servis adı yer almaktadır. IIS için – W3SVC

    İşlemlerimde Spooler adındaki bir servisi göstereceğim.

    Şimdi CMD yi açalım;

    Başlat
    Çalıştır
    cmd.exe

    İsmini tespit ettiğimiz servisin Process ID’sini öğrenmeliyiz. Spooler

    sc queryex SERVİS_ADI

    Yani;

    sc queryex Spooler

    Yazarak detaylarını listeletebiliriz. PID kısmında Process ID yer alır. Bu şu anki örneğimde 3908 şeklinde.

    Bu Process’i Kill ediyoruz;

    taskkill /pid PID /f

    Yani;
    taskkill /pid 3908 /f

    Bu şekilde Stopping – Durduruluyor statüsünde kalan servisi durdurabilir, ardından sağlıklı bir şekilde yeniden başlatabilirsiniz.

    NOT: Eğer process’i bu şekilde kill edemez iseniz, Görev yöneticisinde bulun. Spooler için tam executable’nin adı spoolsv.exe

    Aşağıdaki komut ile kapatabilirsiniz;

    wmic process where name=”spoolsv.exe” call terminate

    İyi çalışmalar dilerim.

  • Installatron Warning: json_encode(): Invalid UTF-8 sequence in argument hatası çözümü

    Merhabalar,

    Installatron, dil olarak Türkçe seçili iken kurulabilir app lara tıklandığında hiçbir tepki göstermiyor ve,

    /var/installatron/logs/error_log dosyasında andığınız hata;

    2018-10-17 23:28:27.45195700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1184): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}
    2018-10-17 23:28:27.45223700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1205): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}
    2018-10-17 23:28:27.45246700 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1440): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}
    2018-10-17 23:28:27.45262300 Linux PHP 5.2.17 /usr/local/installatron/lib/boot.php(13179): Warning: json_encode(): Invalid UTF-8 sequence in argument
    #0 /usr/local/installatron/lib/boot.php(35): __i_error_handler()
    #1 /usr/local/installatron/lib/boot.php(13179): __i_error_handler(2, ‘json_encode(): …’, ‘/usr/local/inst…’, 13179, Array)
    #2 /usr/local/installatron/lib/gui/browser.php(1459): i_lib::json_encode()
    #3 /usr/local/installatron/lib/gui/init.php(1356): i_gui_browser->main()
    #4 /usr/local/installatron/lib/boot.php(23738): i_gui_default->display()
    #5 /usr/local/installatron/lib/boot.php(29958): itron::init()
    #6 {main}

    Şeklinde bir hata ise PHP sürümü, Installatronun güncellenmesinin ardından yetersiz kalıyor demektir.

    Çözüm için aşağıdaki kodları sırası ile çalıştırmak yeterlidir;

    mkdir -p /usr/local/installatron
    cd /usr/local/installatron
    curl -O http://php.net/distributions/php-5.6.33.tar.gz
    tar xzf php-5.6.33.tar.gz
    cd php-5.6.33
    ./configure –prefix=/usr/local/installatron/php –disable-libxml –disable-dom –disable-simplexml –disable-xml –disable-xmlreader –disable-xmlwriter –enable-posix –enable-mbstring –enable-ftp –enable-sockets –without-pear –without-iconv –with-zlib –with-gd –with-jpeg-dir –with-png-dir –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-gettext
    make
    make install
    cd ..
    rm -fr php-5.6.33 php-5.6.33.tar.gz /usr/local/installatron/bin

    Ardından Installaton’u tamir etmeliyiz.

    rm -fr /usr/local/installatron/lib /usr/local/installatron/etc/php.ini
    curl -O https://data.installatron.com/installatron-plugin.sh
    chmod +x installatron-plugin.sh
    ./installatron-plugin.sh -f –quick

    Problem giderilmiş olacaktır.

    İyi çalışmalar dilerim.

  • DMARC Kaydı Nedir? Nasıl Konfigüre Edilir?

    Merhabalar,

    DMARC (Domain bazlı mesaj  raporlama / doğrulama)  Kaydı, spoof olarak gönderimin önüne geçmek için tasarlanmış bir kimlik doğrulama ve rapor protokolüdür. SPF ve DKIM kayıtlarının ardından eklenmesi gerekmektedir ve bu kayıtlardan yararlanarak kimlik doğrulama konusundaki hataları rapor içerisinde geçen adrese iletir ve daha güvenilir bir mail göndericisi olarak algılanmanızda ve SPAM Skorunuzu düşürmenizde rolü vardır.

    https://mxtoolbox.com/DMARCRecordGenerator.aspx

    Yukarıdaki URL üzerinden otomatik DMRAC Kaydı oluşturabilirsiniz.

    2 tür DMARC kaydı mevcuttur.

    Basic DMARC
    Gelişmiş DMARC
    Bu ayrımı daha rahat anlamak için ben sağladım, normalde isim isim ayrılmıyor.

    Şöyle ki, Basic DMARC kaydında sadece toplam raporlar için bir rapor adresi belirtiyorsunuz.

    Örneğin örnek.com için;

    _dmarc  TXT  v=DMARC1; p=none; sp=none; rua=mailto:rapor@örnek.com

    Gibi. Ancak Gelişmiş DMARC kaydı üzerinde, Başarısız / Hatalı raporlar ve toplam raporlar şeklinde de belirtilmektedir.

    Örneğin örnek.com için;

    _dmarc TXT v=DMARC1; p=none; rua=mailto:rapor@örnek.com; ruf=mailto:rapor@örnek.com; fo=1

    Gibi. Ancak burada ince bir detay bulunuyor;

    İşlemler sadece örnek.com için, örnek.com uzantılı bir mail adresi kullanacaksanız bu kadardır. Eğer örnek.com için, teknoas.net uzantılı bir mail adresini DMARC kaydınızda kullanmak istiyor iseniz, bu sefer teknoas.net’in DNS yapısı üzerinde bunu onaylayan bir kayıt girmeniz gerekecektir.

    Bunun için de aşağıdaki şekilde bir TXT kaydı girilebilir;

    MAİL_DOMAİN._report._dmarc.DMARC_DOMAİN. TXT ANA_DMARC_KAYDI

    Yani Basic için;

    teknoas.net._report._dmarc.örnek.com. TXT _dmarc  TXT  v=DMARC1; p=none; sp=none; rua=mailto:rapor@örnek.com

    Gelişmiş için;

    teknoas.net._report._dmarc.örnek.com. TXT _dmarc TXT v=DMARC1; p=none; rua=mailto:rapor@örnek.com; ruf=mailto:rapor@örnek.com; fo=1

    Şeklinde.

    İyi çalışmalar dilerim.

  • CloudLinux LVE Manager sürekli dönüyor, hata veriyor ise

    Merhabalar,

    DirectAdmin de LVE Manager’a girmeye çalıştığınızda sürekli girmeye çalışıyor gibi dönüyor ancak aşağıdaki hataları vererek loop’a giriyor ise;

    Platform error

    It seems your session expired. Please log in to the platform. You will be redirected to login page.

    Ya da

    Error

    Parameter “key” required

    LVE Manager’in safe mode açık iken sağlıklı çalışamamasından ötürü sorun yaşanmakta olması olasıdır.

    Bu durumda;

    /usr/local/directadmin/plugins/lvemanager_spa/php.ini

    Dosyasını açarak içerisine;

    safe_mode = Off

    Yerleştirmek ve web servisini restart etmek yüksek ihtimal problemi giderecektir.

    NOT: Ayrıca “/usr/share/l.v.e-manager/version” dosyasının sahiplik değerlerinin diradmin.diradmin olduğunu da kontrol etmelisiniz.

    İyi çalışmalar dilerim.

  • Parola Gereksinimi olmadan SSH yapabilmek

    Merhabalar,

    Bu yazıda Linux bir sunucunun diğer Linux bir sunucuya nasıl şifre gereksinimi olmadan SSH bağlantısı sağlayabileceğini ileteceğim.

    A Sunucusunun, B, C ve D sunucularına şifresiz bağlanmasını istiyoruz diyelim.

    Sunucu IP leri de aşağıdaki şekilde olsun;

    A – 1.1.1.1
    B – 1.1.1.2
    C – 1.1.1.3
    D – 1.1.1.4

    Öncelik ile, A sunucusuna, şifresiz bağlantı sağlayacak sunucuya giriş yapın.

    ssh-keygen

    Komutunu çalıştırın ve yönetgeleri izleyerek bir private key oluşturun.)

    ssh-rsa şeklinde başlayan uzun bir key olacaktır.

    Ardından ssh-copy-id komutunu kullanarak private key’imizi şifresiz bağlanacağımız sunuculara aktaracağız.

    Bunun için A sunucusu üzerinde;

    ssh-copy-id root@B
    ssh-copy-id root@C
    ssh-copy-id root@D

    Komutlarını çalıştırıyoruz. Yani;

    ssh-copy-id root@1.1.1.2
    ssh-copy-id root@1.1.1.3
    ssh-copy-id root@1.1.1.4

    Şeklinde. Key dosyasını aktarabilmek için ilgili sunucuların root şifrelerini soracaktır, şifreleri girmeniz yeterlidir.

    Tebrikler! Artık A sunucusu, B,C ya da D sunucusuna SSH bağlantısı gerçekleştirir iken şifre sormayacaktır.

    NOT: Erişim sağlayamıyor iseniz iptables içeriğini yahut hosts.allow/deny içerisinde engel olup olmadığını kontrol etmelisiniz.

    İyi çalışmalar dilerim